Многих начинающих пользователей, впервые сталкивающихся с Cotonti, привлекает простота кода этого фреймворка. Действительно, в плане юзабилити и простоты кода с Cotonti могут посоревноваться немногие фреймворки. Однако на определенном этапе у каждого пользователя возникает проблема нехватки функционала или его несоответствия требованиям веб-сайта. На самом деле в этом нет ничего негативного: Cotonti предлагает своим пользователям только самый необходимый функционал. Все дополнительные и часто "немассовые" возможности пользователь Cotonti наращивает самостоятельно. Для этого существует два способа: хак и плагин. Остановимся на каждом из них подробно.
Итак, по тем или иным причинам возможности движка вас не устраивают. Решения очевидны: исправить или дополнить. способов этому, как говорилось ранее, два: использование хака или установка плагина.
Что такое хак и в чем его преимущества и недостатки?
Хак — это непосредственное изменение программного кода, в нашем случае PHP-кода ядра фреймворка. Простой пример хака файла page.inc.php:
"PAGE_DATE" => $pag['page_date'],
добавляем
"PAGE_YEAR" => @date("Y", strtotime($pag['page_date']) + $usr['timezone'] * 3600),
, и получаем тег вывода года создания страницы.
Кстати, большинство разработчиков начинали свой путь в LDU/Seditio/Cotonti именно с хаков. Причин этому две:
- Хак создается буквально за пару минут
- Хак не требует знаний работы движка
Однако как у всех хороших вещей, у хаков есть серъезные недостатки:
- Хаки создают ощутимые неудобства при переходе на новую версию движка
- Очень часто хаки открывают бреши в системе защиты
Чем плагины лучше хаков?
Плагины лишены недостатков хаков, хотя и требуют понимания структуры движка и базового знания PHP. Что касается сроков, то при знании особенностей системы и небольшом опыте написания, плагины создаются достаточно оперативно.
В качестве примера попробуем реализовать предыдущую задачу при помощи плагина:
<?php
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=plugincode
Part=page
File=filename
Hooks=page.tags
Order=10
[END_SED_EXTPLUGIN]
==================== */
$t->assign(array(
"PAGE_YEAR" => @date("Y", strtotime($pag['page_date']) + $usr['timezone'] * 3600)
));
?>
Как видим, в нашем случае плагин фактически представляет собой хак, оформленный в соответствии с требованиями системы управления сайтом. Однако плагин, в отличие от хака, продолжит выполнять свою функцию при обновлении системы и избавит вас от утомительного переноса ваших "ручных" правок из версии в версию.
Заинтересовались? Звоните нам по телефонам +375 (29) 774-35-89 и +375 (44) 774-35-89 в Минске. Мы будем рады помочь Вам в реализации Вашего проекта.