Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Template CMS 2 - маленькая и быстрая CMS!

8.3K
18 января 2011 года
Awilum
25 / / 18.01.2011
Здравствуйте :) Разрешите представить систему управления сайтом Template CMS.
Над ее разработкой занимаюсь в свободное от работы время.

Template CMS - маленькая, быстрая и расширяемая CMS.
Предназначение: сателлит, персональные странички/домашние странички, сайты визитки.
Template CMS легко расширяется плагинами(на столько на сколько позволяет Plugin API), фактически она вся состоит из плагинов.
Такой себе движок который работает за счет маленьких компонентов/плагинов.
А также легко переводится на другие языки.
Дистрибутив Template CMS всего ~167кб.

Template CMS основные возможности:
- Простота установки, использования и обновления.
- Удобный интерфейс администрирования.
- Минимальные требования к хостингу (без MySQL только PHP)
- Многоязычный интерфейс администрирования.
- Ключевые слова и описание как для каждой страницы так и для всех.
- Удобный редактор страниц (WYSIWYG - What You See Is What You Get)
- Возможность задать индивидуальный шаблон для любой страницы.
- Смена тем оформления в один клик.
- Легкость разработки и интеграции новых тем оформления.
- Расширяемость системы благодаря гибкому и удобному Plugin API
- Поддержка ЧПУ

Некоторые скриншоты админки








Template CMS распространяется на условиях GNU GPL 3

Офф. сайт
Template CMS - Главная

Документация
Template CMS - Документация

Плагины
Template CMS - Плагины

Офф. форум поддержки
Template CMS

Ожидаемая обратная связь
- Советы
- Критика
- Предложения
- Слова поддержки
Страницы:
6
18 января 2011 года
George
4.1K / / 05.01.2007
Не хочу быть банальным, но для чего Вы это делаете? Опыт хороший конечно, я вон файлообменник делал, хоть их и куча. Но все же. Имхо не способен сабжевый движок конкурировать с друпалом.
8.3K
18 января 2011 года
Awilum
25 / / 18.01.2011
George
дык.. она изначально и не собирался конкурировать с такими гигантами как Joomla, Drupal...

Ниша Template CMS
Предназначение: сателлит, персональные странички/домашние странички, сайты визитки.

а конкуренты его вот http://cmsbezmysql.ru/

Template CMS выигрывает уже своих конкурентов по таким парметрам:
1. Скорость
2. Легкая локализация и переносимость
3. Легкое разработка шаблонов
4. Расширяемость!

Замечу что Template CMS еще не релиз )
6
18 января 2011 года
George
4.1K / / 05.01.2007
Ну если только без MySQL. Но и то у меня на моем дешевеньком хостинге есть и мускуль и постгрес. Поэтому я хз, сайт визитку я тоже люблю на друпале делать.
13
18 января 2011 года
RussianSpy
3.0K / / 04.07.2006
Необходимость регистрироваться на очередном быдлофоруме, чтобы скачать систему лично у меня отбило всякое желание ее смотреть. Не хочу я регистрироваться, лезть опять в почту за ссылкой на подтверждение, нет у меня желания этим заниматься и тратить свое время.

Подход подобный ущербен и убог. Хотя сама система быть может и интересна, но подобное отношение к потенциальным пользователям резко снижает их возможное количество
244
18 января 2011 года
UAS
2.0K / / 19.07.2006
Вот-вот, сам хотел только что написать. Какого хрена я должен регистрироваться? Чтобы вам учет шел или чтобы потом меня засылать на ящик всяким спамом? Да и вообще не вижу смысла в регистрации.

Но судя по исходному коду плагинов - говнецом малость попахивает:
1) В шаблонах помесь php и html, но в целом - это терпимо.
2) Примесь html и php в коде - вот это гавнецо.
Код:
if(!$admin_area) {
                    // Get real thumbs size
                    // See: http://code.google.com/intl/ru-RU/speed/page-speed/docs/filter-image-optimize.html
                    $client_image = getimagesize($images_path.'thumbs/'.$image);
                    $client_size = 'width="'.$client_image[0].'" height="'.$client_image[1].'"';
                }

                echo '<td class="screenshot">';
                echo '          <a href="'.$images_path.$image.'" rel="gallery"  class="pirobox_gall">
                            <img '
.$client_size.' '.$admin_width.' class="screenshot-image" src="'.$images_path.'thumbs/'.$image.'"  />
                        </a>'
;
                if($admin_area) {
                    htmlBr();
                    htmlButtonDelete(lang('simplegallery_delete'), 'index.php?id=pages&sub_id=simplegallery&action=delete&image='.$image);                    
                }
                echo'</td>';
