Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Impelemtatie pagina's in CMS

s.Mighty
12 antwoorden
  • Mensen,

    Ik ben bezig met het bouwen van een klein cms [i:d8b684ce9d](wie niet tegenwoordig..)[/i:d8b684ce9d], maar om dit zo optimaal mogelijk te maken heb ik een paar kleine vraagjes.

    Ik heb [i:d8b684ce9d](zoals bijna alle cms systemen)[/i:d8b684ce9d] aan de linkerkant mijn menu en aan de rechterkant komt de content.
    Vroeger [i:d8b684ce9d]*uhum*[/i:d8b684ce9d] deden we dat natuurlijk netjes met frames [i:d8b684ce9d]*schaam*[/i:d8b684ce9d] maar tegenwoordig [i:d8b684ce9d]*jeej*[/i:d8b684ce9d] kunnen we dit netjes met layers [i:d8b684ce9d](divjes)[/i:d8b684ce9d] oplossen. Dit heb ik dan ook netjes gedaan.


    Nu vraag ik me af wat de beste methode is om de content aan de rechterkant te tonen.

    [b:d8b684ce9d]1. Wat wordt de link?[/b:d8b684ce9d]
    Ga ik een variabele meegeven aan de link, en wat wordt dan dan?
    bijv. ?page=1 of ?page=addPage

    [b:d8b684ce9d]2. Plaats ik de link in de database of check ik gewoon op id?[/b:d8b684ce9d]
    Ik kan natuurlijk de complete link meegeven in een aparte cell in de database maar ik kan ook gewoon de id van de pagina gebruiken [i:d8b684ce9d](als ik voor link optie 1 ga)[/i:d8b684ce9d] wat is de meest handige/beste/efficiente manier?

    [b:d8b684ce9d]3. Hoe implementeer ik dit in de pagina zelf het [u:d8b684ce9d]meest[/u:d8b684ce9d] efficient?[/b:d8b684ce9d]
    Ik zou natuurlijk een switch erin kunnen gooien maar dit lijkt me niet echt handig, ook met het oog op de uitbreiding van de pagina's. Daarnaast roep ik natuurlijk in dit geval de pagina addPage.php op, maar om al die pagina's iedere keer te includen lijkt me persoonlijk ook niet echt de meest handige oplossing.


    Het gaat me dus om de meest efficiente en uitbreidbare manier om te gebruiken binnen mijn cms, ben al een tijdje aan het expirimenteren maar kan niet echt een hele duidelijke manier op internet vinden met een reden waarom ze voor die reden gekozen hebben.

    Alvast bedankt!
  • Ik weet niet wat je bedoelt met layers(als je bedoelt met werken van z-indexen, dan raad ik je aan om even opnieuw te lezen, en het zelfde geld als je om elk element een div heen zet).

    ik ben ook bezig met mijn cms, ik weis het opdeze manier mee:
    ?page=1
    en dat zouden worden : /page/1/

    ik check gewoon op id, maar ik denk met een re_write alles zo te veranderen:
    ?page=index of zo iets
    (pages/index/)

    punt 3 snap ik niet helemaal.
  • hoi Mighty, bedankt voor je antwoord.

    ik heb de site gewoon html/css opgebouwd, gebruik makend van div-jes. Niks mis mee lijkt me.

    Aan de linkerkant staat het menu waar ik bijvoorbeeld een pagina kan toevoegen, aan de rechterkant komt dan netjes een formuliertje te staan waar je de titel van de pagina kan aangeven, tekst op de pagina, de desbetreffente stylesheet en pagina template aan kan koppelen etc.

    Dit laatste heb ik in een php bestand staan bijv. addPage.php


    in het menu naar "pagina toevoegen" zou gaan verwijst deze naar ?page=1 (vind het persoonlijk mooier om dan ?page=addPage te gebruiken :S).

    Hoe geef ik nu aan (puntje 3) in de index.php dat addPage.php moet worden opgevraagd en in mijn rechterdiv moet komen als ?page de waarde 1 heeft.
  • Ik heb je vraag verkeerd begrepen (of niet). als dit voor een adminpaneel is dan mag je vergeten wat ik gezegt hebt, en dan moet je gewoon "?page =addpage" of zo gebruiken ;)

    hmm, ik maak altijd gebruik van switch functies voordat:
    [code:1:03fa3620c8]
    switch ($_GET['page']){
    case AddPage:
    include "addpage.php";
    break;
    case DelPage:
    include "delpapge.php";
    break;
    default:
    include "home.php";
    break;
    }[/code:1:03fa3620c8]

    in zo'n zin werkte ik vaak ook ;) maar het is even een kwestie van uitproberen hoe het precies werkt.
  • kijk, dit soort voorbeelden wil ik inderdaad hebben!

    Dit gebruik ik zelf ook redelijk vaak maar ik vraag me af of dit de meest gangbare en misschien nog wel belangrijker, meest efficiente manier is voor het opbouwen van zo'n pagina.

    Zijn er mensen die zoiets op een andere manier zouden aanpakken?
  • [b:9bdb9fa220]Ik heb een andere benadering welke naar mijn idee beter is:[/b:9bdb9fa220]

    Wanneer 'addpage' in het menusysteem aan id=1 gekoppeld is kan ik via de parameter 'page' de id van de pagina worden meegegeven.
    Deze kan ik dan weer via de $_GET[]-manier uitlezen.

    $page = (isset($_GET['page'])) ? intval($_GET['page']) : 0 ;

    Met die waarde kan ik dan in een menuquery opstarten, tenminste als $page niet de waarde 0 heeft. In de resultset kan dan de paginanaam 'addpage' tevoorschijn getoverd worden (apart veld in de tabel).

    Dan nog even dubbelchecken of het bestand bestaat. Zoja, dan kan mbv INCLUDE de pagina op het juiste punt in de HTML ingevoegd worden.

    Een voorbeeld van de tabel zou dan kunnen worden:
    id | titel | tagline | sectionID | file | active


    Zijn er nog mensen die een andere/betere benadering hiervoor hebben of misschien nog andere tips hebben?

    alvast bedankt!
    -marcel
  • Dat is inderdaad een van de betere benaderingen.

    wat je ook kan doen is het spul voor het menu in een functie stoppen (heb ik ook gedaan) en dan in de zin van dit :
    [code:1:a8a0fa396d]create_submenu($sub_menu_id, $debug)[/code:1:a8a0fa396d] aanroepen, waarbij de query wordt uitgevoert en netjes alles wordt uitgeprint of opgeslagen in een variabele/
  • Het probleem ligt hem niet zozeer bij het tonen van het menu, hiervoor heb ik inderdaad netjes een functie geschreven maar meer bij het tonen van de pagina die bij het actieve menu-item hoort.

    Bij gewoon tekst uit een database is dit niet zo'n probleem maar het efficient ophalen van een bestand gekoppeld aan een menu-item was wel een punt waar ik mee zat.
  • pff, kan je de bestandnaam (nadat je de extensie hebt gestript) niet in een functie gooien, waarna je controleert bij welk bestand welk menu_id hoort, waarna de desbetreffende menu_id retourneert.
  • haha volgens mij maak jij het jezelf nu lastig ;)

    Je draait het nu om door te kijken welke bestanden je hebt en vervolgens gaat kijken welk menu item erbij hoort?? Snap niet helemaal waarom ik dat zou willen…


    ben er in ieder geval redelijk uit nu dus kan weer even verder. Bedankt voor je hulp!
  • Ik hou niet zo van erg moeilijke(kwantiteit) code los, gooi dat altijd in een functie :P
  • Misschien een beetje late reactie, maar ik ben persoonlijk nog steeds bijzonder gecharmeerd van de aanpak zoals genoemd in het volgende artikel op SitePoint:

    mod_rewrite: A Beginner's Guide to URL Rewriting en dan met name pagina 4: For Advanced Users

    Trouwens, als je een CMS bouwt, waarom wil je dan met fysieke bestanden op de server werken? Het lijkt mij dat je een database nu ten volle kan benutten met alle geteste en bewezen snelheidsoptimalisaties die erbij horen.

    - Bas

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.