[PHP] CMS met modulens

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste tweakers,
dit topic gaat over een probleem dat ik heb met mijn zelfgemaakte CMS.
Ik ben nu met een functie bezig die scripts modulens in de de map "modulens" kan includen, en de links kan modden zodat ze compatible zijn met mijn mn CMS-links: "index.php?name=$module&file=$defile". Mijn doel is dat elk willekeurig script door mijn CMS geinclude kan worden, en meteen werkt als het in de map "modulens" word gezet, niet zoals bij andere CMS'en waar het eerst "geport" moet te worden.

Het probleem is dat ik geen flauw idee heb hoe ik de cookies kan laten lezen met de code die ik nu gebruik (als u een alternatief weet, hoor ik het ook graag!)
Ik denk dat het toch wel anders moet dan file_get_contents, want dit is natuurlijk server-side, waardoor het logisch is dat de cookies niet meegaan. Welk alternatief is er? (include en require zijn natuurlijk geen optie ;( )

Het is allemaal een beetje vaag, daarom zal ik de code geven die ik nu gebruik.
Hiermee include ik dus een Forum, dit forum kan geen cookies lezen, omdat het eerst met file_get_contents wordt ingelezen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//voorbeeld van url: index.php?name=Forums&file=viewtopic
ob_start();
                    echo file_get_contents ("http://www.mijnsite.com/modules/$name/" . $_GET['file'] . ".php");
                    $out = ob_get_clean();

// links veranderen
$urlin =
array(
"'templates/'si",
"'<a href\=\"(.+?)\.php\?(.[^\"]+)'",
"'action\=\"(.+?)\.php\?(.[^\"]+)'"
);

$urlout = array(
"modules/Forums/templates/",
"<a href=\"?name=Forums&file=\\1&\\2",
"action\=\"?name=Forums&file=\\1&\\2"
);

$out= preg_replace($urlin, $urlout, $out);
gen_standard_page($out); // content wordt in template systeempje gevoegd (niet relevant voor vraag)


bedankt alvast!! :)

Acties:
  • 0 Henk 'm!

  • Glabbeek
  • Registratie: Februari 2001
  • Laatst online: 18-09 07:52

Glabbeek

Dat dus.

Een idee is misschien een globale klasse gebruiken met static variabelen (hmm, dat is nogal een tegenspraak :) ) die je in je hoofdmodule initialiseert. Daarna kan je vanaf elke andere lokatie de parameters in de klasse uitlezen. Want hoe ga je het nu doen als je op een of andere manier de cookies edit in een module en op je pagina twee of meer modules gaat zetten?

Mij idee is dus in het kort: Houd het cookie-beheer centraal in je engine en laat de modules er niet mee "bemoeien".

En zo is het maar net.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mij idee is dus in het kort: Houd het cookie-beheer centraal in je engine en laat de modules er niet mee "bemoeien".
misschien wel goed idee, maar hiermee bereik ik niet mn doel: 'elke script kan gewoon in de modulens map gegooid worden en het werkt :)' is dit dan echt niet mogelijk?? Lijkt me wel ^^, de normale vars werken allemaal al, ik heb tot zover alleen maar problemen met cookies ;(

[ Voor 4% gewijzigd door Verwijderd op 01-03-2004 22:37 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb zoiets zelf gemaat voor PHPMyStats, de werking is eigenlijk wel simpel.

Module TEST, in dir /modules/test. Daarin staat een file module.php. met de volgende inhoud:
PHP:
1
2
3
4
function Module_Test($foo,$bar) {
  //some info
  return "something";
}


Ik doe het volgende, ik kijk of de functie bestaat, mocht dat niet het geval zijn dan include in de file. Ik roep daarna de functie Module_Test aan met een aantal variables. Wat die module dan returned kan je zelf ergens invoegen (dmv bv een template engine).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
KingOfDos; Dit is niet bepaald wat ik zoek. Als ik naar zo'n module file van je kijk dan zie ik dat je voor elke module heel wat regeltjes besteedt, wel mooi gedaan hoor, maar ik probeer het dus zonder al deze dingen, gewoon in "modulens" folder gooien, en klaar! Het is me dus al 90% gelukt, ik zit alleen met cookie-problemen!;
*offtopic: mooi scrippie dat phpstats ^^

Acties:
  • 0 Henk 'm!

Verwijderd

En een gewone include?
PHP:
1
2
3
ob_start();
include($name . "/" . $file . ".php");
$out = ob_get_clean();

Als het goed is genereert dat scriptje waarvan je nou de output buffert ook dezelfde output als je hem include neem ik aan. Of denk ik nou helemaal verkeerd...

[ Voor 6% gewijzigd door Verwijderd op 02-03-2004 15:29 ]


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op 02 maart 2004 @ 13:47:
KingOfDos; Dit is niet bepaald wat ik zoek. Als ik naar zo'n module file van je kijk dan zie ik dat je voor elke module heel wat regeltjes besteedt, wel mooi gedaan hoor, maar ik probeer het dus zonder al deze dingen, gewoon in "modulens" folder gooien, en klaar! Het is me dus al 90% gelukt, ik zit alleen met cookie-problemen!;
*offtopic: mooi scrippie dat phpstats ^^
Dit is natuurlijk verre van ideaal en ik denk dat je later er ook zeker problemen mee zal krijgen.

Maar als je perse niet wil include'n dan kan je misschien curl gebruiken.
http://www.php.net/curl
PHP:
1
2
3
4
5
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.mijnsite.com/modules/$name/" . $_GET['file'] . ".php");
curl_setopt($ch, CURLOPT_COOKIE,"variable=<value>;volgendevar=<nextvalue>;");
echo curl_exec($ch);
curl_close($ch);

Programmer - an organism that turns coffee into software.

Pagina: 1