Saradnici za CMS potrebni

1

Saradnici za CMS potrebni

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Napisano: 17 Nov 2012 17:35

Dragi moji i drage moje. Krenuo sam da radim na jednom CM sistemu. Naime, ideja je da se napravi minimalistički CMS sa prilično konzinstentnim interfejsom u administratorskoj tabli i da bude potpuno modularan. Sva funkcionalnost će se nalaziti u njegovim pluginovima od kojih osnovni dolaze uz njega a ostatak se bira.

Druga stvar je: radi potpuno preko ajaxa. Svi pluginovi se dinamički učitavaju i posle logina nema više ni jednog jedinog refresha stranice.

Treća stvar, admin deo koristi HTML5 i ne bih se uopšte trudio da pravim kompatibilnost sa IEom zasad. Dakle Chrome+Firefox (za Operu nisam siguran, ima nekih jako čudnih bagova u njoj samoj).

Ovo sve se odnosi na administratorsku tablu koja je jezgro svakog CMS-a, jel da......Što se tiče "vidljivog dela", on će naravno biti napravljen tako da bude dostupan svima.

Elem,dobra stvar je da sam ja već napravio ceo "engine" koji prihvata pluginove i dinamički ih učitava i sve. Sada je na redu pravljenje osnovnih pluginova koji će mu zapravo dati pravu funkcionalnost i načiniti ga da zaista bude CMS. Internacionalizacija se podrazumeva, svi pluginovi se prevode jako jednostavno jer sam i taj deo sredio. Koristi se gettext PHP modul.

Evo demoa prva dva plugina:
http://www.youtube.com/watch?v=EFKRuYlxNDY

Evo i demoa kako se prave pluginovi, dao sam sve od sebe da bude krajnje jednostavno, i dobra stvar je što zapravo sam kreator plugina ne mora da zna ni jQuery ni Ajax jer engine sve sam to odrađuje:
http://www.youtube.com/watch?v=lzb9ahlSWAE


Ideja je da CMS sam po sebi bude otvoren i besplatan dok bi teme, napredniji pluginovi i podrška bili plaćeni. Potrebno znanje bi bilo: HTML,CSS,JavaScript(jQuery),PHP,MySQL. Ima li zainteresovanih za ovakav projekat?

Ziveli

Dopuna: 17 Nov 2012 17:35

P.S. gledajte barem u 720p rezoluciji da bi se išta videlo Smile



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Veoma mi se svidja nacin na koji si formirao koncept oko samih "cestica", mogao bih i ja koju napraviti Smile



offline
  • Pridružio: 13 Mar 2009
  • Poruke: 229

Da li moze negdje da se pogleda ovo sto si do sada uradio? Ovako preko youtube mi totalno nepregledno.

offline
  • Pridružio: 01 Okt 2009
  • Poruke: 791

HTML, CSS prijava. Po potrebi mogu da ucim ostalo. Very Happy

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Dakle ima zainteresovanih, odlično Smile

Ovako: trenutno sve radim lokalno na kompu. Zakupljujem jedan VPS sledeće nedelje na koji ću ga okačiti te tamo možemo da organizujemo FTP naloge i sve. Sa druge strane, da li je iko upoznat u nekoj većoj meri sa Githubom? Možda bi bilo najlakše preko nega razvijati sve ? Ili jednostavno na VPS-u pokrenuti lokalni GIT ili SVN ? Ima li neko ko ume to solidno da koristi pa da nas provede? Ako ništa, ostaje FTP uvek Smile

Trenutno neću kačiti source kod jer sam već naišao na ograničenja neka jer sam kombinovao previše proceduralno i OOP programiranje. Sve prebacujem sada na OOP te bi trebalo da postane mnogo lakše sve kasnije kada se sistem bude granao. Računam da ću sa time završiti sutra uveče-prekosutra jer sam negde na pola posla.

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12524
  • Gde živiš: Južni pol

Github je odlično rešenje. Imaju jako dobru dokumentaciju koja je dovoljna za početak.

Za više informacija postoji besplatna online e-knjiga sa zvanične GIT strane:
http://git-scm.com/book

Brzi tutorijal za git je dostupan i kao man strana (na *niksu):
man gittutorial

U krajnjem slučaju postoji i dosta dobrih tutorijala i cheatsheetova za GIT.

Btw, Github ima i aplikaciju za Windowsaše koja uključuje i verziju git-a: http://windows.github.com/. U većini Linuks distribucija je git dostupan ili pri instalaciji ili iz zvaničnih repoa.

