
Sukurti savo TVS – anksčiau ar vėliau tokia mintis ar poreikis kyla beveik kiekvienam pažengusiam web-programuotojui. Kai reikia štampuoti dešimtis projektų, kurių esmė yra kažkiek panaši, o imti jau paruoštą nemokamą variantą nėra galimybių (dažnai tai būna tiesiog „ne lygis“), tada ir atsiranda mintis sukurti savo TVS. Nediskutuosiu dėl amžino klausimo „kam žmonės išradinėja dviratį“, o tiesiog papasakosiu, į ką reikėtų atkreipti dėmesį, jei jau pasiryžote šiam svarbiam žingsniui ir norite sukurti sistemą, kurią galėsite vėliau taikyti daugeliui savo projektų.
Skirkite: jums reikia TVS ar Framework‘o?
Nepakankamai patyrę web-programuotojai kartais neskiria šių dviejų sąvokų.
Turinio valdymo sistemos paskirtis išplaukia iš pavadinimo – sistema skirta tam, kad tinklalapio savininkas galėtų valdyti turinį, neturėdamas praktiškai jokių programavimo žinių. Kitaip tariant, sistema skirta daugiau klientų naudojimui, o ne paties programuotojo reikmėms. Žinomiausias turinio valdymo sistemas jau paminėjau: Joomla, Drupal, WordPress.
Framework‘as (nežinau kaip jį pavadinti lietuviškai) – tai funkcijų, klasių ir kitų struktūrų rinkinys, iš kurio susidaro web-projekto karkasas. Bekuriant dešimtis projektų, visada galima įžvelgti, kurios funkcijos ar kurie veiksmai kartojasi projektas iš projekto. Būtent juos galima iškelti į „aukštesnį lygį“ ir padaryti tą karkasą, kurio jau reikia ne klientui, kad valdytų turinį, o programuotojui, kad valdytų projektą. Vieni iš žinomiausių framework‘ų: CodeIgniter, CakePHP, Symfony, Zend Framework.
Taigi, susimąstykite, ko jums būtent reikia iš šitų dviejų.
Gerai, kuriame TVS. Nuo ko pradėti? Nuo popieriaus ir pieštuko.
Kaip ir bet kuris tinklalapis ar programa, turinio valdymo sistema turi būti pradžioje suprojektuota. Jūs turite suprasti ir nubraižyti, kas bus sistemos vartotojai, kokios bus pagrindinės sistemos funkcijos, kaip atrodys duomenų bazė ir kt. Kartais gali atrodyti, kad galvoje ir taip viskas aišku, bet jei turėsite popierinius brėžinius, jie neleis jums nukrypti nuo kurso ar pamiršti ko nors svarbaus.
Kas bus jūsų TVS naudotojai?
Iš karto nuspręskite, kam bus skirta jūsų sistema. Kokie gali būti variantai: vienas dalykas, kad sistemą naudosite tik jūs pats, ir jos pagrindu štampuosite tinklalapius pagal gaunamus užsakymus, kitas variantas – kad jūs atiduosite TVS kažkieno naudojimui, ir jos pagrindu kurs tinklalapius jau kiti žmonės. Ir dar globalesnis variantas – padaryti viešai prieinamą sistemą, kurią galės parsisiųsti ir naudoti bet kas, mokamai arba nemokamai. Nuo to vėlgi priklausys, kaip reikės programuoti.
Jeigu darote kažką „sau“, tada galima kažkiek mažiau dėmesio skirti kai kurioms smulkmenoms, stabilumo užtikrinimui, saugumo patikrinimams ir kt., o jeigu jūsų sistema eis į platų pasaulį, tada jau darbo laikas kaip minimum dvigubėja. Atsižvelkite ir į tai, kad jeigu nuspręsite daryti kažką sau, tai po to bus sunku persiorientuoti į globalų projektą, o jei padarysite iš pat pradžių universalią sistemą, tada bus lengviau ją pritaikyti savo poreikiams. Kita vertus, universalios sistemos pagaminimas užtrunka ilgiau ir reikalauja gilesnių programavimo bei web-projektų kūrimo žinių.
Viskas, kas genialu – paprasta
Vienas iš bet kurios turinio valdymo sistemos privalumų ir siekių – naudojimo paprastumas bei suprantamumas. Grubiai tariant, kad turinį valdyti galėtų ir sekretorė, kuri kompiuteryje yra mačiusi tik Wordą ir Solitaire pasjansą. Taigi, nepamirškite, kad jūsų kuriama sistema skirta iš esmės ne jums, kaip programuotojui, o klientams, kaip NE programuotojams. Kuo draugiškesnė bus aplinka, tuo geriau bus visiems.
Kitas dalykas – pačiame kode irgi reikėtų laikytis paprastumo principų. Pažvelkite kiek į ateitį ir susimąstykite, ar galėsite suprasti savo paties dabar rašomą kodą po pusmečio ar po metų. Nes jeigu planuojate su šia TVS nugyventi ilgesnį laiko tarpą, tai ją reikės modifikuoti tikrai ne kartą ir ne du.
Katalogų struktūra – svarbus dalykas
Iš karto suskirstykite visą savo sistemą į katalogus, kurie kuo aiškiau nusako, kas yra laikoma tame kataloge. Be abejo, gali būti painiavos tarp „pics“, „images“ ir „photos“, arba tarp „modules“, „includes“, „classes“ ir „libraries“, tačiau bet kuriuo atveju turi būti suprantama jums pačiam kaip sistemos kūrėjui, o ir kiti žmonės turi nesunkiai susigaudyti failų struktūroje.
Kokias bibliotekas, klases ar pagalbinius įrankius naudoti?
Čia yra irgi svarbus momentas. Jau seniai praėjo tie laikai, kai programuotojai viską daro „rankutėmis“ nuo A iki Z. Dabar tam tikroms funkcijoms atlikti yra krūva paruoštų sprendimų, tik imk ir taikyk. Pavyzdžiai būtų klasė darbui su duomenų baze, šablonų varikliukas (Smarty ar pan.) ar PEAR įvairių paskirčių klasės. Tikrai patariu naudoti bent kažką iš išorės – sutaupysite laiko. Kita vertus, nepatartina grūsti visko, kas tik įmanoma. Pasibandykite ir pasirinkite tas klases, kurios būtent jūsų TVS yra tinkamos ir patogios. Nes, kaip sakoma, kažkokio produkto naudojimas pasiteisina tik tada, kai jis sutaupo laiko, o ne naudojamas vien tam, kad būtų panaudojamas.
Lengvas dizaino pakeitimas, neprogramuojant
Vienas iš kertinių bet kurios TVS akmenų – skirtingų dizainų pritaikymas. Imant idealiausią variantą, dizaineris turi sugebėti paimti jūsų TVS ir be jūsų pagalbos „užmauti ant jos“ naują dizainą. Be abejo, tam reikės HTML žinių – bet save gerbiantys dizaineriai bent kažkiek jų turi. Tam labai praverčia tokie šablonų varikliukai, kaip mano jau minėtas Smarty – su jo pagalba galima atskirti jūsų projekto logiką nuo atvaizdavimo, ir būtent atvaizdavimą galima koreguoti atskirai be programavimo žinių. Natūralu, kad tokių „varikliukų“ yra begalė, tik reikia paieškoti.
Žinokite, kokie duomenys bus saugomi/vaizduojami jūsų sistemoje
Kitaip tariant, kokio pobūdžio bus turinys ir jo užpildymas. Nes tai gali būti straipsniai (tada sistema tampa panaši į WordPress), naujienos, nuotraukos, video failiukai, e-parduotuvės katalogas, forumas, apklausų klausimai-atsakymai, ir dar N visokių variantų. Tai turite iš anksto apsibrėžti rėmus, nes vėliau bus labai sunku nušauti daugiau nei vieną zuikį.
Turėkite kantrybės
Na ir paskutinis patarimas. Savo TVS kūrimas yra geriausias pavyzdys to programavimo dėsnio, kad pirmieji 90 procentų darbo užima 10 procentų laiko, o likęs darbas užima 90 procentų laiko. Iš pirmo žvilgsnio, gali atrodyti, kad čia nėra ką veikti – pakurti kelioliką formų, jų atvaizdavimą išorėje, šiokį tokį valdymą, ir pirmyn. Bet patikėkite, pakeliui atrandama dar uoj kiek daug nemalonių „smulkmenų“. Taigi, kantrybės tikrai prireiks.
Klausimas jums: ar esate kūrę savo turinio valdymo sistemą? O ar pavyko iki galo būtent taip, kaip planavote nuo pradžių? Ar turėjote kuo pasididžiuoti ir parodyti kitiems?






