CMS impartit de module
Moderatori: Zamolxe, Moderatori
- marius4896
- Average Member
- Mesaje: 106
- Membru din: Vin Oct 31, 2008 12:55 am
- Contact:
CMS impartit de module
Salutare,
Am primit un proiect de facut, si as dori sa plec din start bine, si m-am hotarat sa va cer parerea.
Trebuie sa realizez un CMS ( sistem de useri, posibilitatea de creare pagini "statice", meniuri, comentarii ). Acesta trebuie sa sa fie facut pe teme, templateuri, care pot fi usor mofificate, implementate.
Trebuie sa mai contina si module.
Modulele acestea, trebuie sa fie independente, si pot fi activate/dezactivate oricand. Ex modul de galerie, modul de shopping cart etc.
Am doua variante. Sa il fac folosind un framework de-al meu, sau codeigniter. Cu codeingniter ar fi mai usor ( teoretic ) folosind HMVC for codeigniter si sa il separ in module independente. Dar nu reusesc sa imi dau seama cum sa folosesc si un sistem de templateuri daca voi face acest lucru, deoarece fiecare modul va avea propriul sau VIEW folder, iar mie imi trebuie ceva care sa le cuprinda pe toate.
Nu vreau sa folosesc nici un CMS actual, joomla, drupal, etc, vreau sa il fac eu.
Asa ca, va rog, daca v-ati intalnit cu o asemenea situatie, cum a-ti rezolvat-o, sau cum a-ti rezolva-o pusi acum in aceasta situatie. Dar va rog daca se poate, sfaturi concrete. Multumesc anticipat.
Am primit un proiect de facut, si as dori sa plec din start bine, si m-am hotarat sa va cer parerea.
Trebuie sa realizez un CMS ( sistem de useri, posibilitatea de creare pagini "statice", meniuri, comentarii ). Acesta trebuie sa sa fie facut pe teme, templateuri, care pot fi usor mofificate, implementate.
Trebuie sa mai contina si module.
Modulele acestea, trebuie sa fie independente, si pot fi activate/dezactivate oricand. Ex modul de galerie, modul de shopping cart etc.
Am doua variante. Sa il fac folosind un framework de-al meu, sau codeigniter. Cu codeingniter ar fi mai usor ( teoretic ) folosind HMVC for codeigniter si sa il separ in module independente. Dar nu reusesc sa imi dau seama cum sa folosesc si un sistem de templateuri daca voi face acest lucru, deoarece fiecare modul va avea propriul sau VIEW folder, iar mie imi trebuie ceva care sa le cuprinda pe toate.
Nu vreau sa folosesc nici un CMS actual, joomla, drupal, etc, vreau sa il fac eu.
Asa ca, va rog, daca v-ati intalnit cu o asemenea situatie, cum a-ti rezolvat-o, sau cum a-ti rezolva-o pusi acum in aceasta situatie. Dar va rog daca se poate, sfaturi concrete. Multumesc anticipat.
si ,
-
bema2004sw
- Average Member
- Mesaje: 50
- Membru din: Dum Mai 24, 2009 10:18 pm
- Localitate: Pe net ...
- marius4896
- Average Member
- Mesaje: 106
- Membru din: Vin Oct 31, 2008 12:55 am
- Contact:
-
bema2004sw
- Average Member
- Mesaje: 50
- Membru din: Dum Mai 24, 2009 10:18 pm
- Localitate: Pe net ...
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
nu am vrut sa ma bag ca tot asteptam sa se porneasca o discutie interesanta... vad ca v-ati lipit de codeigniter si fiecare ii spune avantajele si dezavantajele...
eu am deja un sistem de genul asta facut de la 0, desigur nu recomand sa stai sa scri fiecare clasa si modul de la 0 ca banuiesc ca nu asta e scopul si nici timp necesar nu e... dar e bine sa gandesti logica frameworkului, sa te gandesti cum separi template-ul de module si cum se integreaza in pagini...
eu la mine am ceva de genul asta (spun o descriere simplificata ca sa intelegeti)
- template_engine.php - asta verifica ce template este setat pentru vizitator si incarca setarile pentru acel template
- tpl_settings_numetemplate.php - asta e fisierul cu setari pentru acel template (contine generarea meniurilor, setarea variabilelor care sunt cerute de template si alte setari care trebuie facute pentru pagina curenta
- numetemplate.tpl - asta e template-ul pagini curente care e cerut de template engine si se pune in el valorile unde trebuie afisate...
mai departe e sistemul de module... in afara de prima pagina care e o situatie speciala unde se pot cere mai multe module, restul paginilor de obicei incarca doar un anumit modul la un moment dat... deci trebuie gandit loadingul in asa fel ca sa incarci modulul...
fa o schema logica la tot sistemul si astfel iti dai seama de problemele peste care te poti lovi... in rest ce framework folosesti e la alegerea ta...
o diagrama a cms-ului meu o
eu am deja un sistem de genul asta facut de la 0, desigur nu recomand sa stai sa scri fiecare clasa si modul de la 0 ca banuiesc ca nu asta e scopul si nici timp necesar nu e... dar e bine sa gandesti logica frameworkului, sa te gandesti cum separi template-ul de module si cum se integreaza in pagini...
eu la mine am ceva de genul asta (spun o descriere simplificata ca sa intelegeti)
- template_engine.php - asta verifica ce template este setat pentru vizitator si incarca setarile pentru acel template
- tpl_settings_numetemplate.php - asta e fisierul cu setari pentru acel template (contine generarea meniurilor, setarea variabilelor care sunt cerute de template si alte setari care trebuie facute pentru pagina curenta
- numetemplate.tpl - asta e template-ul pagini curente care e cerut de template engine si se pune in el valorile unde trebuie afisate...
mai departe e sistemul de module... in afara de prima pagina care e o situatie speciala unde se pot cere mai multe module, restul paginilor de obicei incarca doar un anumit modul la un moment dat... deci trebuie gandit loadingul in asa fel ca sa incarci modulul...
fa o schema logica la tot sistemul si astfel iti dai seama de problemele peste care te poti lovi... in rest ce framework folosesti e la alegerea ta...
o diagrama a cms-ului meu o
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
- marius4896
- Average Member
- Mesaje: 106
- Membru din: Vin Oct 31, 2008 12:55 am
- Contact:
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
la mine modulele sunt incarcate doar cand sunt cerute (din link sau cod) iar daca nu exista acel modul ori se afiseaza mesaj ori se ignora cererea...
logica codului e asa
am o singura pagina in tot cms-ul si anume index.php
cand se cere o pagina anume se apeleaza un link de forma
index.php?p=nume pagina din bd
cand scriptul intern detecteaza p= incarca modulul content.php si asta la randul lui cere pagina din bd si trimite rezultatul la template engine...
cand se cere o actiune anume de la un modul linul e de forma asta
index.php?m=nume_modul&action=nume_actiune&alti parametrii necesari acelei actiuni (optionali)
cand scriptul detecteaza m= se cauta modulul respectiv pe server (controlerul) si se incarca iar acesta are in el cazurile pentru fiecare actiune posibila... (acesta la randul lui cere clasele necesare (MODEL din MVC) acelei actiuni) si e rulat acel caz, iar rezultatul acelui caz e trimis la template engine care se ocupa cu afisarea...
logica codului e asa
am o singura pagina in tot cms-ul si anume index.php
cand se cere o pagina anume se apeleaza un link de forma
index.php?p=nume pagina din bd
cand scriptul intern detecteaza p= incarca modulul content.php si asta la randul lui cere pagina din bd si trimite rezultatul la template engine...
cand se cere o actiune anume de la un modul linul e de forma asta
index.php?m=nume_modul&action=nume_actiune&alti parametrii necesari acelei actiuni (optionali)
cand scriptul detecteaza m= se cauta modulul respectiv pe server (controlerul) si se incarca iar acesta are in el cazurile pentru fiecare actiune posibila... (acesta la randul lui cere clasele necesare (MODEL din MVC) acelei actiuni) si e rulat acel caz, iar rezultatul acelui caz e trimis la template engine care se ocupa cu afisarea...
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
- marius4896
- Average Member
- Mesaje: 106
- Membru din: Vin Oct 31, 2008 12:55 am
- Contact:
Si template-ul ( view-ul ) il ai intr-un singur loc, indiferent de ce modul folosesti ? Adica daca o sa adaugi un modul de galerie, dupa ce siteul este online, trebuie sa mai adaugi in template un fisiere galerie.php, special pentru modulul de galerie ? sau ai un fisiere modul.php in template, si este folosit de toate modulele ? Nu stiu daca am explicat cel mai bine...
si ,
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
pai aici intervine treaba specificata de tine la inceput... daca vrei ca fiecare modul sa aiba viewerul lui propriu va trebui ca in directorul de template sa ai cate un viewer pentru fiecare modul in parte care sa se potriveasca cu acel template... iar setarile le specifici in fisierul de setari al template-ului de care ti-am zis mai sus tpl_settings_numetemplate.php ( la mine in diagrama ar fi tpl_template.inc.php)
eu personal am renuntat la cate un viewer pentru fiecare template, desi stiu ca nu e o optiunie pur MVC, dar e mai simplu pentru mine la cod...
am niste variabile interne ale frameworkului care sunt asa
$tpl['messages'] = array(); // se seteaza in controler cu mesajele ce vor fi afisate in pagina
$tpl['errors'] = array(); // se seteaza in controler cu mesajele de eroare ce vor fi afisate in pagina
$tpl['content'] = ''; // se seteaza in controler, va contine pagina propriuzisa, formularul sau textul pagini
.. si tot asa...
(idea de baza pe care o folosesc la mine am detaliat-o in )
eu personal am renuntat la cate un viewer pentru fiecare template, desi stiu ca nu e o optiunie pur MVC, dar e mai simplu pentru mine la cod...
am niste variabile interne ale frameworkului care sunt asa
$tpl['messages'] = array(); // se seteaza in controler cu mesajele ce vor fi afisate in pagina
$tpl['errors'] = array(); // se seteaza in controler cu mesajele de eroare ce vor fi afisate in pagina
$tpl['content'] = ''; // se seteaza in controler, va contine pagina propriuzisa, formularul sau textul pagini
.. si tot asa...
(idea de baza pe care o folosesc la mine am detaliat-o in )
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
- marius4896
- Average Member
- Mesaje: 106
- Membru din: Vin Oct 31, 2008 12:55 am
- Contact:
Multumesc mult, eu vreau sa fac in asa fel incat toate fisierele de template pe care le voi folosi sa fie stranse intr-un singur director de template, sa fie usor mai apoi, sa pot crea alte templateuri. Toata seara am incercat testat diferite metote, atat cu codeigniter, cat si fara, ca vreau ca odata ce am inceput sa il fac sa pot sa il duc pana la capat. Multumesc inca o data pentru timpul acordat.
si ,
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
pai asta e ca daca o sa ai sistem multitemplate acele viewere trebuie sa respecte formatul acelui template... deci o sa ai cate un director cu viewere pentru fiecare template in parte...
eu la mine cum am spus am renuntat la cate un viewer pentru fiecare modul, am doar 1 singur viewer global per template exact cum e in diagrama aia...
structura de directoare la ce vrei tu ar fi asta
templates/numetemplate1/viewere pentru template 1
templates/numetemplate2/viewere pentru template 2
etc...
template engine va incarca viewerul acelui modul din directorul template-ului curent... daca nu il gaseste ori afisezi mesaj ori incarca alt template default...
cauta pe forum discutii mai vechi despre template engine, am mai explicat chestiile astea de cateva ori pe aici prin forum
eu la mine cum am spus am renuntat la cate un viewer pentru fiecare modul, am doar 1 singur viewer global per template exact cum e in diagrama aia...
structura de directoare la ce vrei tu ar fi asta
templates/numetemplate1/viewere pentru template 1
templates/numetemplate2/viewere pentru template 2
etc...
template engine va incarca viewerul acelui modul din directorul template-ului curent... daca nu il gaseste ori afisezi mesaj ori incarca alt template default...
cauta pe forum discutii mai vechi despre template engine, am mai explicat chestiile astea de cateva ori pe aici prin forum
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
-
dechim
- Senior Member
- Mesaje: 1486
- Membru din: Mar Mai 10, 2005 11:53 pm
- Localitate: Drobeta Turnu Severin
Birkoff, nu inteleg de ce (pe schema ta) index.php se adreseaza direct blocului "tplengine" (traseul 3) ?
El incarca controlerul, care la randul lui se ocupa numai de model. View-ul este gestionat tot de tplengine.
Aveam impresia ca blocul de control (controlerul) este desteptu' care stie si decide la serviciile cui apeleaza.
E ceva care-mi scapa.
El incarca controlerul, care la randul lui se ocupa numai de model. View-ul este gestionat tot de tplengine.
Aveam impresia ca blocul de control (controlerul) este desteptu' care stie si decide la serviciile cui apeleaza.
E ceva care-mi scapa.
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
index.php e doar un preloader, incarca fisierele alea cu include...
ultimul script incarcat de index.php e tplengine ala.
mai departe tplengine la mine verifica ce anume se cere si incarca controlerul respectiv care ruleaza actiunea ceruta si seteaza variabielele apoi se opreste (break la switc=ul din controler)
mai departe avem deja variabilele setate de controler si templateengine-ul incarca setarile pentru template pune variabilele pe unde trebuie si afiseaza pagina generata.
nu am gasit alta logica la asta si din multe incercari am ajuns la structura aratata in acea diagrama care functioneaza cum am spus mai sus.
nu zic ca varianta mea e perfecta, am mai deschis subiectul asta de cateva ori pe forum da nimeni nu a venit cu alta logica sau alte variante folosite de ei...
mai e si alta varianta, atunci cand toate paginile sunt separate (nu ca la mine o singura pagina) si atunci da controlerul se incarca primul si el face restu si la sfarsit paseaza treaba la template engine...
ultimul script incarcat de index.php e tplengine ala.
mai departe tplengine la mine verifica ce anume se cere si incarca controlerul respectiv care ruleaza actiunea ceruta si seteaza variabielele apoi se opreste (break la switc=ul din controler)
mai departe avem deja variabilele setate de controler si templateengine-ul incarca setarile pentru template pune variabilele pe unde trebuie si afiseaza pagina generata.
nu am gasit alta logica la asta si din multe incercari am ajuns la structura aratata in acea diagrama care functioneaza cum am spus mai sus.
nu zic ca varianta mea e perfecta, am mai deschis subiectul asta de cateva ori pe forum da nimeni nu a venit cu alta logica sau alte variante folosite de ei...
mai e si alta varianta, atunci cand toate paginile sunt separate (nu ca la mine o singura pagina) si atunci da controlerul se incarca primul si el face restu si la sfarsit paseaza treaba la template engine...
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 18 vizitatori
