Jump to content
Sign in to follow this  
zippen

Hvordan kan jeg inkludere tekstindhold fra en ekstern php fil?

Recommended Posts

Først og fremmest - jeg er ikke programmør! Kund frontend designer.

 

Jeg er rendt ind i et problem som jeg efterhånden har brugt timevis af timer på at finde en løsning på.

 

Jeg har en ekstern php fil med html indhold der bliver genereret automatisk. Jeg skal have hentet dette indhold ind i en Prestashop, men kan ikke gennemskue hvad jeg skal gøre for at få det til at virke.

 

Jeg har prøvet på at lave et modul og har fået modulet oprettet i database m.m. Problemet er bare at jeg ikke aner hvad jeg skal skrive i modulet for at bede det om at hente indholdet i php filen og vise det i shoppen.

 

Er der nogen der kan hjælpe mig inden jeg hiver alt håret af mig selv :D

 

Vil lige nævne at jeg har den nyeste prestashop insalleret (hentet frisk fra nettet igår)!

Share this post


Link to post
Share on other sites

Når du skriver ekstern, er det så som i en anden server ekstern?

 

Hvor skal det vises henne?

 

Hvordan genere det html indhold, leveres det i en variabel eller spyttes det ud på skærmen?

 

har du prøvet med return include(dinfil.php); i bunden af den funktion der viser indholdet i dit modul?

Share this post


Link to post
Share on other sites

Jeg har en hjemmeside på domænet www.hjemmeside.dk og prestashop på samme domæne www.hjemmeside.dk/prestashop.

 

Jeg har et php script som automatisk trækker kode ud af www.hjemmeside.dk, således at prestashop bliver "pakket ind" i samme layout som hjemmesiden, ved at generere 3 php filer med html kode fra hjemmesiden. F.eks. har jeg bedt det tage stylesheets, js, menubar og footer fra hjemmesiden.

 

Meningen er så, at jeg ved at indsætte include 3 steder i prestashop, kan hente indholdet fra disse 3 filer og dermed pakke prestashop pænt ind i samme layout som hjemmesiden og med samme menustruktur.

 

Dette har jeg brugt i andre shops uden problemer, men kan ikke inkludere filen i en template i prestashop, da den åbenbart ikke tillader include php.

 

De 3 filer der bliver genereret er dem der skal inkluderes og de er placeret i roden af prestashop folderen.

 

Jeg har åbnet en tråd om dette på engelsk også, hvor udvikleren af scriptet har skrevet hvordan dette skal gøres. Problemet er bare, at dette heller ikke virker.

 

Se her: http://www.prestashop.com/forums/topic/136611-how-can-i-include-a-php-file-in-the-header/page__fromsearch__1

 

Jeg har efterhånden prøvet og læst alt hvad jeg er faldet over. Men det er vanskeligt når man ikke er programmør.

Share this post


Link to post
Share on other sites

Timpet jeg har prøvet at indsætte din kode og det virker også - næsten da.

 

Koden bliver godt nok indsat, men oven over <head> tagget når jeg kigger i kildekoden. Jeg har lavet modulet til at hooke på headeren der sidder umiddelbart før </head>, hvor koden også gerne skulle være.

 

Mit modul ser således ud:

 

<?php
if ( !defined( '_CAN_LOAD_FILES_' ) )
exit;
class primanetskintop extends Module {
function __construct()
{
    $this->name = "skintop";
    $this->tab = 'front_office_features';
    $this->version = '0.1.0';
    parent::__construct();
    $this->displayName = $this->l('Insert skin top');
    $this->description = $this->l('skin - ikke slettes');
}

function install()
{
   if (!parent::install()
	   OR !$this->registerHook('header'))
		    return false;
    return true;
}

function uninstal()
{
 if (!parent::uninstall())
  return false;
 return true;
}

public function hookHeader($params)
{
return include('shopskin/shop-head.php');
}
}

 

Har du et bud på hvad jeg gør forkert? Koden skulle gerne sidde præcis hvor head hooken er.

