Gå til innhold

Har problemer med klasser i include.


Anbefalte innlegg

Har ett problem med en klasse gjennom flere filer (include/require)

 

Strukturen er slik

index.php

->functions.inc.php

----function plugin_load

->->template-klasse

->leftmenu.php

---- plugin_load($plugin);

 

Pluginen befinner seg i /plugins/custom/clock/plugin.php.

Pluginen lastes fint, det er bare under printing av en template-boks fra klassen at ting skjer feil.

 

Fatal error: Call to a member function lmenu() on a non-object in /var/www/plugins/custom/clock/plugin.php on line 6a

 

Har prøvd å kjøre pluginen direkte fra leftmenu og det går, men det går ikke direkte fra functions. Har prøvd å endre rekkefølgen på include og allting, men ingenting ser ut til å gå.

 

require('config.inc.php');
require('functions.inc.php');
$startpage = new page("styles/".$blogtemplate."/template.myML", TRUE, TRUE, TRUE);


include('leftmenu.php');//Her er alle venstrestilte menyer


Lenke til kommentar
Videoannonse
Annonse

Jeg vet ikke om jeg helt forstaar hva du mener. Du kan nok ikke bruke en klasse som du har laget utenfor en funksjon inni funksjonen, da maa du isaafal ha den med som en parameter. Mulig det gaar hvis fu lager den global.

 

Ett eksempel:

class test
{
 public function skrivUtJa()
 {
    echo 'ja';
 }
}

$oTest = new test;

// Dette funker.
$oTest->skrivUtJa();

// Dette funker ikke (tror jeg).
function  enTest()
{
 $oTest->skrivUtJa();
}

enTest();

// Men dette vil nok funke.
function  enTest($oTestObj)
{
 $oTestObj->skrivUtJa();
}

enTest($oTest);

 

Det skal ikke vare noe problem og bruke ett objekt i forskjellige filer.

Endret av DeadMeat
Lenke til kommentar

Tenkte meg fram til det ja, feilen var jo at jeg ikke kunne bruke klassen inne i funksjonen plugin_load.

 

Løste problemet med å returnere filnavnet til filen som skulle inkluderes til leftmenu.php. leftmenu.php stod senere selv for inkludering, da funket alt knall og pluginsene mine dukket opp.

 

:D

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...