Što se tiče aplikacije, meni ovo deluje vrlo elegantno i moderno. Thumbs up. Wink

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Napisano: 19 Nov 2012 9:42

Evo postavih Github repo. Glup sam jako za njega, ne kontam još mnogo stvari tako da me izvinite što se tiče config fajla i toga što mora da se preimenuje Smile

https://github.com/igorpan/ParticleCMS

Ja sam sebi napravio samo symlink koji uperava ka pravom config fajlu sa mojim podacima koji stoji van repo foldera pa bi možda i ostali tako trebalo ukoliko ne postoji bolji način da se ovako nešto sredi ?

Kao što rekoh, moram da prebacim sve u OOP, mada sam veliki deo već odradio. Ostalo je login i da vidim da li ću i same "čestice" da pretvaram u klase? Samo global.php i system/EngineManager.php i system/engines su dokumentovani za sada. Moram ionako da vidim šta ću sa ovim klasama koje mi služe kao containeri statičkih funkcija (p.php i ParticleFunctions.php). Svaka pomoć i saveti su dobrodošli naravno Smile Ziveli

Što se tiče samog razgledanja koda, krenite od admin/global.php, nejga index učitava.

Dopuna: 19 Nov 2012 9:43

P.S. login podaci za default nalog:

email: admin@mail.com
password: admin

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Odlicna odluka za git, pravi pocetak. Sada bi ti bilo pametno da smislis sta tacno treba da se uradi, pa cemo mi da krenemo na posao Smile Kontam neki endzin za pisanje unosa, obradu i brisanje ?

offline
  • Pridružio: 10 Avg 2006
  • Poruke: 1009
  • Gde živiš: Beograd

Napisano: 19 Nov 2012 23:31

Ima toliko toga da se uradi Smile

bitno je da ostanu 3 dela nezavisna u najvećoj meri u kojoj je to moguće da bi se izbegli neki skriveni bezbednosni propusti. Javni deo (sve van admin foldera), Login deo (admin/login folder), Admin deo (ceo admin folder osim logina).

Trenutno bitne stvari:
Prve dve ću ja da uradim jer sam ih već započeo pa bi se teško ko snašao verovatno da nastavi na pola:
1. admin/login da se prebaci u Object Oriented oblik.
2. pri registraciji admina preko "admins" čestice trenutno je dovoljno da se ukuca email novog admina i prvi put kad se bude logovao na sistem šifra koju tada ukuca na loginu biće mu postavljena za stalnu šifru. Umesto toga, treba da se postavi privremena šifra koja će mu biti poslata na mail. Što dovodi do treće stvari, tu sad već može lako da se uključi bilo ko:
3. Password change čestica. Umesto što se na klik maila u gornjem desnom uglu izloguješ trebalo bi da se otvori mali meni koji će imati stavke 'Change Password' i 'Logout'. Pri kliku na Change Password otvara se nova čestica koja (bi mogla biti sakrivena iz liste po defaultu) i koja ti dozvoljava da promeniš svoju lozinku. Što otvara četvrtu stvar:
4. Omogućiti česticama da budu nevidljive. To se može lako uraditi tako što se dodaje novi element u nizu čestice particleData['hidden'] = 1; I onda se u ParticleSystem engineu koji sakuplja sve čestice i šalje ih JavaScriptu uvede uslov !isset(particleData['hidden']) da bi se čestica prosledila dalje u JS.
5. Javni deo sajta. Trenutno radim na modelu kako bi mogle da rade teme, raspored elemenata na strani, podešavanja, css, moduli i ostalo. Iscrtao sam nekoliko dijagrama sa klasama pa ih isprobavam i gledam šta bi najpraktičnije bilo. Okačiću sutra šta sam smislio pa da mi kažete da li se slažete ili da se menja.
6. S obzirom da je Admin deo odvojen od Public dela potpuno, može se lako krenuti sa pravljenjem prvih praktičnih Čestica koje zapravo čine CMS. Recimo News, blog. Izmena vesti,pravljenje vesti,brisanje vesti itd. Kasnije kada smislimo kako će Public sistem objekata da radi pravi se komplementarni modul koji zapravo iščitava i prikazuje te vesti na javnom delu sajta!