Share this post


Link to post
Share on other sites

Det er svært og sige hvad du gør forkert udfra de oplysninger du kommer med.

Share this post


Link to post
Share on other sites

Jeg skal prøve at være mere præcis.

 

Scriptet jeg anvender henter 3 dele fra den oprindelige hjemmeside http://test.primanet.dk som fordeles i 3 php filer shop-head.php, shop-top.php og shop-bottom.php. Disse 3 filer er placeret i roden af prestashop mappen i en mappe ved navn shopskin.

 

En af filerne der bliver genereret og som er den jeg forsøger at få integreret i head delen er som denne:


<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="http://test.primanet.dk/tmp/cache/stylesheet_57_1321038301.css" media="screen,tv"/>
<link rel="stylesheet" type="text/css" href="http://test.primanet.dk/tmp/cache/stylesheet_64_1321568541.css" media="screen,tv"/>
<link rel="stylesheet" type="text/css" href="http://test.primanet.dk/tmp/cache/stylesheet_63_1321569256.css" media="screen,tv"/>
<link rel="stylesheet" type="text/css" href="http://test.primanet.dk/tmp/cache/stylesheet_71_1321495347.css" media="screen,tv"/>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript" src="/uploads/Primanetdesign/js/tabs/tabs2.js"></script>

<!--[if IE]> <meta http-equiv="Page-Enter" content="blendTrans(duration=0.01)" />
<meta http-equiv="Page-Exit" content="blendTrans(duration=0.01)" />
<![endif]-->
<!--[if lte IE 8]>
<style type="text/css">
.sideheader h3 {
   padding: 10px 0 0 0;
}
#search input.search-input {
   padding-top: 4px;
}
div#menu li.back {
   margin: -2px 0 0 -5px;
}
div#menu li.back .left {
   margin-top: 2px
}
</style>
<![endif]-->
<!--[if lte IE 7]>
<style type="text/css">
</style>
<![endif]-->
<!--[if IE 6]>
<style type="text/css">
/* tillader at baggrund kan cashes i IE6 */
html {filter:expression(document.execCommand("BackgroundImageCache", false, true));}
img, div, a, input, .link_m_pil, span.news-bottom, #menu_vert, span.menu_vert_bottom { behavior: url(/uploads/primahost/iepngfix.htc) }
</style>
<script type="text/javascript" src="uploads/primanet/iepngfix_tilebg.js"></script>
<script type="text/javascript" src="modules/MenuManager/CSSMenu.js"></script>
<![endif]-->

 

Har ikke fået ryddet op i koden endnu, så kig ikke på det :)

 

Ved at anvende ovenstående modul får jeg dette resultat:

http://test.primanet.dk/produkter/

 

I kildekoden er indholdet af shop-head.php rigtigt nok indsat, men det er sat ind oven over alt anden kode og ikke umiddelbart før </head> tagget.

 

De to andre filer der bliver genereret indeholder html til menu og footer. Dem har jeg ikke prøvet på at indsætte endnu.

 

Meningen er, at scriptet shopskin henter kode fra http://test.primanet.dk med jævne mellemrum, sådan at prestashop ser ud til at være en del af hjemmesiden med menuer osv. Når jeg f.eks. opretter et nyt menupunkt på hjemmesiden, vil den også blive vist i menuen i prestashop. (Ikke prestashops menu, men den menu der gerne skulle blive indsat fra den oprindelige hjemmeside.

 

Jeg har haft det til at virke på opencart http://test.primanet.dk/shop/ -men her ikke brugt tid på at få de to systemers stylesheets til at stemme overens endnu. Så det virker lidt rodet. Men teknikken kan ses.

 

Så jeg har egentlig bare brug for, at den kode som mit prestashop modul henter fra shop-top.php, bliver indsat det rigtige sted i min prestashop skabelon.

 

I opencart var det bare at tilføje en almindelig php include i templaten hvor koden skulle være. Men så enkelt er det desværre ikke i prestashop har jeg erfaret.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More