Meerdere websites aansturen met 1 database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arjan Kapteijn

Arjan Kapteijn

26/05/2008 10:47:00
Quote Anchor link
Beste allemaal,

Ik ben op dit moment bezig met het ontwikkelen van een portal; een centraal systeem met daarin een grote hoeveelheid producten van verschillende merken, ingedeelt in categorieen. Het idee is om zomenteen meer dan 100+ verschillende websites te (laten) designen die vanuit dit centrale systeem aangestuurd word.

Denk daarbij aan een website met alle producten uit de category x of van het merk y, een combinatie daarvan of alleen producten die voldoen aan bepaalde voorwaarden (een prijs lager dan x en voldoet aan voorwaarden y & z).

Mijn idee was om, tegen die tijd, een lijst te maken op PHPHulp zodat iedereen die het leuk vind een domein uit kan zoeken om vervolgens zijn portfolio + prijs naar mij te mailen, maar dat is voor later. Ik zit nu namelijk nog met een technisch probleem...

Hoe ga ik dit eenvoudig aanpakken? Hoe zorg ik ervoor dat het veilig/snel en eenvoudig is en vooral beheersbaar? Maar tegelijkertijd de designer/developer voldoende mogelijkheden geven om er creatief mee om te gaan? Wat zouden jullie doen en waarom?

Optie a: Een Zen Garden achtige oplossing waarbij ik de html/php (aan-)maak en deze op een webhosting-accountje plaats en de FTP-gegevens daarvan naar de designer email.
+ De designer kan zelf lekker aan de slag, kan de html/css aanpassen etc.
+/- Iedere website heeft zijn eigen html
- De designer kan wel overal bij...

Optie b: Zoals bovenstaande maar alleen toegang geven tot de stylesheet/images map.
+ Designer heeft geen toegang tot de code
- Minder flexibel

Optie c: een XML bestand aanmaken met daarin alle producten zodat de designer zelf de php/html code kan schrijven om daar creatief mee om te gaan.
+ Veilig/netjes
- Vereist PHP-kennis voor de designer
- Iedere request is een compleet xml bestand

Hoe zouden jullie het aanpakken en waarom? En hoe moet ik dit doen met de standaard 'contact formulieren'.
 
PHP hulp

PHP hulp

24/11/2024 16:16:29
 
Robert Deiman

Robert Deiman

26/05/2008 11:04:00
Quote Anchor link
Het kan natuurlijk ook een optie zijn om voor elk domein een config.php bestandje te maken waarin je verbinding maakt met de database. Zet daarnaast in een txt file of iets dergelijks een paar dingen in de WHERE clause die gebruikt moeten worden om alleen de juiste gegevens uit de database te trekken.
Laat ze dat gebruiken om met gegevens te gaan testen.

Geef ze dan alleen eerst beperkte (alleen lezen) toegang tot de database. Ik neem aan dat jij zelf de backend maakt, dus dat die al standaard is. Je kan op zo'n manier de boel veilig delen. Scheelt in de requests.

Je kan ook een kleine datadump maken en ze daarop lokaal laten werken. Bij uploaden hoeven ze alleen maar de verbinding om te zetten en het zal al werken. Moet je wederom wel aangeven dat ze de juiste WHERE clause gebruiken, zodat alleen de juiste items op die site komen te staan.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Arjan Kapteijn

Arjan Kapteijn

26/05/2008 11:08:00
Quote Anchor link
Maar dan moet je er wel vanuit gaan dat een designer handig genoeg is om daar wat leuks mee te maken... Dat hij/zij dus kan programmeren... Het punt is dan dat ik iedere website moet gaan nalopen om te kijken of die persoon wel netjes/veilig geprogrammeerd heeft.
 

26/05/2008 11:12:00
Quote Anchor link
Kan je niet een kopie maken van de database en die op een aparte testomgeving draaien. Kan je iedereen volledige toegang geven tot hetgeen zij nodig hebben, kunnen ze kloten wat ze willen, want ze werken toch op een testomgeving. Zodra er iets mis gaat herstel je het met de kopie van eerder.. ;p

