Думаю, что пора выкладывать свой велосипед на всеобщее обозрение и критику. http://dscms.ru/downloads.html Предлагаю вначале ознакомиться с мануалом прежде чем переходить к просмотру работы движка. Это даст примерное представление об основных идеях и функциональности движка. Основные характеристики: - Простая работа со страницами + поддержка ЧПУ - Работа с MySQL/PostgreSQL - Поддержка многоязыкового контента встроена в ядро - Удобная работа с базой данных - ну и другое... Движок НЕ ПРЕДНАЗНАЧЕН для работы из-под директории. После установки установить права 777 для директорий и файлов: /system/backup /system/cache /system/logs /system/config.ini Хотелось бы услышать идеи по тому, чего не хватает и что можно было бы сделать удобнее.
да, vasa_c прав код колбасит в разны стороны... где-то табуляции, где-то пара пробелов %)) хаотические переводы строк т.е. колв-во строк между функциями или операторами... в общем косогласие словить можно я принял почти вот такой http://framework.zend.com/manual/ru/cod ... tting.html стандарт кодирования, но с некоторыми отклонениями работу не из-под корневой директории надо обязательно делать.
сделано из-за того, что многие ссылки используют абсолютные пути, начинающиеся от корня сайта - / если движок положить не в корень, то ссылки будут некорректными. а так - да, будет работать Исправил проблемы с отступами в коде. Добавил поддержку TinyMCE в админке. http://dscms.ru/downloads/20110117.rar Планирую поработать над кэширующим механизмом, бэкапом базы данных, поддержкой больших типов. Также хочу сделать большинство ошибок в виде exception-ов, которые будут отлавливаться системой в виде 500 ошибки, т.е. не показываются пользователю. Думаю над переделкой инсталла - чтобы можно было развернуть сайт сразу из бэкапа базы, и задать пароль для администратора; добавить проверку необходимых прав записи на директории. Не очень нравится реализация механизма перевода, когда для каждого модуля нужно вручную подгружать файл перевода - может лучше сделать общую и по-модульную базу перевода? что-то типа "не нашёл в по-модульном, ищи в общем переводе". мануал хоть читабельный? какие-нибудь замечания? может что добавить?
двоечник) я ж говорил подсветку кода в мане сделать шаблон крутой, хорошо выглядит. и это... надо бы дать доступ в массы, а то и потестить внутренность не выйдет, пока не установишь.
Gromo честно попытался поставить куча ошибок во время установки и после, проверяй права на все файлы время установки пока не сделал rewrite rule для nginx выпадала ошибка Undefined index: route сейчас PHP: [17.01.2011 20:37:03] E8 [Line 4]: /var/www/test.ru/system/filters/remove_route_from_globals.php Undefined index: route Tracing: File: /var/www/test.ru/index.php[19] -> File: /var/www/test.ru/system/init.php[42] -> File: /var/www/test.ru/system/filters/remove_route_from_globals.php[4] а не задана она видимо потому что я нахожусь просто на index.php include_once(/var/www/test.ru/system/functions/handler_exception.php): failed to open stream: No such file or directory в логах, захожу в папку а там exception_handler.php нашел в скрипте PHP: include_once(SYSTEM_PATH.'/functions/exception_handler.php'); include_once(SYSTEM_PATH.'/functions/handler_exception.php'); пропало только после того как я создал второй файл... еше ошибка PHP: [17.01.2011 20:40:28] E2048 [Line 119]: /var/www/test.ru/system/classes/system.php Declaration of controller_index::index() should be compatible with that of dsc_controller::index() Tracing: File: /var/www/test.ru/system/init.php[58] -> File: /var/www/test.ru/system/classes/system.php[157] -> File: /var/www/test.ru/system/classes/system.php[119] -> File: /var/www/test.ru/system/classes/system.php[119] почему нельзя явно выключить вывод ошибок на страницу? почему init не метод какого либо класса? public $title в контроллере должно быть? а зачем тогда page? с классом бд и адаптером тоже что то не понятное PHP: <?php if($query === false) { return $result; } switch($this->type){ case 'mysql': while($row = mysql_fetch_array($query)) { $result[$i] = array(); foreach($row as $key=>$value) { if(!is_numeric($key)) { $result[$i][strtolower($key)] = $value; } } $i++; } break; case 'pgsql': $rows = pg_num_rows($query); for ($i=0; $i<$rows; $i++) { $row = pg_fetch_array($query, $i, PGSQL_ASSOC); foreach($row as $key=>$value) { if(is_numeric($key)) continue; if(in_array($value, array('t', 'f'))) { $value = ($value == 't') ? 1 : 0; } $result[$i][strtolower($key)] = $value; } } break; } return $result; } а если понадобится поддержка еше 2 баз бдудешь дописывать это везде? чем не угодили phpdoc комментарии в коде? по ним ведь api документацию генерируют...
Апельсин сделал небольшую подсветку синтаксиса в мануале. вроде и так находится в публичном доступе. но вначале бета тест, критика и замечания. Padaboo ошибки поправил, версию выложил по тому же пути http://dscms.ru/downloads/20110117.rar добавил параметр DEBUG в index.php, если true - ошибки и исключения будут выводиться пользователю, если false - ошибки и исключения будут писаться в логи. Только нужно выставить права на запись для файлов логов в папке system/logs соответственно. По умолчанию - True. при подключении файла ясно видно что выполняется и подключается при инициализации системы. Также инициализацию необходимо делать в глобальной области видимости для возможности подключения модулей, не предназначенных для данной системы. Потому и не пойдёт делать в виде метода какого-либо класса. Изначально класс адаптер предназначен именно для этого - подключения форума MyBB к примеру. Но я ещё думаю над этим как сделать лучше... в смысле? page - это класс шаблонизатора, текущая страница. $title забирается системой только у запрошенного модуля - ведь из шаблона могут быть запрошены и другие модули, которые могут выставлять свой тайтл. А так какой тайтл решает система. какие есть предложения? этот момент не совсем ясен.
Достаточно добавить <base /> в <head /> и определить путь (пусть даже его укажет пользователь во время установки) http://www.w3schools.com/tags/tag_base.asp http://htmlbook.ru/html/base
Gromo а перезалить на сайт не забыл? я заново поставил, теже самые ошибки ps: пойду на виндуз c апачем попробую, я так понял на нем и для него написано
Padaboo вроде перезалил http://dscms.ru/downloads/20110117.rar Код находится в переделках, постоянно перезаливаю. Так что могут выскочить ошибки, которых до этого не было Если несложно, не мог бы дать конфиг для nginx-а ?
Padaboo начало файла init.php такое? PHP: <?php // include global functions if(!DEBUG){ include_once(SYSTEM_PATH.'/functions/error_handler.php'); include_once(SYSTEM_PATH.'/functions/exception_handler.php'); }
И это тоже. Но всё же, хороший продукт должен работать в любой среде, с mod_php5 и без него, и корректно понимать своё местоположение, относительно корня сайта