Образец уныния

3) '../'.TEMPLATE_CMS_DATA_PATH
Зачем в константе держать название папок (я так полагаю). Желательно, чтобы такие константы указывали абсолютный путь до папок, чтобы было меньше путаницы и меньше лишней писанины.

4)
 
Код:
function simpleGalleryAdminHeaders() {
        echo '<style>
                .screenshot {
                    margin: 3px;
                    padding: 3px;                    
                    text-align: center;
                }
....

Ай-яй-яй. Какого фига функция содержит "Headers", а шлет вообще css-стили?

5)
 
Код:
'full'=>post('editor')

А от XSS текст зачищается? А то проверить нельзя, регистрироваться не хочется.
13
18 января 2011 года
RussianSpy
3.0K / / 04.07.2006
Нет ну смешивать HTML и РНР допустимо, но нежелательно - тяжело потом поддерживать, менять оформление и прочее.
244
18 января 2011 года
UAS
2.0K / / 19.07.2006
Не, ну в шаблонах это простительно, в принципе, пусть это и считается дурным тоном, но вполне применимо. Плохо, когда это реализуется в различных функциях, обработчиках и прочих участках кода, в которых html вообще логически быть не должен (2 и 4 пример с моего поста от какого-то плагина к системе).
444
18 января 2011 года
patison
323 / / 15.03.2007
Мдя. По-моему написание "своей cms" это "болезнь" всех начинающих и не очень веб программистов.
Я пару лет назад тоже этим "страдал". И даже получилось что-то неплохое. Однако ничего кроме какого-то опыта мне это не принесло.

И вы уж если пишите что-то своё, ну воспользуйтесь каким-нибудь фреймворком. 21 век на дворе. Столько всяких вкусностей есть. Бери не хочу.
13
18 января 2011 года
RussianSpy
3.0K / / 04.07.2006
Цитата: patison
И вы уж если пишите что-то своё, ну воспользуйтесь каким-нибудь фреймворком. 21 век на дворе. Столько всяких вкусностей есть. Бери не хочу.


Не самый хороший совет. Если писать свою систему, чтобы опыт заработать, то фреймворки противопоказаны. Если писать для себя хорошую, быструю систему - фреймворкам точно также не место. А если надо сляпать по-быстрому что-то работающее - вот они самые и пригодятся.

Лично я если и делаю сайты кому-то, то только на базе своей системы потому что:
1) Она очень быстрая - писал я ее опираясь на семилетний опыт работы с кучей разных СУБД и собственный опыт разработки веб-систем
2) Я систему знаю досконально и в случае какой-либо проблемы - источник найду очень быстро
3) В системе нет явных и глупых дыр. Никакие инъекции, XSS и прочие радости в ней не прокатят.

С другой стороны я также хорошо знаю ее недостатки и недоработки и поэтому нигде никому ее не пиарю и не впариваю.

10
18 января 2011 года
Freeman
3.2K / / 06.03.2004
Цитата: patison
По-моему написание "своей cms" это "болезнь" всех начинающих и не очень веб программистов.


* Каждый программист должен написать тетрис, файловый менеджер и операционную систему.
* Каждый веб-программист должен написать форум, CMS и браузерную игру.

444
18 января 2011 года
patison
323 / / 15.03.2007
RussianSpy:
Ну.. ваше право - согласиться или нет. Но тут можно поспорить. Чем плохо использовать framework (например CodeIgniter) для разработки своей CMS ради получения опыта? Вы получите опыт в направлении проектирования, модели MVС, и многово другово.
Для себя - ну почему-же.. Я думаю что любую систему можно оптимизировать. Плюс фреймворков в том что если грамотно спроектировать систему, она будет мега-гибкая и расширяемая. Этого можно добиться если и с нуля писать, но зачем?

Признаюсь что сам я фреймворки сейчас не юзаю. Пишу своё (использую за основу имеющийся каркас, умеющий работать с БД, smarty, и прочие мелочи, и к нему уже дописываю необходимые модули). Но всё-же считаю что фреймворки вещь полезная и нужная. Рано или поздно сяду наверное за какой-нибудь :)

А знать досконально свою систему написанную на фреймворке - не такяа уж проблема. Нужно просто больше времени что-бы понять как и что работает в системе.