May 11, 2010 12:24 pm
Lietuviai yra pradėję kurti neblogą nemokamą TVS – ImpressPages CMS. http://www.impresspages.org , tiesa, ji dar pilnai neišbaigta, be to minusas PHP 5.3 (ne visos talpyklos palaiko):)
Dar vienas įdomus projektas yra Concrete5. http://www.concrete5.org .
Tokių TVS privalumas tas, kad nepasiklysti tarp nustatymų, kaip pvz. Joomla. Be to, iš karto matai, ką padarai ir gali pagalvoti, ar išsaugoti. Dar gi „tempti ir paleisti“ funkcija yra ypač patogi:)
O kas liečia savo TVS kūrimą, manau, nelabai verta gaišti laiką, kai gali adaptuoti nemokamas TVS kaip tinkamas, nebent nori pasižaisti mokymosi tikslais, ką aš ir darau, tačiau dar nė vienas „projektas“ nebaigtas iki galo:D
May 11, 2010 1:25 pm
O aš, manau, kad susikurti savo unikalią ir specialiems poreikiams pritaikytą yra daug geriau nei vargti su keliomis skirtingomis nemokamomis TVS, kurios dažnai atsinaujina tai pašalindamos vieną funkciją, tai kitą ir pan.
Kažkaip ir mokymosi tikslais tai gerai, ir paskui dirbti lengviau, man atrodo.
May 11, 2010 1:27 pm
Turiu savo tvs (tilsiau framework) kuriu ji dar tik 4 metus
realiai tai darbas kaip ir baigtas daba liko tik tobulinimai, per ta laika labai daug visko pasikeite. nezinau ar didziuotis ar ne bet yra daugiau nei 10 projektu ant to tvs
May 11, 2010 1:32 pm
Cia lietuviu bruozas ‘as galiu geriau’, supraskit yra protingesniu uz jus programuotoju visam pasaulyje. Jei jau vistiek ryzotes pradeti kurti savo CMS tai patarciau bent naudoti frameworka open sourcini.
May 11, 2010 1:41 pm
Jo, dėl framework naudojimo aš sutinku.
Bet reikia apdairiai pasirinkti sau tinkamą, kad paskui bėdų mažiau būtų.
May 11, 2010 1:57 pm
“Framework‘as (nežinau kaip jį pavadinti lietuviškai)”
Lietuviškai – karkasas
May 11, 2010 2:42 pm
Šiuo metu kuriu savo TVS’ą, iš esmės tai yra mano kurtas framework’as, kuriame dedami turinio moduliai, panelės, template’ai ir pan. Kurdamas įgyvendinau MVC pattern’ą, kuriam kažkodėl iškastravau C(tuo metu nemačiau didelio poreikio), o taip pat Singleton pattern’ą, kad būtų galima patogiai dirbti su klasėmis. Ko siekiu šiuo TVS’u, tai sukurti nors ir nedidelę, bet kuo kokybiškiau suprogramuotą sistemą, kurios nebūtų gėda kažkam parodyti. O dėl tų dviračių išradinėjimų, tai mano manymu kiekvienas save gerbiantis programuotojas turi būti sukūręs kažką tokio, nes galvoje tai padaryti gali kas antras, o realiai…
May 11, 2010 3:10 pm
Tadas, niekas nesako “aš galiu geriau”, tiesiog pats parašęs geriau žinosi sistemą, nei paimtą iš kažkur. Bent jau toks požiūris mano.
May 11, 2010 6:50 pm
jeigu nė viena jau sukurta sistema ir visi priedai-išplėtimai neatitinka jūsų reikalavimų gi galite pasidaryti savo priedą ir integruoti. Kam daryti tai, kas jau padaryta, patikrinta ir naudojama? nesakau, kad kai kurios tvs be klaidų, bet jei galite susikurti savo, galėsite ir kitų klaidas ištaisyti
ar čia jau ne lygis?
))
May 11, 2010 9:32 pm
Na matosi, kad straipsnio autorius toliau PHP programavimo kalbos nežiūri .) kaip dėl Ruby On Rails, Merb, Sinatra, Shoes, Django, Pylons?
May 11, 2010 10:20 pm
Pilnai pakanka joomla TVS. Pats susikuriu modulius ir jeigu reikia komponentus susitvarkau. Gal tik minusas, kaip čia buvo rašyta dėl sudėtingo valdymo vartotojui.
May 12, 2010 10:00 am
Na nezinau, as neprogrameris, o vartotojas. Kiek teko matyti tragisku lietuvisku TVS, tai metem viska nx ir naudojam wordpress. Kadangi puslapiu naudojasi daug zmoniu, tai labai patogu, nes yra daug pluginu ir daug informacijos (helpu) internete. Tup tarpu su individualia TVS, zmones kurie pries tai naudojos kita TVS reikes is naujo mokyti, o jei dar tu abieju TVS programuotojai skirtingai pasauli mate, tai kokia blongine, kuriai naujienas kelt i puslapireiks, ir pasimes visai..
May 12, 2010 3:58 pm
o joomloi blondine nepasimes?
May 14, 2010 1:19 pm
Jei reikia atiduoti svetainę paprastam žmogui, tai ImpressPages tikrai super. Klientas išmoksta naudotis per penkias minutes ir dar niekada nebuvo problemų, kad žmogus susigadintų svetainės grožį. Tas drag & drop principas tikrai pasiteisina.
Aš esu šališkas, nes esu pats prisidėjęs prie ImpressPages, bet iš praktikos žinau, kad paprastos struktūros svetainei tai idealus variantas. Ešopo ar panašaus lygio projekto kol kas nepatariu gamintis, nes nėra tam skirtų pluginų
July 19, 2010 11:42 pm
Aš irgi turiu savo TVS’ą sukūrusi. Jos pranašumas- paprastas valdymas klientui, tačiau reikalauja daugiau žinių iš programuotojo. Nemanau, kad mano TVS bus geresnė už kitų. Kūriau ją, kad turėčiau produktą, kurį galėčiau tobulinti ir va- “pakabinau” jau kelis puslapius. Vienas žmogelis net užsimanė, kad jo puslapį ant “Joomla” perdaryčiau ant savo tvs’o
. Jeigu programuotojas nori kažką kurt, tai ką jam daryt- kažin ar daugiau naudos bus iš 1000000 facebook’ų, o genialios idėjos gimsta ne kiekvienam…
February 28, 2011 8:38 pm
[...] http://www.skaitykit.lt/i-ka-atsizvelgti-kuriant-savo-turinio-valdymo-sistema.htm [...]