Hoef je uiteraard niet de volledige database te doen, maar enkele testgegevens. Kan je er ook nog voor kiezen om 1 of meerdere test-databases en omgevingen in te richten. Zodra alles klopt kan je het overzetten naar een acceptatie omgeving of de productie omgeving, waarbij je dus de daadwerkelijke database aan de applicatie kan koppelen.
Gewijzigd op 01/01/1970 01:00:00 door
 
Robert Deiman

Robert Deiman

26/05/2008 11:13:00
Quote Anchor link
@Arjan

In principe is de PHP elke keer hetzelfde alleen de query zal verschillen normaal gesproken. (je moet met PHP bijvoorbeeld alle items uitlezen, de subitems enzovoorts) De veiligheid kan je dan wel zelf garanderen op die items. Je moet wel beperkingen stellen dat ze zelf geen nieuwe tabellen bij gaan maken en dergelijke.

Je kan dan in principe ook een standaard HTML aanmaken waarmee ze kunnen spelen met de CSS. Ik zou dan persoonlijk meer voor de Zengarden methode gaan.

Dat gedeelte kan je helemaal standaard maken. In de config.php die je online hebt staan zet je een e-mail adres dat voor dat domein gebruikt moet worden. Het contactformulier maakt gebruik van die waarde om de mail te verzenden. Je kan dus al een standaard PHP pagina maken (veilig) die de e-mail verstuurd.

René D. schreef op 26.05.2008 11:12:
Kan je niet een kopie maken van de database en die op een aparte testomgeving draaien. Kan je iedereen volledige toegang geven tot hetgeen zij nodig hebben, kunnen ze kloten wat ze willen, want ze werken toch op een testomgeving. Zodra er iets mis gaat herstel je het met de kopie van eerder.. ;p

Hoef je uiteraard niet de volledige database te doen, maar enkele testgegevens. Kan je er ook nog voor kiezen om 1 of meerdere test-databases en omgevingen in te richten..

Dat is wel een mogelijkheid, maar dan zit je nog met het probleem dat je erop moet gokken/ vertrouwen dat ze de boel goed en veilig programmeren. Dus dan heb je nog een beetje hetzelfde probleem.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Crispijn -

Crispijn -

26/05/2008 11:18:00
Quote Anchor link
Als ik bijvoorbeeld kijk naar Joomla! hebben ze daar eigenlijk hetzelfde. Natuurlijk is de eind gebruiker verantwoordelijk voor de code maar deze wordt normaliter nauwelijks aangepast. Wanneer je dus een template parser maakt ben je er toch al? Gewoon zorgen dat verschillende tags vervangen worden door een door jou aangegeven module. Wel kan je als designer aangeven wanneer er wat weergegeven mag worden...

Of denk ik nou te kort door de bocht?
 

26/05/2008 11:19:00
Quote Anchor link
Robert_Deiman schreef op 26.05.2008 11:13:
Dat is wel een mogelijkheid, maar dan zit je nog met het probleem dat je erop moet gokken/ vertrouwen dat ze de boel goed en veilig programmeren. Dus dan heb je nog een beetje hetzelfde probleem.

Als je mensen inhuurt moet je er van uit kunnen gaan dat ze veilig en goed kunnen programmeren. Als ze dat niet kunnen moet je ze niet inhuren ;p Als je niet afhankelijk wil zijn van de designer/ontwikkelaar moet je zelf alles gaan aanleveren wat zij nodig hebben. Hoeven zij het alleen maar op een pagina uit te vragen.. Maar dan zit je nog zelf met al het werk ;p

Of je moet dus een x-aantal designers laten kloten en alles wat ze nodig hebben moeten ze aan een derde persoon vragen die (meer) verstand heeft van php..
Gewijzigd op 01/01/1970 01:00:00 door
 
Arjan Kapteijn