Freeman:
Дада, сюда-бы я ещё добавил:
* Каждый программист под windows должен написать свою открывалку/закрывалку сидирома :))))))) Я когда в школе учился ещё, и начинал только изучать winapi , эта утилита была одной из моих первых, написанных впрок.
13
18 января 2011 года
RussianSpy
3.0K / / 04.07.2006
А никто и не говорит, что они бесполезные. Я говорю лишь о получении опыта. О каком получении опыта начинающим программистом можно говорить, если все проблемы, нюансы и велосипеды фреймворк берет на себя? Это прямой путь к быдлокодерству
8.3K
18 января 2011 года
Awilum
25 / / 18.01.2011
Спасибо, поржал))
Сегодня к вечеру заходил в тему на работе, боялся что щас попрет на ржач и все))

Думал отписывать или нет по теме....

Что тут можно сказать) Жесткач конечно. Народ меряется воображаемыми проектами, а также переходят на личности в первом же своем сообщении начиная хамить.


Разбирать конкретные меседжы думаю не стоит, скажу кратко:

UAS - открой для себя какой нибудь фремворк, может тогда поймешь кто до этого говнокодил и говнокодит дальше....


RussianSpy
Тебя никто не принуждает качать, банеров с прыгающими лозунгами "Качать" "Дай бабло $$$" не висят.

[q]
1) Она очень быстрая - писал я ее опираясь на семилетний опыт работы с кучей разных СУБД и собственный опыт разработки веб-систем
2) Я систему знаю досконально и в случае какой-либо проблемы - источник найду очень быстро
3) В системе нет явных и глупых дыр. Никакие инъекции, XSS и прочие радости в ней не прокатят.
[/q]
это про воображаемую CMS в вакууме ? какого хрена она имеет отношение к этому топику ?

Читай топик внимательно.! особено это

Ожидаемая обратная связь
- Советы
- Критика
- Предложения
- Слова поддержки
8.3K
18 января 2011 года
Awilum
25 / / 18.01.2011
Freeman
Сказал правильно +1
13
18 января 2011 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Awilum

Ожидаемая обратная связь
- Советы
- Критика
- Предложения
- Слова поддержки


Сделайте возможность скачивать без регистрации на форуме - тогда и ответим. А пока судя по коду, который ребята показали, - обычная быдлоCMS коих море в интернете.

244
18 января 2011 года
UAS
2.0K / / 19.07.2006
Цитата:

- Советы
- Критика


Т.е. я написал не критику и не советы? Я явно все указал. Ну, возможно, указание на говнокодство было для вас и обидным, но я-то уже в этом 6 лет и давно сам когда-то писал похожие проекты, так что опыт есть хороший, чтобы сразу видеть что как написано.
Без взгляда на саму CMS - сказать ничего более точно не могу. Могу сказать, что в целом все организовано (судя по модулю) более-менее человечно, т.е. это не тот сумбурный поток кода, который мне обычно приходится переделывать в сторонних заказах. Т.е., я бы, если бы вдруг дорабатывал сайт, сделанный на данной CMS, то не сильно бы матерился =)

Но применение html в php коде вне шаблонов - для меня дико. Вывод css в php-скрипте - это тоже очень плохо. Надо понимать, что программа должна быть разделена на части - это лучше позволяет управлять содержимым и поддержку с доработкой.
Позволяйте качать без регистрации - тогда можно дать взвешанные советы по самой цмс.

Цитата:
UAS - открой для себя какой нибудь фремворк, может тогда поймешь кто до этого говнокодил и говнокодит дальше....


В моей жизни повелось поработать с тремя известными популярными CMS: Joomla, WordPress и Drupal. Так что я отлично знаю, кто до этого говнокодил, т.к. по кол-ву говнокода Джумла идет впереди планеты всей.
А уж опыта переделки и доработок чужих поделок очень много, так что я многое повидал уже и есть с чем сравнить.

13
19 января 2011 года
RussianSpy
3.0K / / 04.07.2006
Цитата: UAS
по кол-ву говнокода Джумла идет впереди планеты всей.

Ну тут я бы поспорил. Есть еще такие прекрасные вещи как phpShop и phpNuke со своими клонами и форками. Вот там настолько адовый *дец, что словами не передать.

5
19 января 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: RussianSpy
Необходимость регистрироваться на очередном быдлофоруме, чтобы скачать систему лично у меня отбило всякое желание ее смотреть.

+1. Но я всетаки пересилю себя и посмотрю че там в транке SVN-а.

5
19 января 2011 года
hardcase
4.5K / / 09.08.2005
Awilum, а вам не лень каждый раз XML врукопашную сохранять?
8.3K
19 января 2011 года
Awilum
25 / / 18.01.2011
hardcase
c репозитория сомневаюсь что у вас подымется нормально. Так как не все изменения закомитил еще.

