Projekti CMS është një guidë paksa e ndryshme nga ato të zakonshmet në mënyrën e konceptimit dhe paraqitjes, por jam i sigurt që është po aq efikas. Në këtë projekt ju ofrohet një CMS e ndërtuar posaçërisht që ju të mësoni duke studiuar kodin!
Projekti CMS është një guidë pak e ndryshme nga të tjerat në dy aspekte. Së pari është për mua guida me e gjatë që kam marrë ndonjëherë përsipër të shkruaj, sepse përfshin realizimin e plotë të një CMS-je. Së dyti sepse është paksa ndryshe nga guidat tradicionale. Artikulli që do të lexoni këtu është më tepër një shpjegim i hollësishëm i funksionimit të CMS-së dhe prezantim i funksioneve të saj, jo një guidë e mirëfilltë. Guida e vërtetë ndodhet në kodin që mund të shkarkoni më poshtë dhe në komentet e kodit.
Shkarko Kodin
Duke qenë një projekt i madh, nëse do të bëja një guidë për të gjithë konceptimin dhe kodimin e CMS-së do duheshin disa artikujt shumë të gjatë. Zgjidhja e ofrimit të gjithë kodit dhe komentimi i hollësishëm i tij më erdhi në mendje pasi mendova çfarë do doja unë nga ky projekt. Në fakt, ajo që do doja unë nga një projekt i tillë nuk është një seri guidash që tregojnë funksionalitetin duke shpjeguar fragmente të kodit, sepse do e kisha të vështirë ti mblidhja të gjitha copëzat bashkë. Në kundërshtim do doja një kod të komentuar mirë nga i cili të mësoj si të krijoj funksionalitete të ndryshme, si ti organizoj skedarët, etj. Shpresoj që ky këndvështrim të përshtatet edhe për ju.
Struktura e Direktorive
Pse një CMS?
Përgjigja është e thjeshtë: Sepse pjesa më e madhe e dizenjuesve për web që po mendojnë të mësojnë të programojnë, dëshirojnë të realizojnë CMS për klientët e tyre. Qëllimi nuk është vetëm ky, por më duhet ta pranoj që është arsyeja kryesore. Në krah, një CMS është një aplikacion për web kompleks që përmban shumë opsione të cilat mund të përvetësohen e të përdoren për sisteme të tjera.
Pyetja tjetër është: Pse mos të përdorim një CMS të gatshme si Joomla, Drupal apo WordPress? Absolutisht nuk ju them mos ti përdorni sepse do ishte një këshillë e gabuar. CMS-të e gatshme ofrojnë shumë, janë të testuara e të mirëmbajtura nga një komunitet i madh, por më e rëndësishmja është se instalohen dhe vihen në produksion për pak minuta. Megjithatë, konsideroni disa arsye pse duhet ti ofroni klientëve tuaj një CMS të konceptuar nga ju:
Sepse është një sfidë e mirë për veten nga e cila mund të mësoni shumë përmes skenarëve reale.
Sepse paguheni më mirë nëse programoni një CMS tuajën se sa thjeshtë të instaloni një të gatshme.
Sepse CMS-ja juaj ka opsionet e duhura për të menaxhuar një faqe klienti dhe jo qindra opsione që nuk hyjnë në punë.
Sepse CMS-në tuaj e njihni shumë mirë dhe mund ta modifikoni apo ti shtoni opsione fare lehtë, pa lexuar dokumentacione të pafundme.
Sepse kodi i CMS-së tuaj nuk është i aksesueshëm nga publiku i gjerë dhe shanset për ta sulmuar janë më të vogla.
Pikat e mësipërme duhet të jenë disa arsye të mira për të shkuar drejt rrugës “CMS personale”, por gjërat nuk janë të zeza apo të bardha. Gjithçka varet nga skenari. Nëse një klient nuk ju paguan mjaftueshëm, atëherë thjeshtë instaloni një CMS të gatshme. Nëse nuk keni kohë për ta programuar një CMS, atëherë përsëri instaloni një të gatshme. Jeni ju ata që vendosni se cila është zgjidhja më e mirë.
Databaza
Çfarë përmban kjo CMS?
Besoj se kjo është pyetja që ju intereson më tepër. Fillimisht duhet të dini që CMS-ja që kam ndërtuar për këtë projekt është shkruar tërësisht nga zero. Pra nuk ka kode apo zgjidhje të marra nga site-e të tjerë, sepse nuk do quhej CMS-ja ime, por një CMS kolektive. Gjithashtu më duhet t’ju them se nuk është CMS-ja më e ndërlikuar në botë me qindra opsione. Ato që ndodhen në të janë seksione që unë i kam menduar si jetike për një CMS dhe që do t’ju ndihmojnë të kuptoni se si gjithçka funksionon. Më pas, opsionet mund të shtohen pa fund në varësi të projektit. Fakt interesant: Për të gjithë projektin nuk kam përdorur as edhe një imazh; çdo gjë është bazuar mbi tekst për të ruajtur thjeshtësinë.
Panel Administratori
Ky është seksioni më i rëndësishëm i CMS-së dhe ajo që e bën të quhet e tillë. Përmes panelit të administratorit mund të menaxhoni praktikisht çdo gjë që shfaqet në faqe, me thjështësinë e të shtypurit të disa butonave.
Paneli i Administratorit
Kategori dhe Artikuj
Një organizim i mirë i artikujve është i domosdoshëm për çdo CMS, sepse janë pjesa më e rëndësishme ku informacioni shfaqet. Çdo artikull që shtohet duhet ti përkasi një kategorie të caktuar. Në këtë mënyrë krijohet një ndarje logjike e tyre, por dhe gjithashtu mund të krijohen faqe që listojnë disa artikuj. Nëse një faqe drejton tek një kategori, aty shfaqen të gjithë artikujt që i përkasin asaj kategorie.
Lajme
Nga eksperienca, pothuajse të gjitha faqe e bizneseve që kam realizuar kërkojnë një seksion për lajmet. Ato mund të jenë edhe evente apo lajmërime, por mund të përshtaten lehtësisht në seksionin e lajmeve. Edhe kjo CMS ofron menaxhimin e lajmeve duke i shfaqur ato të renditura sipas datës dhe të kliklueshme për ta dërguar vizitorin në përmbajtjen e zgjeruar të lajmit.
Menu Dinamike
Ky është një lehtësim për administratorit e CMS-së duke i ofruar menaxhimin e menuve. Kuptohet që nuk është një opsion i domosdoshëm sepse menutë rrallë ndryshojnë dhe nëse duhet, mund të modifikohen lehtë në HTML. Megjithatë, qëllimi është që të mësoni e ti përdorni këto njohuri në projekte të ardhshme, të cilat edhe mund të kërkojnë menaxhim menush. Përmes panelit, administratori mund të shtojë/editojë menutë e ti lidhë ato me një kategori apo artikull të faqes. Një opsion ekstra që mund të përfshinin menutë do të ishte shtimi i një imazhi (për menu me imazhe), por si ju thashë më sipër kjo CMS nuk përmban asnjë imazh. Mendojeni si mund ta shtoni vetë këtë opsion.
Shtimi i Menuse
Menaxherë të faqes
Paneli i Administratorit mund të aksesohet nga përdorues me dy nivele: Super Admin dhe Admin. I vetmi avantazh që Super Adminët kanë mbi Adminët është shtimi apo editimi i menaxherëve të tjerë. Me të njëjtën logjikë, duke përdorur kodin që unë kam shkruar për të limituar aksesin, mund të limitoni edhe opsione të tjera apo të shtoni një nivel tjetër (psh: ‘Redaktorë’ që vetëm mund të menaxhojnë artikujt dhe lajmet).
Përmbajtja në dy gjuhë
Zgjidhja që unë kam dhënë këtu është e thjeshtë dhe e ngurtë, por për një sistem fleksibël multi-gjuhësh do kërkonte vërtetë shumë punë të konceptohej e të realizohej. Ajo që unë kam bërë për të pasur dy gjuhë për çdo seksion të faqes (kategoritë, artikujt, lajmet dhe menutë) është e thjeshtë; kam futur në databazë dy kolona për secilën fushë (psh titulli_al dhe titulli_en) dhe kam ofruar dy forma editimi, një për shqipen dhe një për anglishten. Gjithashtu kini parasysh që edhe elementët e ndërfaqes në një sistem të vërtetë do donin ndarje për gjuhët e ndryshme, gjë që për këtë CMS unë se kam bërë. Kjo arrihet lehtë duke krijuar skedarë gjuhësh (psh: al.php, en.php, it.php, etj) me variabla të njëjta të cilat kanë vlerë të ndryshme dhe thërriten për gjuhën përkatëse. Ky është sistemi më i mirë dhe më i lehtë për tu mirëmbajtur.
Shabllone
Shabllonet janë një nga opsionet më interesante (të paktën për mua) të kësaj CMS-je. Një shabllon shtohet si direktori brenda direktorise ’shabllone’ dhe krijohen në të dy skedarë: 1) ‘pamja.tpl’ (tpl për template) që përmban HTML-në e faqes së bashku me variablat e shablloneve dhe 2) ’stili.css’ që përmban stilet CSS të shabllonit. Përmes këtij sistemi i ofrohet dizenjuesve që nuk njohin PHP të krijojnë apo të mirëmbajnë shabllone fare lehtësisht. Teknikisht, kodi PHP e lexon shabllonin aktiv duke i zëvendësuar variablat e shabllonit me tekstin e vërtetë që do të shfaqet e në fund e printon në ekran të gjithë si HTML. Ju këshilloj ti hidhni një sy sepse është sistem i thjeshtë e i fuqishëm që mund të zgjerohet pa limit.
Shabllonet
Editor teksti
Editori i tekstit që kam përdorur sigurisht nuk është punë e imja sepse do ishte pa logjikë. Kam zgjedhur të përdor TinyMCE sepse është vërtetë shumë i thjeshtë për tu aktivizuar, ka opsione e plugine pa fund dhe është i bukur. E kam përdorur dhe vazhdoj ta përdor në çdo sistem që krijoj. Për këtë CMS zgjodha të aktivizoj shabllonin ’simple’ (i thjshtë) që është forma më minimaliste e TinyMCE, në mënyrë që të ruaj thjeshtësinë. Por ju mund të zgjidhni pa problem formën ‘advanced’ apo shabllonin ‘office’ që përmbajnë të gjitha opsionet (edhe ato që s’duhen).
Konfigurim
Ashtu si çdo gjë tjetër, konfigurimi është mbajtur në formën më të thjeshtë të mundshme për mos ti ndërlikuar gjërat. Në të mund të vendosni titullin e faqes, gjuhën bazë, shabllonin aktiv, etj. Në sisteme të tjera i kam ruajtur konfigurimet në një skedar php dhe kam lexuar variablat, por kësaj rradhe mu duk më mirë të përdor një tabelë në databazë. Fundja nuk na gjen gjë se bëjmë një query më tepër.
Nuk dua të zgjatem më tepër me fjalë sepse në këtë rast janë të tepërta. Shkarkoni arkivin, studioni kodin dhe shikoni mënyrën e organizimit të skedarëve. Mos nguroni të komentoni nëse gjeni ndonjë problem në CMS apo nëse keni pyetje.
Mësim të mbarë.
Burimi:
http://www.feniksi.com/premium/projekti-cms-me-php