Mislim da je ovakav pristup dobar iz nekoliko razloga:
1. Kao na početku što rekoh, nema mešanja admin i public dela te se izbegavaju bezbednosni propusti te vrste
2. Više modula (čestice za javni deo) mogu da koriste iste podatke koje pravi jedna čestica u admin panelu samo da ih koriste i prikazuju na različit način. I obrnuto naravno.
...Ima još ali za to moram da vidim kako će javni deo da izgleda konačno.

Dopuna: 21 Nov 2012 20:40

Evo ideje što se tiče samog javnog dela:



u uglastim zagradama "i" znači da klasa proširuje interfejs (iTheme je "iTheme" interfejs na primer) dok "a" znači da proširuje apstraktnu klasu.

Isprogramirao sam veći deo, sve ja na Githubu, još se treba malo srediti doduše ali je potpuno funkcionalno sve osim što moduli još uvek ne mogu da imaju svoj CSS i JS, postavio sam dummy funkcije i to ću večeras da završim najverovatnije.

Tema sadrži svoja "polja","prostore". Meni, glavnu sliku, itd itd itd. Moduli sadrže imaju svoj sadržaj koji može da bude statički ili dinamički, to je na njima sve dok poštuju iModule interfejs i biraju koje će polje da zauzmu.

Svaka tema ima svoje Layoute, layouti zapravo drže izgled, tj CSS,DOCTYPE,HEAD,JS,HTML, ali svaki Layout mora da sadrži polja koja propisuje tema za koju je pravljen.

Tako da isti modul radi na jednoj temi ali na svim njenim layoutima.

Pravljenje layouta je u biti jednostavno jer većinu posla obavlja aLayout apstraktna klasa, primer layouta:

class Layout extends aLayout {       function __construct($parent_theme) {       parent::__construct('html4transitional',$parent_theme);       $this->load_html();       $this->load_css();    }        function load_html() {       $this->HTML = include_once(__DIR__.'/design.php');    }        function load_css() {       $cssPath = str_replace(ROOT.'/','',LAYOUT_DIR);       $this->CSS[] = $cssPath.'/style.css';    } }

primer HTML koda ovog layouta recimo:

<?php    ob_start(); ?> <div id="CENTRAL">    <div id="HEAD_IMAGE"><?=$this->space_content('head_image')?></div>    <div id="MAIN_MENU"><?=$this->space_content('main_menu')?></div>    <div id="MAIN_CONTENT"><?=$this->space_content('main_content')?></div> </div> <?php    return ob_get_clean(); ?>

Dakle on propisuje prostor a moduli se sami ubacuju u njega, recimo u #HEAD_IMAGE će se ubaciti modul koji je sebi definisao da koristi 'head_image' prostor.

Ima li nekih komentara, možda neko ima neku pametniju ideju? Smile Uslov je da ostane potpuno podesivo sve i da svaka tema zapravo predstavlja ceo jedan podsistem, ali da se za nju samu izgledi tj layouti jednostavno prave Ziveli

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Nema ljutnje ali bacio sam pogled na kod. Mene vecinom zanima ono sto je ispod haube a ne izgled.
Imam dosta zamerki i imam dosta kritika na tvoje objektno orjentisano programiranje.

Dali ti ovako zamisljas OOP u PHP kao sto sam video npr ovo u klasi?

   function print_layout() {       $this->print_doctype();       echo '<html>'."\n";       echo '<head>'."\n";       echo $this->Meta."\n";       foreach ($this->Layout->CSS as $val) {          $this->print_css_link($val);       }       echo '</head>'."\n";       echo '<body>'."\n";       echo $this->Layout->HTML;       echo '</body>'."\n";       echo '</html>';    }
Sve to sto si stavio u ovo funkciju ide u template. Iskreno imas mnogo gresaka i moj savet ti je da obrises to i da ti taj tvoj CMS krenes da radis na nekom Frameworku i veruj mi bice ti dosta kvalitetniji i pouzdaniji. Vise ljudi ce ga koristiti ako budes uradio na nekom FW... Moje misljenje a ti kako god zelis.

http://www.mycity.rs/PHP/Framework-Za-Pocetnike.html

Ko je trenutno na forumu
 

Ukupno su 863 korisnika na forumu :: 17 registrovanih, 2 sakrivenih i 844 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, _Sale, A.R.Chafee.Jr., anta, Bloody, dekan.m, djuradj, ekser222, FileFinder, GhostOfSparta480, pein, Prašinar, Primus17, procesor, SlaKoj, Srle993, tmanda323