Uitleg gevraagt over de Php-code van Postnuke....  Naar boven

  • Ik heb afgelopen weekend een poging gedaan om de binnenkant van Postnuke te begrijpen. Ik wou wel eens weten hoe de site nou opgebouwd wordt met al die php-codes. Wil er zelf ook wel eens in gaan rommelen.

    Maarja, voor iemand met zo goed als 0 kennis van php is dat denk ik wel onbegonnen zaak. Tot dusverre heb ik dus alleen zitten staren naar al dat code-gedoe, zonder er iets wijzer ervan te worden.

    Ik vroeg me dus af of iemand ergens een goede handleiding heeft (of een adres heeft) om dit allemaal een klein beetje te begrijpen.
    - Hoe zie je dat welke waarde waar uit de database komt?
    - Hoe weet de code dat die de vertaling (van global.php) uit welke language map haalt?
    - Als je op een bepaalde link klikt ga je door naar een andere pagina, met daarin gegevens van die link (plaatser van een artikel ofzo). Hoe ziet Postnuke dat hij deze gegevens moet hebben??? (van dit bepaald persoon dan).
    - Tja..zo heb ik nog wel wat vragen, maar gaat me eerst verder proberen te verdiepen.Dit zijn denk ik wel belangrijkste vragen die ik heb om het geheel te begrijpen.

    Ik heb wel eens gekeken naar een php-boek, maar het nadeel daarvan vind ik vaak dat het zo algemeen is. Vaak als je een gedeelte niet begrijpt ben je uren aan het dwalen door zo'n boek (dat gevoel heb ik altijd..of ik kan niet zoeken...dat kan ook... :? )

    Maar als iemand mij een klein beetje op weg zou kunnen helpen, misschien dat ik het dan ook ooit wel eens ga begrijpen...

    Alvast bedankt...

    Ursel :?

    __________
    Postnuke site:
    www.denoortukkers.nl

  • Als je de binnenkan van Postnuke wil begrijpen, zal je toch je kennis van PHP moeten bijschaven en minstens de algemene structuren leren kennen, maar daarom niet ieder commando.
    Ik ken zelf ook niet ieder PHP commando, maar gewoonlijk biedt de php.net documentatie wel info om eruit te geraken.
    Het komt er gewoon op neer dat je mioet leren PHP te lezen, daarom nog niet schrijven, maar om dan Postnuke direct als eerste proefstuk te nemen, lijkt me toch een beetje een zware opgave. Ik ken zelf niet de volledige engine die erachter steekt maar ik maak wel extensief gebruik van de PN API.

    PS: der is nen beginners cursus op mijne site :)

    __________
    Brave Cobra
  • Ok..gaat maar effe flink snuffelen in php.net.

    Ik had die cursus op jouw site al een keer bekeken. Dat is het gedeelte dat ik nog wel kan begrijpen. het probleem loopt bij mij meer naar de database. ik begrijp dat postnuke daar niet het beste beginners materiaal is, maar ok. Ik ben na html over gestapt naar postnuke. Dus ja..nu ik er eenmaal zit wil ik het dus weer naar eigen wensen hebben, en daar loop ik dus vast.

    Maar ok..gaat daar effe kijken. bedankt

    __________
    Postnuke site:
    www.denoortukkers.nl

  • Hoi Ursul,

    Basis van de database-toegang door PostNuke:
    - PostNuke maakt gebruik van ADODB (dat vindt je terug onder de //website/html/pnadodb directorie. Dit is 'PN-core', niet wijzigen dus.
    De adodb-code creert een 'database-onafhankelijke' laag tussen PN en de database, zodat je in de PN-code geen mysql-statements tegenkomt (zou moet komen :? .

    - Zodra via de PN-API een module wordt geladen, laadt PN allereerst het pntables.php bestand uit de module-directorie. Als je zo'n bestand bekijkt, zie je hoe de relatie met de fysieke tabellen is opgebouwd.
    De tabel-definities worden via het pntables-bestand opgeslagen in een array-variabele.

    - Als je vanuit je module-code gaat werken met tabellen, krijg je dus ongeveer het volgende:

    Code
    // Haal de tabel-definities voor deze module op:
        list($dbconn) = pnDBGetConn();
        $pntable = pnDBGetTables();

        // Gebruik 'vriendelijkere' variabelen.
        // Let op de ampersand bij de kolommen!
        $cncpttbl =  $pntable['brshd_concept'];
        $cncptcol = &$pntable['brshd_concept_column'];

        // Stel je sql-statement samen:
        $sql = "SELECT $cncptcol['id'], $cncptcol['naam']"
            ." FROM $cncpttbl"
            ." WHERE etc etc....";

        // Voer de select uit via de ado-laag:
        $dbconn->Execute($sql);

    etc etc


    De 'Template' module is bedoeld als blauwdruk, met een overvloed aan commentaar waarin e.e.a. is uitgelegd.

    Veel succes,
    Marc
  • Deze code hoort uiteraard in de api Files van een module. Dan kan je vanuit pnuser.php of pnadmin.php deze functies (api calls) aanroepen.

    __________
    Brave Cobra
  • icon_redface

    Ik wilde het niet gelijk een dev-doc maken.... :wink:

    Maar je hebt wel gelijk, aapjes is de beste plek.

Deze lijst is gebaseerd op gebruikers die de afgelopen 10 minuten online waren

 

Taal

Preferred language