Arjan Kapteijn

26/05/2008 11:27:00
Quote Anchor link
@ René (druk aan het werk zie ik ;)) Een testomgeving is zo standaard ingeburgerd dat ik er tegenwoordig nauwelijks meer bij stilsta. VMWare is wat dat betreft echt een fantastisch product; met 1 druk op de knop heb je een nieuwe omgeving opgezet of een backup teruggezet.

Overigens; met betrekking tot je laatste bericht. Veel designers/dtpérs kunnen prachtige designs maken maar bakken weer niks van html/php... Vandaar...

De Zen Garden methode heeft ook mijn voorkeur; voor het aanmaken van iedere website hoef ik dan alleen via de API van bijv. directadmin een nieuwe account aan te maken en via de FTP een aantal bestanden (index, contactpagina etc) te kopieren. Vervolgens een FTP account aanmaken/mailen waarmee de designer bij de stylesheets en afbeeldingen kan en klaar. Dan zal ik dus wel een fantastisch goed html bestand aan moeten maken dus daar moet ik dan wellicht even iemand naar laten kijken.

Het heeft wel als voordeel dat iedere website dezelfde 'code' krijgt; eenvoudig te onderhouden dus. Ik zou zelfs één bestand kunnen maken en afhankelijk van de headers/afkomst de juiste css erbij kunnen pakken. Maar als ik iedere website zijn eigen mapje geef heeft dat als voordeel dat ik nog specifieke wensen van de designer in de HTML kan toevoegen/wijzigen.
Gewijzigd op 01/01/1970 01:00:00 door Arjan Kapteijn
 
Robert Deiman

Robert Deiman

26/05/2008 11:30:00
Quote Anchor link
@René D.

Ken je het CSS Zen Garden principe? Je kan ze bijvoorbeeld een paar standaard dingen aanleveren. Elke site is in principe qua backend hetzelfde, dezelfde database zit erachter er worden alleen andere clauses in de WHERE gebruikt.
Je kan dus in principe de query vooraf al schrijven.

Met een soort template hebben ze wel de vrijheid om dingen te plaatsen waar ze dat willen, maar niet de vrijheid om in de database te klooien. Ik denk dat vooral dat laatste heel belangrijk is. Bij Zengarden heb je zelfs een vaste HTML, zodat je daarmee alleen de CSS kan aanpassen. Dat is een optie, maar je ontneemt wel een beetje de bewegingsvrijheid van een ontwerper.
Vandaar ook dat ik aangaf de query's vooraf te definiëren/ stukje PHP van die query's is al iets standaards, maar alleen de WHERE clause is elke keer anders voor een ander domein.


Voor wat betreft dat laatste kan je ook een koppeltabel maken waarmee je domeinen aan een bepaalde categorie o.i.d. koppelt. Dat is wel wat ingewikkelder om te maken gezien de verschillende voorwaarden op de verschillende sites, maar dan zou je zelfs helemaal algemene query's kunnen maken, waarbij die alleen kijkt naar het domein dat is ingevoerd in de config file.
 
Frank -

Frank -

26/05/2008 12:40:00
Quote Anchor link
Wanneer je met XML aan de slag gaat, zou je natuurlijk ook met XSLT aan de slag kunnen gaan. Dan kan een ontwerper zijn eigen xHTML, CSS en evt. JS gaan aanmaken, jij zorgt voor een XML bestand (die je dynamisch aanmaakt met PHP en/of je database) en daarmee klaar.

XSLT is niet moeilijk, het is gewoon XML en XPath, maar de gemiddelde designer op phphulp-niveau zal daar weinig kaas van hebben gegeten. Ik denk dat je dan toch meer bij de professionals terecht komt.

Ik zou voor de ZenGarden methode met CSS en wat losse images kiezen wanneer het eenvoudig moet zijn voor de designers. Je hebt dan wat betreft de html-code wel wat beperkingen, maar dat is dan niet anders.

Edit: Voorbeeld-code
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.