можете скачать вот RC3: Template CMS 2 RC3


Цитата:
Awilum, а вам не лень каждый раз XML врукопашную сохранять?


что вручную ? админка для чего ?

5
19 января 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Awilum
hardcase
c репозитория сомневаюсь что у вас подымется нормально.

Спасибо, но мне всеравно неначем запускать (IIS7 стоящий дома на PHP настраивать лень) - я вообще из другой когорты: ASP.NET MVC 3 с Razor-ом на работе лечу :)


Цитата: Awilum
что вручную ? админка для чего ?

Код набивать типовой. Фиг знает, я наверно к другим инструментам привык просто (сериализаторы, XML-литералы).

8.3K
19 января 2011 года
Awilum
25 / / 18.01.2011
hardcase
Template CMS 2 все данные,настройки хранит в XML файликах, естественно что она сама их создает.:cool:
244
19 января 2011 года
UAS
2.0K / / 19.07.2006
Не совсем пойму смысл данного:
1)
Код:
/**
     * Updates the file modified time to the current time
     * @param string $file The file name
     * @return boolean
     */

    function touchFile($file) {
        return touch($file);
    }


    /**
     * Determines if a file is writable
     * @param string $file The file name
     * @return boolean  
     */

    function writable($file) {
        return is_writable($file);
    }


    /**
     * Determines if a file is readable
     * @param string $file The file name
     * @return boolean
     */

    function readable($file) {
        return is_readable($file);
    }

Совет, но в целом на любителя: у вас есть файл, содержащий набор функций по работе с файлами, Filesystem.php. Я бы это выделил в класс с набором статичных методов, просто как бы такая группировка будет логична и более удобна.

2)
Также не нравится использование global практически везде. Вот, допустим, в Uri.php: template_cms/ engine/ Uri.php
 
Код:
/**
     * Find url
     * @global string $site_url site url
     * @param string $url url - Uniform Resource Locator
     * @return string
     */

    function findUrl($url) {
        global $site_url;

$site_url не объявлена в этом файле, где же мне тогда её искать? И так везде.
Тот же пример для другого файла:
 
Код:
/**
     * Get default page
     * @global string $defpage page is loaded by default
     * @param boolean $render displays the result of the function in the browser or not
     */

    function getDefaultPage($render=true) {
        global $defpage;

И т.д.
Я бы, лучше, создал бы какой-то класс, который обеспечивал бы доступ к данным, а не напрямую вот так.
У меня доступ к конфигу реализован при помощи класса-синглтона, который просто оборачивает все настройки + реализует все основные методы обработки конфига. Такой подход позволяет достичь большей расширяемости и, что самое главное, независимости участков кода.

3) template_cms папка предполагает наличие в ней шаблонов, почему же я в ней наблюдаю папки:?
 
Код:
config
engine
helpers

Не совсем логично.
Шаблон же лежит в themes. Просто у Вас двусмысленность в названиях.

4)
Код:
/**
     * Convert plain text to html
     * @param string $str
     * @return string
     */

    function toHtml($str) {
        return(html_entity_decode($str, ENT_QUOTES, 'utf-8'));
    }


    /**
     * Convert html from $_POST to plain text. Use before save data from $_POST.
     */

    function htmlPostText() {
        $_POST = array_map('toText', $_POST);
    }

Универсальнее бы было просто сделать одну функцию, которая могла бы принимать как массивы, так и строки.

5)
 
Код:
if(isGet('delete_plugin'))

Имхо, проще и нагляднее юзать сразу $_GET

Ну вот в целом советы и наблюдения пробегом по исходнику.

Из плюсов могу выделить:
1) Для работы с XML используется SimpleXML, а не самопальная обработка.
2) Документирование ко всем функциям. Такое редко встретишь, за это большой +.
8.3K
19 января 2011 года
Awilum
25 / / 18.01.2011
UAS

Цитата:

Не совсем пойму смысл данного:
1)


Да это может показаться странным, но! Это просто обертка под стандарт кода во всем проекте lowerCamelCase.
Так как стандартные функции PHP имеют разное написание и с цифрами и с пробелами(_) а иногда и в CamelCase. Каша в общем.
По этому те основные функции которые будут юзаться в проекте а особенно в плагинах приведены к нормальному стандартному виду.

Цитата:
2)
Также не нравится использование global практически везде. Вот, допустим, в Uri.php: template_cms/ engine/ Uri.php


Ну с global надо еще просмотреть везде внимательнее. До RC3 их было намного больше по всему проекту.


Цитата:
Шаблон же лежит в themes. Просто у Вас двусмысленность в названиях.


