CMS-визитка на CodeIgniter


Просто красивая лошадь
Каждый уважающий себя PHP-программист должен хоть раз в жизни написать свою гениальную CMS. Вот и я представляю вниманию публики своё творение. Хотя моя гениальная CMS ещё впереди, а то о чём я пишу в этом посте скорее относится к жанру лёгких туториалов.

СКАЧАТЬ ЗДЕСЬ
(всего скачали раз)

Серьёзных планов по сопровождению CMS нет, да и быть не может. Поэтому пользоваться в боевых условиях можно только на свой страх и риск. А вот скачать для ознакомления и изучения — так это пожалуйста!

Инсталляция

Предполагается, что CodeIgniter у вас уже установлен и настроен.
1. Развернуть архив и залить файлы архива в папку application.
2. Создать таблицу для данных (см. create_db.sql)
3. Для работы визуального редактора нужно скачать tiny_mce и развернуть в корне сайта.
4. Не забыть изменить дизайн представления application/views/mytheme.php
5. Также не забыть поменять пароль админки. Пароль забит прямым текстом в тексте контроллера application/controllers/admin.php в 88-й строке ;)

Краткое описание файлов

Контроллеры

admin.php — контроллер админки. Прежде чем позволить вам что-то сделать, контроллер заставит авторизоваться. Поскольку сайт-визитка не предполагает большого количества пользователей и активного их администрирования, я счёл хранение паролей в БД излишним и храню их прямо в тексте контроллера. Если потребуется более гибкое решение — то придётся этот блок дорабатывать.

main.php — собственно главный контроллер, отображающий контент. Ничего радикального. Просто берём и отображаем контент.

sitemap.php — sitemap по принципу, который я уже описывал. Нужность его в CMS визитке сомнительна, но раз уж есть — пусть будет.

Модель

mmain.php — практически никаких премудростей, всё как по учебникам.

Библиотека

wd.php Для создания в файлах представления списка имеющихся статей мне потребовалась стандартная функция, которую я реализовал в библиотеке. Эта функция возвращает плоский список (<li>) содержимого контента. С развитием возможно потребуется иерархическая функция.

Представления
Даже не знаю что писать, представления — как представления.

Безопасность
Для увеличения безопасности помимо обычных приёмов (переименование папок system, application) можно переименовать контроллер admin.php. Правда для этого придётся
1. Переименовать файл.
2. Переименовать класс контроллера
3. Исправить все вызовы контроллера, это редиректы(redirect) в контроллере и ссылки (anchor) в представлениях

Кроме того, настойчиво рекомендую использовать нативные сессии PHP вместо сессий CI. Это должно увеличить безопасность админки.

По крайней мере, мне так кажется =)
Я ошибаюсь?

CMS-визитка на CodeIgniter: 10 комментариев

  1. qosys

    Кстати, я не понимаю в чем преимущества CodeIgniter — это фреймфорк, или все-таки CMS? Обзорной статьи не видел, хотя по тому как пишется каркас, нечто похожее на друпал, но попроще.

  2. madbirdy

    Давно забил на использования CodeIgniter в cms. Юзаю его для внутренних проектов статискики, сбора информаци и организации работы с клиентами.

  3. Altesack

    @ qosys:
    Это PHP-фреймворк. Детальной обзорной статьи я не писал, т.к. в изобилии имеются русскоязычные источники.
    @ madbirdy:
    А на чём пишете? Если не секрет?

  4. zeleboba

    Спасибо, посмотрю. Сейчас как раз и занимаюсь написанием своей супер гениальной ЦМС для самого же себя) Эксперементирую)

  5. Сергей

    Всем привет.
    Ребят, вопрос не в тему: а у кого получилось подключить визуальный редактор (любой) и что бы работала загрузка изображений?
    Я вот никак не допетрю, надо использовать стандартный функционал CI, а как его связать с сторонним визуальным редактором? :(

  6. altesack Автор записи

    @ Сергей:Не видел. Боюсь придётся писать самому.
    @ Nayjest: Давай :)

  7. Nayjest

    @ Сергей: Для хороших редакторов есть плагины, позволяющие инициализировать редактор через JabaScript вместо того чтобы подключать его из php

  8. Сергей

    2 Nayjest, да, все верно, я и подключал через Java. Но загрузка изображений идет не через Яву, а через сторонние функции.
    2 altesack, очень жаль :(

  9. esc0rt

    Если у кого-то url_title на русском — статью не покажет, лечится так: в файле mmain.php ищем строки …array(‘url_title’=>$i)); и заменяем на …array(‘url_title’=>urldecode($i)));

Комментарии запрещены.