MaxCMS
Upcoming SlideShare
Loading in...5
×
 

MaxCMS

on

  • 752 views

 

Statistics

Views

Total Views
752
Views on SlideShare
644
Embed Views
108

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 108

http://www.scoop.it 108

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MaxCMS MaxCMS Document Transcript

  • Profesionālās tālākizglītības programma Programmēšana 30T 481 03 Dzintars AprubisCODEIGNITER FRAMEWORK UN MAXISITE CMS INTERAKTĪVAIS INFORMĀCIJAS PORTĀLS KVALIFIKĀCIJAS DARBS Rīga 2011
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisSaturs:Ievads 3.lppProblēmas, mūsdienu stāvokļa pārskats 4.lppPrasības darbam 12.lppIzvēlēto izstrādāšanas tehnoloģiju apraksts 15.lppProjekta izstrāde 25.lppDokumentācija 34.lppNobeigums un kopējie secinājumi 35.lpp 2
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisIevads. Kvalifikācijas darba galvenais uzdevums ir atrast universāluprogrammu kompleksa risinājumu interneta mājas lapu izveideiuzņēmīgiem cilvēkiem un nelieliem uzņēmumiem. Galvenās prasības programmu kompleksam ir līdzsvars starpefektivitāti, kvalitāti un cenu, kā arī demonstrācijas mājas lapas izveidepar doto produktu, tā sniegto iespēju novērtēšanai praksē unpopularizēšanai. Svarīgs faktors ir arī jaunu programmētāju un līdzīgi domājošu,aktīvu cilvēku piesaiste projekta atbalstam un informācijas apmaiņai. Jaunizveidotajai interneta mājas lapai, jābūt interaktīvai. Dotajam programmu kompleksam, par ko tiks veidota mājas lapa,jābūt pēc iespējas universālākam, vienkāršākam un ar daudzveidīgāmpaplašināšanas iespējām. Svarīgi lai mājas lapā aprakstītajam programmu risinājumam irdaudznacionāls atbalsts un UTF-8 pilns kodējums. Vēl pie mājas lapas izveides un konkrētā programmu produktaizvēles svarīgi ir, lai dotā informācija būtu interesanta gan pilnīgamiesācējam, gan jau strādājošam programmētājam. Izvērtējot esošās programmēšanas metodes un līdzekļusnospraustā mērķa sasniegšanai tika izvēlēts CodeIgniter frameworks unuz tā bāzētās MaxSite CMS apvienojums. Dotā mājas lapa ir veidota izmantojot CodeIgniter frameworku unMaxSite CMS, kā arī tās galvenais saturs ir par šo divu lielisko produktuizmantošanas iespējām un visu, kas ap tiem saistīts. Iespējams, tā būs viena no pirmajām mājas lapām par šiem diviemproduktiem un to latviskošanu latviešu valodā. 3
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisProblēmas, mūsdienu stāvokļa pārskats. Mūsdienu ekonomiskajā situācijā arvien vairāk veidojas mikrouzņēmumi , ģimenes uzņēmumi nelielas SIA, kā arī daudzi uzsāk biznesukā individuālā darba veicēji. Šiem uzņēmīgajiem cilvēkiem arvien biežāknepieciešamas vienkāršas, kvalitatīvas mājas lapas un lēti internetarisinājumi, kas lielām IT kompānijām un programmētājiem ar stāžu navinteresanti zemās peļņas dēļ. Šeit parādās brīva biznesa niša jaunajiemprogrammētājiem, kā arī vajadzība pēc vienkārša, bet tai pašā laikāpaplašināma un kvalitatīva programmēšanas produkta un vienkāršiemprogrammēšanas rīkiem. Uz šodienu eksistē 3 pieejas internetaaplikāciju izveidei un katrai no tām ir savi plusi un mīnusi: Tīrs kods CMS FrameworkPlusi: Elastīgākais, Var iztikt bez Gatavas Funkcionālākais, programmēšanas, biblotēkas, Ātrākais darbībā, Daudz Nosaka konkrētu „Tīrākais”, paplašinājumu, pārdomātu Var rakstīt kodu Ātrs ja ir tam arhitektūru, bez nekādiem uzdevumam Programmas var ierobežojumiem paredzēts, veidot no un arhitektūras, Daudz gatavu gataviem Nav nekā lieka risinājumu, „ķieģeļiem”, kodā. Praktiski jebkurš Diezgan elastīgs, var labot. Citiem viegli saprotams kods, Laba dokumentācija.Mīnusi: Daudz jātestē, Paredzēts Elastības ziņā Jāoptimizē, konkrētiem mazāk elastīgs Darbietilpīgs, uzdevumiem, nekā tīrs kods, Ļoti labi jāzina Vismazāk Nevar iztikt bez programmēšana, paplašināms programmēšanas, Nav noteiktas nestandarta Citiem viegli arhitektūras, lietām, saprotams. Citiem gūti Visvairāk atkarīgs saprast kodu. no izstrādātājiem. 4
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis Ņemot vērā augstāk minēto tabulu, lai izveidotu profesionālu lapuun pamatu tālākām izstrādnēm, izvēle tika pieņemta par labu frameworkarhitektūrai. Pēc interneta mājaslapas http://www.phpframeworks.comstatistikas tika apskatīti pieci populārākie frameworki: 1. http://codeigniter.com/ 2. http://www.yiiframework.com/ 3. http://cakephp.org/ 4. http://framework.zend.com/ 5. http://www.symfony-project.org/ Pēc aprakstiem framework mājas lapās un citos internetaresursos par pamatu projektam tika izvēlēts ņemt CodeIgniterframework (CI)šādu īpašību dēļ: 1. Lietotājam draudzīgs, viegli apgūstams; 2. Salīdzinoši mazs pēc izmēra; 3. Labi dokumentēts (arī krievu valodā); 4. Ātrs; 5. Ar pietiekošu funkcionalitāti un viegli paplašināms. CodeIgniter ieguvis plašu atzinību par savu nelielo, kompaktoizmēru, un ātrumu, un ir kļuvis par iecienītāko daudzu izstrādātāju vidū.Tam pastāv plaša dokumentācija un liels lietotāju skaits, ar labu atbalstuto vidū. 5
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis Augstāk minētās īpašības pilnībā atbilst projekta filozofijai –vienkāršiem, efektīviem un saprotamiem interneta aplikācijurisinājumiemiem uz profesionālas labi dokumentētas viegli apgūstamasprogrammatūras bāzes. Gadījumā, ja ar laiku pietrūktu funkcionalitāte kā nākošie varētutikt izmantoti: 1. Symfony framework, kura iespējas pietiek gandrīz jebkādas sarežģītības pakāpes WEB projektu izstrādei; 2. Zend framework, kurš izstrādāts tajā pašā kompānijā kur PHP programmēšanas valoda, dziļi integrējas tajā un līdz ar to, tas kļuvis par tādu kā rūpniecisko standartu. Ņemot vērā to, ka pamata programmēšanas principi pielietojotframeworkus ir līdzīgi, tad ar laiku pāriet uz Symfony vai Zend frameworknebūtu pārāk sarežģīts process, pie nosacījuma, ka labi būs apgūtaCodeIgniter frameworka lietošana un tā darbības principi. Šī projekta mērķis tomēr ir izmantot pēc iespējas vieglākapgūstamu programmēšanas vidi. Šajā ziņā CodeIgniter frameworks irvispār atzīts līderis pasaulē, jauno programmētāju un izstrādātāju vidū. 6
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis Uz CodeIgniter frameworka bāzes ir izveidotas arī daudzas saturapārvaldības sistēmas, angliski - content management system, turpmāktekstā CMS. Satura pārvaldības sistēma (CMS) ir programmatūra, kura ļaujvienlaikus vairākiem lietotājiem dažādus teksta vai cita veidadokumentus izveidot, apstrādāt un organizēt. Visbiežāk CMS tiek saistītsar internetu. Autori var šo programmu izmantot arī bez jebkādāmprogrammēšanas valodu zināšanām un nereti tieši internetā izveidotjaunus tekstus, papildināt tos ar bildēm, video vai skaņām un publicēt.Šajā sakarā par Contentu sauc visu to informāciju, kas būs redzama. Šīssistēmas parasti sastāv no divām daļām : 1. Contenta – jeb internetā vai intranetā redzamās daļas, kas domāta parastajiem lietotājiem un kuri var pat nenojaust, ka tiek lietota CMS. 2. Vadības paneļa – kas pieejams tikai administratoram un caur kuru reģistrējoties sistēmā iespējams veikt izmaiņas contenta, jeb mājas lapas redzamajā daļā. Galvenais ieguvums no CMS ir tas, ka mājas lapas administratorsvar nebūt programmētājs. Mājas lapas administrators var būt arī pats klients, kam šī lapaveidota. Tas ir milzīgs plus par labu izvēlēties arī kādu no CMS. Šī iemesla dēļ tika apkopoti un izanalizēti tie CMS, kas izmantoCodeIgniter frameworku (dati ņemti no oficiālās CI mājaslapas, to īssapraksts netiek tulkots):EgyptCMSAn easy to use base for designers with a default auth system, databaseand more.PyroCMSLightweight, themeable and dynamic, PyroCMS is perfect for CodeIgniterdevelopers to kickstart your projects. 7
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisIonizeCMSLonize is a Content Management System base on CodeIgniter. Easy,powerful and modular, Ionize is build by webdesigners forwebdesigners.MaxSiteCMSWordPress-like blog CMS. In heavy development. Documentation is inRussian only for now.FUELCMSAn easy, flexible, empowering Content Management System for rapiddevelopment that transforms your CodeIgniter projects into clientmanageable brilliance.CODEFIGHTCMSSimple multiple website manager. Kā labāko CMS uz CodeIgniter bāzes varētu minētexpressionengine CMS no saita http://expressionengine.com , kuruizstādā tā pati komanda, kas izstrādā pašu framework. CMS ir ļoti labinostrādāts, funkcionāls un ar 100% CodeIgniter savienojamību. Tāvienīgais trūkums – tā ir pa maksu (100-300$) un tādēļ neder šimprojektam, bet varētu tikt izmantota nākotnē. Šī framework devīze ir: Commercial Product + Open Source = Perfection A SIMPLE MODEL WHERE EVERYBODY WINS! 8
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisŠajā projektā izmantotajai CMS bija izvirzīti vairāki nosacījumi: 1. Bezmaksas; 2. Iespēja izmantot vienlaicīgi gan CMS gan CI funkcionalitāti; 3. Pilns UTF-8 atbalsts un iespēja viegli izmantot dažādas valodas; 4. Mazs apjoms un liela ātrdarbība; 5. Viegla pāreja no vienas versijas uz otru; 6. Vienkārša administrācija admin panelī; 7. Paplašināšanas iespējas ar moduļiem un tēmām; 8. Plašs lietotāju un izstrādātāju loks; 9. Laba dokumentācija gan, krievu gan angļu valodās; 10.Iespēja viegli pievienot citu izstrādātāju PHP skriptus; 11.Loģiska, viegli apgūstama un saprotama arhitektūra; 12.Iespēja izveidot jebkura izskata ādiņas. Izvērtējot un notestējot vairākus populārākos CMS, izvēle krita uzMaxSite CMS, kurš praktiski vienīgais atbilda visām izvirzītajām prasībām. Otrs nemazāk nozīmīgs faktors bija tas, ka izstrādātājiem ir ļotiveiksmīgi veidots un pārdomāts saits, ar ļoti plašu informācijas klāstu:http://max-3000.com/ Šeit var izlasīt pilnu MaxSite CMS iespēju aprakstu, kaspārpublicēts no oficiālās mājas lapas autora interpretācijā: Простая установка. Следуя несложной инструкции нужно указать параметры базы данных. Дальше инсталляция пройдет автоматически. 9
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisСкорость работы. За счет продуманной архитектуры системы, MaxSite CMSработает очень быстро. По некоторым оценкам WordPress работает примерно в5-10 раз медленнее.Небольшой размер системы. В распакованном виде это примерно 5Мб. Это сучетом того, что в комплекте 84 плагина.Небольшая ресурсоемкость. В среднем MaxSite CMS потребляет (php) около 1-6Мб (см. для примера статистику потребления в подвале этого сайта). И это привсех включенных плагинах. Это даже не стоит сравнивать с WordPress, которыйобычно требует от 9 (ранних версий) до 32Мб (последних версий, а в wp-админке и все 256Мб).MaxSite CMS использует фреймворк CodeIgniter. Поэтому разработчикуавтоматически доступны богатые средства CodeIgniter: библиотеки, хелперы,API для работы с базой данных и т.д. Стоит также отметить, что CodeIgniterсчитается одним из самых быстрых и удобных фреймворков.Развитая система кэширования. Кэширование - часть системы и механизмкэширования очень простой. Поэтому у него высокая скорость и легкостьиспользования в произвольных частях кода.Гибкая система типов данных. На MaxSite CMS можно забыть про ограниченияWordPress на типы данных и страниц. Вы можете придумывать свои типыданных, свою систему навигации и т.д.MaxSite CMS не выполняет лишнего кода. При инициализации системывыполняется только «ядро» и подключаются активированные плагины. Послеэтого управление передается шаблону. Поэтому система будет выполнять ровнотот код, который вы ей укажете. Это принципиально отличается от WordPress, вкотором выполняется весь код, получаются все данные, а уже потом уразработчика есть возможность что-то с ним делать. С MaxSite CMS у васполный контроль.Шаблоны для MaxSite CMS не сложнее вордпрессовских. Последние версиишаблона default позволяют другим шаблонам использовать егофункциональность для вывода разных типов данных. Таким образом, созданиешаблона для MaxSite CMS по сути сводится к обычной верстке.SEO-friendly. В MaxSite CMS можно указывать title, keywords, descriptions длякаждой страницы. Можно указать дефолтные значения, а также различныекомбинации. Есть возможность указывания canonical, адреса rss, а такжезапретить использование «лишних» адресов (исключение дублированияконтента). Поддерживаются noindex и nofollow для ссылок. Есть плагины дляперелинковки (автоматической по заголовкам) и внутренними ссылками.Мета-данные страниц имеют структуру ini-файла. За счет этого добавитьметаполе (дополнительную информацию к странице) можно вообще безпрограммирования.Опции, настройки также могут быть выполнены в виде ini-файла. Этозначительно упрощает их добавление/редактирование.Система разрешений авторов работает по принципу групп. Вы можете создаватьразные группы и отмечать нужные для них действия.Система комментирования позволяет оставлять комментарии анонимам, атакже т.н. комюзерам - зарегистрированным. Причем регистрация происходитавтоматически в момент комментирования. Данные комюзеров хранятся вотдельной базе и позволяют на её основе выполнять любые манипуляции.Главный плюс такого деления в том, что у комюзеров нет доступа в админ-панель. 10
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis Полная поддержка виджетов. В MaxSite CMS создать виджет очень просто за счет продуманного API. В отличие от WordPressа, который позволяет устанвливать только один виджет для одного плагина, в MaxSite CMS любой виджет может использоваться сколько угодно раз. MaxSite CMS расширяется за счет плагинов. В отличие от бардака WordPress, в MaxSite CMS используется строгое именование и за счет вспомогательных функций плагины получаются небольшими. Для примера, плагин антиспама, который имеет свою страницу настроек имеет размер всего 13кб. Плагины в которых только виджеты - еще меньше - 2-5Кб. Шаблоны для админ-панели очень просты. Например дефолтный шаблон - это 9Кб. В шаблоне используется нормальный html и css, в которых разберется даже школьник. Поэтому, если потребуется сделать свой «фирменный» стиль админки, проблем не будет. Функциональность админ-панели определяется точно такими же плагинами. Разница только в том, что эти плагины прописаны в коде и автоматически активируются при входе в админ-панель. Таким образом любой плагин может добавить себя в админ-панель. При этом все они используют единый несложный API. В админ-панели существует возможность настраивать шаблон. В отличие от WordPress, где данная возможность реализуется очень сложно, в MaxSite CMS для этого достаточно разместить в каталоге шаблона один файл options.ini. Таким образом шаблон можно сделать полностью настраиваемым. Для создания плагинов в комплекте поставки присутствуют файлы template-... для разных вариантов: только виджет, просто плагин, плагин с настройкой в админ-панели, полный вариант. На данный момент в комплекте следующие плагины: Блокировка по IP, Антиспам, BBCode, Календарь, Капча антиспам, Облако рубрик, Вывод рубрик, Кнопки для комментирования, Счетчик переходов по ссылке, Виджет событий, Виджет Избранное, Последние комментарии, Последние записи, LightBox с галереей (картинки загружаются и автоматически подготавливаются для галереи, код галереи генерируется автоматически), Виджет для ссылок, Виджет для формы логина, Самое комментируемое, Самое читаемое, Пагинация (листание страниц), Плагин перелинковки страниц, Преобразование PRE в список OL, Псевдокод, Случайные страницы, Цитаты или случайный текст, Рейтинг страниц в виде звездочек, Форма поиска, Карта сайта (архив), Смайлики, Облако меток, Текстовый блок (html/php), Twitter (rss-агрегатор) и другие. Плагины постоянно добавляются, поэтому их количество будет только увеличиваться. В комплекте поставки входят magpierss и jquery (+UI). Бесплатность и открытость. Лицензия GNU GENERAL PUBLIC LICENSE - 2.Kā papildus var minēt to, ka: 1. iespējams izmantot standarta CI funkcionalitāti, 2. lapās ievietot iepriekš sagatavotu HTML kodu, 3. lapās ievietot iepriekš sagatavotu PHP kodu. 11
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisPrasības darbam. Pirms instalācijas ieteicams nokopēt un uzstādīt Notepad++ nosaita http://notepad-plus-plus.org/. Šo teksta redaktoru ieteicams lietot,jo viss kodējums ir UTF-8. Lai izveidotu projekta mājas lapu, izveidojiet Linux serveri(ieteicams debian) no saita http://www.debian.org/.Uzstādiet Apache web serveri un failā httpd.conf atļaujiet :LoadModule rewrite_module modules/mod_rewrite.so.Uzstādiet MySQL ar UTF8 un MyISAM.Uzstādiet PHP ar bibliotēku mbstring.CodeIgniter frameworks ir jau iekļauts MaxSite CMS instalācijā. 12
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis Līdz ar to sagatavošanās darbi ir veikti un varat pāriet pie MaxSiteCMS instalācijas, nokopējot tā pēdējo versiju no saita:http://max-3000.com.Atarhivējiet nokopēto failu un visas mapes pārkopējiet uz serveri. Tālākveiciet nepieciešamās izmaiņas un configurāciju:atvērt application/config/database.php-distruzstādīt db pieejas parametruspriekš cache uzstādīt$db[default][cache_on] = TRUE;$db[default][cachedir] = "/application/cache/db";pārsaukt par database.php.atvērt application/maxsite/mso_config.php-distrierakstīt frāzi šifrēšanai ja to izmaina paroles nav derīgaspārsaukt mso_config.phpuzstādīt/application/cache//application/cache/db/application/cache/html/application/cache/rsstiesības 777uzstādīt/sitemap.xml tiesības 666 (izmanto google indeksācijai) 13
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubisuzstādīt/uploads//uploads/_mso_float/uploads/_mso_i/uploads/minitiesības 777failā robots.txt-distrierakstīt Host: site.comsaglabāt kā robots.txtpārsaukt /.htaccess-distr par .htaccesspievienot failā .htaccess pēc «RewriteEngine on»:RewriteCond %{HTTP_HOST} ^www.site.comRewriteRule ^(.*)$ http://site.com/$1 [R=permanent,L]palaizt http://jūsusaits/ un izpildām prasītoatvērt /application/maxsite/mso_config.phpizmainīt$mso_install = true; 14
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisIzvēlēto izstrādāšanas tehnoloģiju apraksts. 1. No sākuma apskatīsim CodeIgniter struktūru: (šī ir mājas direktorija piemēram WWW) /System (paša framework sistēmas faili) /Application ( visa Jūsu izstrāde jāveic šeit!!!) /Config /Controllers /Models /Views /Helpers / ... /User_guide (šo mapi var dzēst ārā, tie ir help faili) index.php (pats galvenais fails) 2. Konfigurācija: Visa konfigurācija ir mapē /application/config/ Config.php base_url (norāda saita adresi) Routes.php default_controller (norāda,kurš kontrolieris atveras) Database.php hostname, username, password, database (db parametri) 15
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis3. Controllers: Katra kontroliera klasē rakstītā metode ir pieejama kā www lapa, bet viss teksts, ko metode izdrukā, tiek nogādāts pārlūkprogrammai: kontrolieris.php class Kontrolieris extends Controller { function laiks() { $data["laiks"]=mktime(); $this->load->view("skats",$data); } }4. Views: Lai kontrolierī nebūtu jāizmanto “echo”, izvades līmeņa sagatavošanai lieto skatus. Ielādējot skatu, kontrolieris padod līdzi masīvu $data ar parādāmajiem datiem. Skati satur daudz HTML un mazliet PHP, kas lasa informāciju no $data un iekļauj, kur nepieciešams. skats.php <html> <head></head> <body> <div id="time"> <?php echo $time ?> </body></html> 16
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis 5. Skata izsaukšana kontrolierī: $data["laiks"]=mktime(); $this->load->view("skats",$data); 6. Adrešu uzbūve: http://www.codeigniter.lv/{klase}/{funkcija}/{parametri} 7. Models: Models ir CodeIgniter papildus slānis. 8. Helpers: Helper ir dažādu veidu palīdzētāji, kas atvieglo koda rakstīšanu.Tāds ir īss pārskats par CodeIgniter darbību.Atšķirība starp CI 1.x versiju un 2.x versiju:VERSION 1.7.2CONTROLLERSclass Contact extends Controller {function Contact(){parent::Controller();}} 17
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisMODELSclass Contact_model extends Model {function Contact_model(){parent::Model();}}VERSION 2.0.0CONTROLLERSclass Contact extendsCI_Controller {function__construct(){parent::__construct();}}Modelsclass Contact_model extendsCI_Model {function__construct(){parent::__contruct();}} 18
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisVēl jāpiemin šādas mapes:/Application /errors/ – kļūdu paziņojumi;/Application /libraries/ – bibliotēkas, kas attiecas tikai priekš jūsuaplikācijas;/Application /hooks/ – huki atļauj izmainīt paša CI kodola darbību. CodeIgnitor frameworks būvēts pēc MVC arhitektūras. MVC(Model-View-Controller) sadala sistēmu trijās daļas - datu ievade, datuapstrāde, datu attēlojums, kur katra daļa risina atsevišķu uzdevumu.Loģiskā komponente Modelis iekapsulē datu kodolu un pamatafunkcionalitāti, kas nav atkarīga no attēlojuma. Loģiskā komponenteSkats ir atbildīga par Modeļa datu attēlošanu, atbilstoši lietotājadefinētai datu prezentācijas formai. Loģiskā komponente Kontrollerissaņem un nolemj kā apstrādāt ziņojumus, kurus saņem no lietotāja, untranslē signālus komandās, kas tiek sūtītas Modelim vai Skatam. 19
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisCodeIgniter frameworkā Model-View-Controller ir realizēts šādi: 20
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisMaxSite CMS uzbūves shēmas: 21
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis 22
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisMaxSite CMS darbības princips (autora raksts):1. Входящий адрес принимает CodeIgniter. Он сам определяет что с ним делать. Нонастраиваем его мы так, чтобы все запросы автоматом передавались нашемуконтролеру.2. Наш контролер, благодаря CodeIgniter, сразу вполняет функции типа. Например еслив адресе указывается «archive», значит будет выполняться функция «archive» (с такимже названием). При этом у нас в конструкторе сразу подключается библиотекаосновных функций CMS, а также считываются основные настройки. (Пока они сделаныв виде файла, но должны храниться в БД.) Здесь же происходит интересная вещь: еслиуказывается несуществующая функция (тип), то стандартно CodeIgniter выдаетсообщение об ошибке (404). Нас это не устраивает, поэтому я немного изменилCodeIgniter и теперь управление передается не на страницу ошибки, а на функциюконтролера page_404(). И если этой функции нет, то уже на стандартную 404-страницу.Таким образом мы можем подключить свой обработчик несуществующих типов.Но это еще не все. Если нам нужно подключить свой тип страницы, то не обязательнопереписывать контролер. Вместо этого контролер сам проверяет существование php-файла с именем входящего типа. И если есть, то подключаем как обычно черезrequire(). Если же нет, то передаем управление на главную страницу (функция home()).Таким образом, если возникнет необходимость расширить типы данных, то делаетсяэто очень просто: создается php-файл с именем типа и в нем несколько строк, гдеуказывается тип и вьвер - все данные автоматом передадутся по цепочке в файлшаблона.3. В контролере заполняется специальная структура-массив, где указывается типстраницы. Так же здесь передается входящий url и его сегменты. В общем этаинформация нам нужна для того, чтобы в самом шаблоне можно было бы сразуполучить файл типа страницы.4. После контролера управление передается на вьювер (view). Поскольку у нас уже естьсвоя структура с нужными для шаблона данными, то мы используем один-единственный вьювер. В нем мы передаем наши переменные и смотрим текущийшаблон. Шаблон указывается в конфигурации и совпадает с каталогом. По-умолчаниюиспользуется шаблон «default».Правда здесь стоит сделать отдельное замечание. Поскольку мы сразу жепредполагаем, что у нас будет использваться RSS, то мы будем анализироватьвходящий адрес на наличие «feed» в конце. И если таково имеется, то управлениебудем передавать на другой вьювер - «feed».5. В наш шаблон всегда передается в файл index.php. Всегда. В нем выполняетсяселектор типа страницы (тот который мы получили в начале). Выглядит это так:if ( is_type(archive) ) require(archive.php); 23
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubiselseif ( is_type(author) ) require(author.php); elseif ( is_type(category) ) require(category.php); elseif ( is_type(home) ) require(home.php); elseif ( is_type(link) ) require(link.php); elseif ( is_type(page) ) require(page.php); elseif ( is_type(page_404) ) require(page_404.php); elseif ( is_type(search) ) require(search.php); elseif ( is_type(tag) ) require(tag.php); else require(page_404.php);В зависимости от типа мы подключаем нужные нам файлы .6. Уже в этом подключаемом файле мы и будем выполнять запросы к БД (точнее этобудет набор готовых функций), заполнять начальные сведения для header страницы ипосле этого выполняем нужный нам вывод (типа TheLoop).Вот пример home.php:<?php# подготовка данных$MSO->title = Главная страница сайта;$MSO->keywords = Ключевики;$MSO->description = Описание сайта для этой страницы;# получение данных ...# начало вывода# подключается header и начало html-дизайнаrequire(main-start.php);?>Home - все что угодно - сам вывод данных<?php# завершение html, footer и т.п.require(main-end.php); ?> 24
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisProjekta izstrāde.Projekta izstrāde sastāv no vairākām daļām: 1. Uzstādīt un nokonfigurēt MaxSite CMS (To jūs jau izdarījāt). 2. Lai samazinātu SQL-pieprasījumus, ieslēgt CodeIgniter kešošanu. Lai to izdarītu failā database.php ierakstam: $db[default][cache_on] = TRUE; $db[default][cachedir] = "system/cache/db";. 3. Šablona izveide. (Ja gribam, ņemam kādu no gatavajiem). Izveidojam katalogu /templates/mini/. Tajā izveidojam failus (vai varam pārkopēt no /default mapes): info.php – informācija par šablonu index.php – failu tipu dispičers functions.php – sidebar funkcionalitāte footer.php - kājene header.php - galvene sidebar1.php – sidebar( 1 sānu panelis). Šos failus varēsim izmantot arī turpmākajos projektos. struct.css – šis fails būs struktūras (karkasa) dizaina apraksts. style.css – pārējais noformējums. Tiem jābūt ierakstītiem failā header.php. Saita mainīgā daļa tiks izvadīta no pašas sistēmas. Nemainīgā daļa - no main-start.php , main-end.php failiem. Šablona struktūra var būt jebkāda, vienīgais nosacījums jābūt failam - index.php. Ko izvadīt tajā – atkarīgs no jūsu vajadzībām. Tālāk jāizveido faili main-start.php un main-end.php ar vajadzīgo html kodu. Tagad ieslēdzam šablonu admin panelī un skatamies rezultātu. Pārējais darbs saistīts ar CSS stiliem un noformēšanu. 25
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisPiemēri:main-start.php#pieslēdzam headerrequire_once(getinfo(template_dir) . header.php);<div id="container"> #container <div id="headers"> <div id="headers-wrap"> #papildus priekš IE <div id="header1">...</div> <div id="header2">...</div> <div id="header3">...</div> </div><!-- div id="headers-wrap" --> </div><!-- div id="headers" --> <div id="sub-container"> #bloks saturam <div id="wrapper"> <div id="content"> #bloks tekstam <div class="content-all">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Šeit būs mainīgā daļa ko izdos sistēmaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 26
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubismain-end.php </div><!--div class="content-all"--> </div><!-- div id="content" --> </div> <!-- div id="wrapper" --> #saidbar <div id="sidebars"> <div id="sidebar1"> <div class="wrap"> <?php require(getinfo(template_dir) .sidebar-1.php); ?> </div><!-- div class=wrap --> </div><!-- div id="sidebar-1" --> </div><!-- div id="sidebars" --> </div><!-- div id="sub-container" --> <?php require(getinfo(template_dir) . footer.php); ?></div><!-- div id="container" --></body></html> 27
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis Stili: struct.css * {padding: 0; margin: 0;} html, body {margin: 0; padding: 0;} body {font: 9pt/1.3em Verdana;} #container {width: 900px; margin: 0 auto;} #header1 {background: #DDD; height: 100px;} #header2 {background: #EEE; height: 50px;} #sub-container {float: left;} #wrapper {float: left; width: 100%;} #content {margin: 0 0 0 300px;} #sidebar kreisa pusē #sidebars {float: left; width: 300px; margin-left: -100%;} vai #content {margin: 0 300px 0 0;} #sidebar labā pusē #sidebars {float: left; width: 300px; margin-left: -300px;} style.css - šo failu variet veidot pēc vajadzības.4. CodeIgniter funkciju pieslēgšana. Lai pieslēgtu Codeigniter standarta controlieri uz adresi example.lv/ci/..... failā routes.php rakstam: $route[default_controller] = "maxsite"; $route[my:any] = "welcome"; Tagad Codeigniter standarta controlieris piejams pēc adreses: example.lv/ci/..... 28
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis5. Valodu maiņa. Tulkošanai padodas visas frāzes, kas tiek rādītas ar ar funkciju t(фраза, __FILE__);. Tulkošanas fails atrodas tajā pašā katalogā /language/, kur tulkojamais: /common/language/ sistēmas failiem, /admin/language/ admin paneļa failiem, /common/language/plugins/ plugin failiem, /common/language/templates/ template failiem. Faila nosaukums sakrīt ar valodas nosaukumu: en.php - angļu lv.php - latviešu Valodu nosaka failā: mso_config.php < $MSO->language = lv; //latviešu. > Tulkojamā lv.php faila struktūra: < if (!defined(BASEPATH)) exit(No direct script access allowed); # ceļš/xxx.php $lang[фраза1] = tulkojums1; $lang[фраза2] = tulkojums2; >6. Citi paplašināšanas veidi: MaxSite CMS iespējams paplašināt arī izmantojot parastus HTML vai PHP failus, kā arī citu valodu failus. Šim nolūkam tiek izmantoti speciāli tegi, starp kuriem var ievietot savu kodu. Var arī ielikt savu kodu bet neizpildot to, tā lai parādās koda piemērs ar sintakses izgaismojumu. 29
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis7. Databāze. Databāze tiek izveidota automātiski pie sākotnējās saita instalācijas. Šajā projektā aprubis_ ar sekojošām tabulām, kuras var redzēt no SQL faila datubāzes izveidei: CREATE DATABASE IF NOT EXISTS `vdstvr2q_max` /*DEFAULT CHARACTER SET utf8 */; USE `vdstvr2q_max`; CREATE TABLE IF NOT EXISTS `mso_cat2obj` ( `cat2obj_id` bigint(20) NOT NULL AUTO_INCREMENT, `page_id` bigint(20) NOT NULL DEFAULT 0, `category_id` bigint(20) NOT NULL DEFAULT 0, `links_id` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`cat2obj_id`), KEY `category_id` (`category_id`), KEY `page_id` (`page_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `mso_category` ( `category_id` bigint(20) NOT NULL AUTO_INCREMENT, `category_id_parent` bigint(20) NOT NULL DEFAULT 0, `category_type` enum(page,links) NOT NULL DEFAULT page, `category_name` varchar(255) DEFAULT , `category_desc` longtext, `category_slug` varchar(255) DEFAULT , `category_menu_order` bigint(20) NOT NULL DEFAULT 0, PRIMARY KEY (`category_id`), KEY `category_slug` (`category_slug`), KEY `category_id_parent` (`category_id_parent`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `mso_comments` ( `comments_id` bigint(20) NOT NULL AUTO_INCREMENT, `comments_page_id` bigint(20) NOT NULL DEFAULT 0, `comments_parent_id` bigint(20) NOT NULL DEFAULT 0, `comments_users_id` bigint(20) NOT NULL DEFAULT 0, `comments_comusers_id` bigint(20) NOT NULL DEFAULT 0, `comments_author_name` varchar(255) NOT NULL, `comments_author_ip` varchar(100) NOT NULL DEFAULT , `comments_date` datetime NOT NULL DEFAULT 2008-01-01 00:00:00, `comments_content` longtext, `comments_rating` bigint(20) NOT NULL DEFAULT 0, `comments_approved` bigint(20) NOT NULL DEFAULT 0, `comments_type` varchar(50) NOT NULL DEFAULT , PRIMARY KEY (`comments_id`), KEY `comments_page_id` (`comments_page_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `mso_comusers` ( `comusers_id` bigint(20) NOT NULL AUTO_INCREMENT, `comusers_email` varchar(255) DEFAULT , `comusers_password` varchar(255) DEFAULT , `comusers_nik` varchar(255) DEFAULT , `comusers_allow_publish` enum(0,1) NOT NULL DEFAULT 0, `comusers_count_comments` bigint(20) NOT NULL DEFAULT 0, `comusers_icq` varchar(255) DEFAULT , `comusers_url` varchar(255) DEFAULT , `comusers_msn` varchar(255) DEFAULT , `comusers_jaber` varchar(255) DEFAULT , 30
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis `comusers_skype` varchar(255) DEFAULT , `comusers_date_registr` datetime NOT NULL DEFAULT 2008-01-01 00:00:00, `comusers_last_visit` datetime NOT NULL DEFAULT 2008-01-01 00:00:00, `comusers_date_birth` datetime NOT NULL DEFAULT 1970-01-01 00:00:00, `comusers_avatar_url` varchar(255) DEFAULT , `comusers_description` longtext, `comusers_ip_register` varchar(50) DEFAULT , `comusers_language` varchar(5) DEFAULT ru, `comusers_skins` varchar(255) DEFAULT , `comusers_notify` enum(0,1) NOT NULL DEFAULT 1, `comusers_admin_note` longtext, `comusers_activate_string` varchar(255) DEFAULT , `comusers_activate_key` varchar(255) DEFAULT , PRIMARY KEY (`comusers_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `mso_groups` ( `groups_id` bigint(20) NOT NULL AUTO_INCREMENT, `groups_name` varchar(255) NOT NULL DEFAULT groups, `groups_rules` longtext, PRIMARY KEY (`groups_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `mso_links` ( `links_id` bigint(20) NOT NULL AUTO_INCREMENT, `links_url` varchar(255) DEFAULT , `links_name` varchar(255) DEFAULT , `links_desc` longtext, `links_rel` varchar(255) DEFAULT , `links_target` varchar(255) DEFAULT , `links_menu_order` bigint(20) NOT NULL DEFAULT 0, `links_visible` bigint(20) NOT NULL DEFAULT 1, `links_rating` bigint(20) NOT NULL DEFAULT 0, `links_image` varchar(255) DEFAULT , `links_rss` varchar(255) DEFAULT , PRIMARY KEY (`links_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `mso_meta` ( `meta_id` bigint(20) NOT NULL AUTO_INCREMENT, `meta_key` varchar(255) DEFAULT NULL, `meta_id_obj` bigint(20) NOT NULL DEFAULT 0, `meta_table` varchar(255) DEFAULT , `meta_value` longtext, `meta_desc` longtext, `meta_menu_order` bigint(20) NOT NULL DEFAULT 0, `meta_slug` varchar(255) DEFAULT NULL, PRIMARY KEY (`meta_id`), KEY `meta_key` (`meta_key`), KEY `meta_table` (`meta_table`), KEY `meta_id_obj` (`meta_id_obj`), KEY `meta_value` (`meta_value`(256))) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `mso_options` ( `options_id` bigint(20) NOT NULL AUTO_INCREMENT, `options_key` varchar(255) NOT NULL DEFAULT , `options_value` longtext, `options_type` varchar(255) DEFAULT general, PRIMARY KEY (`options_id`), KEY `options_key` (`options_key`), 31
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis KEY `options_type` (`options_type`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `mso_page` ( `page_id` bigint(20) NOT NULL AUTO_INCREMENT, `page_type_id` bigint(20) NOT NULL DEFAULT 1, `page_id_parent` bigint(20) NOT NULL DEFAULT 0, `page_id_autor` bigint(20) NOT NULL DEFAULT 1, `page_title` varchar(255) DEFAULT no-title, `page_content` longtext, `page_content2` longtext, `page_date_publish` datetime NOT NULL DEFAULT 2008-01-01 00:00:00, `page_date_dead` datetime NOT NULL DEFAULT 0000-00-00 00:00:00, `page_last_modified` datetime NOT NULL DEFAULT 2008-01-01 00:00:00, `page_status` enum(publish,draft,private) NOT NULL DEFAULT publish, `page_menu_order` bigint(20) NOT NULL DEFAULT 0, `page_slug` varchar(255) DEFAULT , `page_view_count` bigint(20) NOT NULL DEFAULT 0, `page_rating` bigint(20) NOT NULL DEFAULT 0, `page_rating_count` bigint(20) NOT NULL DEFAULT 0, `page_password` varchar(255) DEFAULT , `page_comment_allow` bigint(20) NOT NULL DEFAULT 1, `page_ping_allow` bigint(20) NOT NULL DEFAULT 1, `page_feed_allow` bigint(20) NOT NULL DEFAULT 1, `page_min_user_level` bigint(20) NOT NULL DEFAULT 0, `page_allow_group` bigint(20) NOT NULL DEFAULT 0, `page_lang` varchar(255) DEFAULT , PRIMARY KEY (`page_id`), KEY `page_type_id` (`page_type_id`), KEY `page_date_publish` (`page_date_publish`), KEY `page_menu_order` (`page_menu_order`), KEY `page_rating` (`page_rating`), KEY `page_view_count` (`page_view_count`), KEY `page_id_autor` (`page_id_autor`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `mso_page_type` ( `page_type_id` bigint(20) NOT NULL AUTO_INCREMENT, `page_type_name` varchar(255) NOT NULL, `page_type_desc` longtext, PRIMARY KEY (`page_type_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `mso_sp_answers` ( `a_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `a_qid` int(10) unsigned NOT NULL DEFAULT 0, `a_answer` varchar(200) NOT NULL, `a_votes` int(11) NOT NULL DEFAULT 0, `a_order` tinyint(4) NOT NULL DEFAULT 0, PRIMARY KEY (`a_id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE IF NOT EXISTS `mso_sp_logs` ( `l_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `l_qid` int(10) unsigned NOT NULL DEFAULT 0, `l_aid` int(10) unsigned NOT NULL DEFAULT 0, `l_ip` int(11) NOT NULL, `l_host` varchar(64) NOT NULL, `l_timestamp` int(11) NOT NULL DEFAULT 0, `l_user` varchar(64) NOT NULL DEFAULT 0, `l_userid` int(10) NOT NULL DEFAULT 0, 32
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars Aprubis PRIMARY KEY (`l_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `mso_sp_questions` ( `q_id` int(10) unsigned NOT NULL AUTO_INCREMENT, `q_question` varchar(200) NOT NULL, `q_timestamp` int(10) NOT NULL, `q_totalvotes` int(11) NOT NULL DEFAULT 0, `q_active` tinyint(4) NOT NULL DEFAULT 1, `q_expiry` int(10) NOT NULL DEFAULT 0, `q_multiple` tinyint(4) NOT NULL DEFAULT 0, `q_totalvoters` int(11) NOT NULL DEFAULT 0, `q_protection` tinyint(4) NOT NULL DEFAULT 1, PRIMARY KEY (`q_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `mso_users` ( `users_id` bigint(20) NOT NULL AUTO_INCREMENT, `users_login` varchar(255) DEFAULT , `users_password` varchar(255) DEFAULT , `users_levels_id` bigint(20) NOT NULL DEFAULT 1, `users_groups_id` bigint(20) NOT NULL DEFAULT 2, `users_first_name` varchar(255) DEFAULT , `users_last_name` varchar(255) DEFAULT , `users_nik` varchar(255) DEFAULT , `users_count_comments` bigint(20) NOT NULL DEFAULT 0, `users_icq` varchar(255) DEFAULT , `users_email` varchar(255) DEFAULT , `users_url` varchar(255) DEFAULT , `users_msn` varchar(255) DEFAULT , `users_jaber` varchar(255) DEFAULT , `users_skype` varchar(255) DEFAULT , `users_date_registr` datetime NOT NULL DEFAULT 2008-01-01 00:00:00, `users_date_birth` datetime NOT NULL DEFAULT 1970-01-01 00:00:00, `users_last_visit` datetime NOT NULL DEFAULT 2008-01-01 00:00:00, `users_avatar_url` varchar(255) DEFAULT , `users_description` longtext, `users_ip_register` varchar(50) DEFAULT , `users_show_smiles` enum(0,1) NOT NULL DEFAULT 1, `users_show_wis_editor` enum(0,1) NOT NULL DEFAULT 1, `users_time_zone` bigint(20) NOT NULL DEFAULT 7200, `users_language` varchar(5) DEFAULT ru, `users_skins` varchar(255) DEFAULT , `users_notify` enum(0,1) NOT NULL DEFAULT 0, `users_admin_note` longtext, `users_activate_string` varchar(255) DEFAULT , `users_activate_key` varchar(255) DEFAULT , `users_rules` longtext, PRIMARY KEY (`users_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;Datubāzi iespējams viegli pārnest ar šāda faila palīdzību no viena serverauz otru, ko arī izdarīju ar programmas HeidiSQL palīdzību. Atlika tikaipārkopēt www mapi un saits tika veiksmīgi iedarbināts uz cita servera. 33
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisDokumentācijaPieejas dati glabājas 2 failos:/application/config/config.php $config[encryption_key] = encryption key;/application/config/database.php $db[default][hostname] = localhost; $db[default][username] = dzintars; $db[default][password] = kasalots; $db[default][database] = aprubis_;Saita admin paneļa pieeja: username: nikita (admin tiesības). password: webskola,kas glabājas datu bāzē. 34
  • CodeIgniter framework un MaxSite CMS interaktīvais informācijas portāls. Izstrādātājs: Dzintars AprubisNobeigums un kopējie secinājumi. MaxiSite CMS uz CodeIgniter bāzes manuprāt ir viens novislabākajiem risinājumiem jauniesācējam programmistam, lai pilnvērtīgivarētu sākt izstrādāt vienkāršus, profesionāla līmeņa saitus ar saprotamuuzbūvi, kas balstīta uz Model-View-Controller arhitektūras. Projekta spēks slēpjas tur, ka var izmantot gan CodeIgniterprogrammēšanas iespējas, gan HTML, PHP, gan vienkārši lietot CMSiespējas, tādējādi kombinējot dažādus programmēšanas veidus unelastīgi pielāgojoties klienta prasībām. Pats grūtākais ir izprast MaxiSite CMS un CodeIgniter darbību unkonfigurācijas failus – tam vajadzīgs diezgan ilgs laiks. Šādai sistēmai ir liels potenciāls un tā strauji turpina attīstīties. Šobrīd esmu tikai ceļa sākumā, bet ceru, ka diezgan ātri gūšu labuspanākumus, jo šeit redzu sava biznesa iespējas. 35