С SMF 2 я знаком около двух лет. Еще со времен бет. Модули под эту штуку писал, шаблоны с нуля создавал, писал свою реализацию SSI, модули для интеграции форума с Joomla 1.5, модули для интеграции Joomla с форумом... С форумом SMF знаком хорошо.
Она разрабатывается для собственных проектов и в паблик скорей-всего не попадет.
Может со временем уделю день, перепишу модель, упрощу логику подгрузки компонентов, модулей и выпущу урезанную версию, которая работает только на файлах. По приколу так :D
SMF - та еще какашка. Есть у меня довольно крупный форум на этом поделии. Недавно приходилось переписывать функционал перехода к сообщениям в теме. То как это реализовано в том форуме я не иначе как "феерически" назвать не могу. SMF - это вообще веселый форум...
На данный момент их форумных движков мне наибольше Xen Foro нравится. Чистенько все, красиво. Вот еще остатки Zend-а выпилят - вообще сказка будет. Также понравился форум товарища dlepro_com - LogicBoard. В код не заглядывал, но внешне неплохо.
К этому всему нужно самостоятельно прийти, через опыт, а его у нашего "девелопера" мало. Код CMS это подтверждает.
Со временем придет понимание когда лучше использовать SQL, почему нельзя в конфигах хранить функции, зачем разделять функциональность, в чем прелесть ООП и для чего нужен автолоадер. Может даже с опытом поймет для чего паттерны нужны.
DLE хоть и какашка, но работает, при чем очень быстро. Здесь нужно отдать разработчикам должное.
Основная проблема DLE - это грязный код и связанные с этим дыры в плане безопасности, а также проблемы с обновлениями.
DLE Forum - это модуль форума, который использует компоненты движка DLE. Сам по себе форум унылый.
Куда лучше смотриться LogicBoard.
Попутно эту статью можно глянуть http://habrahabr.ru/blogs/sql/102785/
Там более подробно по индексам.
Не нужно. Знал бы человек толк в PR, то здесь бы такого срача небыло бы и близко ;)
Пожалуйста:
/** * Get the available pages. */ function getAvailablePages() { $pages_array = array(); $current_page = lowLoader(getParams()); $pages_list = listFiles(TEMPLATE_CMS_DATA_PATH.'pages/','.xml'); // Order by title, author, date $order_by = 'date'; $order = 'ASC'; $count = 0; foreach ($pages_list as $file) { $data = getXML(TEMPLATE_CMS_DATA_PATH.'pages/'.$file); if(isset($data->parent)) { $c_p = $data->parent; } else { $c_p = ''; } if ($c_p != '') { if($current_page == $c_p) { $parent_data = getXML(TEMPLATE_CMS_DATA_PATH.'pages/'.$c_p.'.xml'); $pages_array[$count]['title'] = $data->title; $pages_array[$count]['slug'] = $data->slug; $pages_array[$count]['parent'] = $data->parent; $pages_array[$count]['sort'] = $data->$order_by; } } $count++; } $pages = subval_sort($pages_array, 'sort', $order); if(isset($pages)) { include 'templates/frontend/AvailablePagesTemplate.php'; } }
Сначала собирается список всех файлов, а потом каждый из них считывается и парсится функцией getXML. Дальше этот весь массив сортируется и выводится в виде списка URL.
Здесь вопрос больше не в том, что в 1.5-2+ раза больше памяти надо. Если страничек немного, то это вполне еще терпимо, но когда их сотни...
От чего отвлекают? От закидывания какашками других CMS в других темах и на других сайтах? :D
Есть ведь поговорка: "Если вы живете в стеклянном доме, не бросайтесь камнями".
Какое SQL? awilum хочет изобрести свой движок базы данных. Даже имя уже есть - XMLDB :D
Мягко говоря тормознутое. Чем больше файлов - тем сильней тормоза. Если файлов больше 100-1000 начинается полный песец. Это ведь нужно сначала их всех считать, потом КАЖДЫЙ файл декодировать из XML, потом некоторые данные проверить и результаты скинуть в отдельный массив. Потребление памяти в данном случае как минимум удвоенный объем всех файлов. Процессорного времени тратится тоже много. Это ведь нужно перелопатить огромные массивы данных.
В базах данных для ускорения поиска информации используются B-Tree индексы. Я уже молчу о том, что там есть кеши запросов, кеши индексов, не нужно заниматься XML декодированием, да и написано все на С. В результате простая выборка по 200К записей производится за 0.001 - 0.1 сек в зависимости от параметра запроса. Если выборка по индексу и/или активен кеш - на порядки быстрее.
Для этого и придумали B-tree индексы ;) На порядки ускоряет поиск.
Как минимум. Потом то все аккуратно по папочкам и файлам распределить, написать автозагрузчик...
Один из моих сайтов на DLE 9.3 (главная страница):
DLE хоть и какашка, но чертовски быстрая.
Это к чему?
Вы уже более чем достаточно сказали, чтобы сложилось вполне адекватное представление о вас и о вашем поделии. Работайте над CMS пока летние каникулы.
:D
Вопросов больше не имею, как говориться. С вами и вашей CMS все предельно понятно.
Какой автор - такая и CMS. Тыкать будете в свой код. Материться там же. Вас в детстве разве не учили элементарной культуре общения?
Сходство на самом деле между Get Simple и Template CMS есть. Скорей-всего Template CMS писалась на основе Get Simple с различными изменениями. Можно хотя бы взглянуть на порядок символов в примере выше. Это ж нужно додуматься так через ж фильтровать данные.
Судя по коду вашей CMS, вас вообще ничего не интересует.
Школьник детектед. Это многое объясняет.
Много. Сейчас пишу свою. Вы бы все же ознакомились с методами фильтрации входящих данных, почитали бы о XSS, инклудах...
Совет на будущее: вместо тупой рекламы своего поделия на форумах занимайтесь самой CMS. Там работы непочатый край. В нынешнем виде CMS на уровне между УГ и Г. Если вам указывают на очевидные ошибки, то их нужно исправлять.