не совсем понял про какой шаблон говорите.
/themes/ - шаблон сайта
/admin/templates/ - шаблон админки

Цитата:
5)


во фреймворках есть такие плюшки, мне понравилась такая запись и я привык к ней)

post('name')

в место

$_POST['name']

244
19 января 2011 года
UAS
2.0K / / 19.07.2006
Цитата:
не совсем понял про какой шаблон говорите.
/themes/ - шаблон сайта
/admin/templates/ - шаблон админки


Эмм. Не. Я имел в виду, что папка "template_cms" содержит различные служебные функции, необходимые для работы CMS. Т.е. здесь, по сути, расположен "движок". В то время как "template" подразумевает под собой "шаблон", т.е. с первого взгляда я предполагал, что здесь лежат шаблоны для вывода, ан нет, они лежат в themes.

8.3K
22 января 2011 года
Awilum
25 / / 18.01.2011
Опубликовал Template CMS 2 - Release candidate 4
Что нового в RC4 можно прочитать тут

Так же появились два новых плагина http://templatecms.webdevart.ru/download/plugins

Yandex share button и Comments

Cкачать: Template CMS 2 - Release candidate 4
8.3K
23 января 2011 года
Awilum
25 / / 18.01.2011
Сегодня пофиксил ошибки в системе и плагинах.
Обновил все свои плагины что сейчас находятся в репозитории плагинов

Скачать:
Link1: Template CMS RC 4 + Patch
Link2: Template CMS RC 4 + Patch
13
23 января 2011 года
RussianSpy
3.0K / / 04.07.2006
Вы так и не вняли советам убрать принудительную регистрацию для скачивания.
8.3K
23 января 2011 года
Awilum
25 / / 18.01.2011
RussianSpy
мде.. видимо только вы не видите альтернативную ссылку
13
23 января 2011 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Awilum
RussianSpy
мде.. видимо только вы не видите альтернативную ссылку



а да увидел - сорри ;)

8.3K
25 января 2011 года
Awilum
25 / / 18.01.2011
А тем временем один человек делает микро-блог на Template CMS 2.0
Мне понравилась его реализация. http://blog.fenixarts.ru/ Хотя это еще незаконченный вариант. :)
714
26 января 2011 года
clgs
226 / / 29.10.2008
Почитал поржал, особенно понравилось "быстрая" - как минимум от 3-х раз медленнее моей)

P.S. Удали и напиши заново - иногда очень помогает оптимизировать)
5
26 января 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: clgs
Почитал поржал, особенно понравилось "быстрая" - как минимум от 3-х раз медленнее моей)



Как производились замеры?

714
26 января 2011 года
clgs
226 / / 29.10.2008
Цитата: hardcase
Как производились замеры?



По ссылке, указанной выше (по заверению Awilum этот сайт работает на его CMS), в правом нижнем углу есть данные (0.03 - 0.261), которые указывают на время генерации стр. (если я ошибаюсь, то сорри), так вот эти данные явно больше данных моей CMS, которую еще оптимизировать и оптимизировать.

5
26 января 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: clgs
эти данные явно больше данных моей CMS, которую еще оптимизировать и оптимизировать.

А как же отличия в аппаратном обеспечении, параллельно запущенных сайтах на веб-сервере и других службах, работающих на сервере? ;)

714
26 января 2011 года
clgs
226 / / 29.10.2008
hardcase, ну я меня дешовый хостинг 600 сайтов на IP (и не факт что на одном серваке один IP), на IP того сайта 400 сайтов (но не факт что на одном серваке один IP). Моё высказывание чисто субъективное, было б время, указал точные цифры.
5
26 января 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: clgs
Моё высказывание чисто субъективное, было б время, указал точные цифры.


Вот теперь ты рассказал на чем основаны твои "измерения", иначе фраза про "переписывание" выглядела совершенно голословно, впрочим её градус категроичности и теперь нисколько не уменьшился. :)

325
27 января 2011 года
Franky
723 / / 10.08.2005
Ааааа!!! И тут она! Я думал хватит темы на Серче
32K
27 января 2011 года
Clubberry
186 / / 19.01.2011
Не знаю, результат-сайт феникса меня завлёк и я всё же скачал, может всё таки стоящая CMS, чисто даже для портфолио. Хотя по тенденциям веб-дизайна 2011 года, эта CMS вряд ли понадобится ;)
8.3K
28 января 2011 года
Awilum
25 / / 18.01.2011
Franky
Я не создавал тему про [COLOR="DarkRed"]Template CMS 2[/COLOR] на серче!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог