Вы не зашли.
mittus, сделал на локали.
В следующем SVN патче выложу фикс, появится возможность в настройках задавать как макс. размер по оси X так и по оси Y отдельными переменными.
KhadeR, спасибо за найденную ошибку!
Wolverine, с багтрекером беда - у меня нет прав на удаление спама, а спама там сейчас ужасно много.
kolia, там лежит конфиг и временные файлы плагина cron.
Если точнее, то:
engine/conf/extras/cron/crontab - настройки плагина
engine/conf/extras/cron/tmp/ - ОДИН файл, имя которого соответствует unixtime'у последнего успешного запуска плагина.
Если в tmp/ лежит масса файлов, то можешь смело их удалять.
KhadeR, если создатель админки готов поиметь массу проблем с адаптацией, то что ему мешает самому положить свой дизайн админки в каталог engine/skins/ вместо существующего?
... и огрести по полной программе проблемы совместимости.
Админка довольно часто меняется в отличии от шаблонов сайта.
mittus, тебе нужен просто патч?
Wolverine, не нашел - session_start вызывается из core.php, который, в свою очередь, инклудится в captcha.php
Обновления SVN:
+ Теперь TWIG доступен везде
+ Добавлена функция pluginIsActive
+ Добавлена глобальная переменная handler, ссылка на переменную PHP $CurrentHandler
Теперь функционала достаточно для реализации всех существующих шаблонов на TWIG'е.
legenda, в
function error404(){
убрать строку:
@header('HTTP/1.1 404 Not found');
А лучше - обновить PHP
Wolverine, а никак
У меня эта страница с 200м кодом выдаётся, там такого косяка нет.
Wolverine, спасибо!
Я тоже не знал, что это лечится банальным обновлением PHP или небольшой донастройкой.
Последнее время возникла масса споров относительно использования нового шаблонизатора TWIG.
Постараюсь в этой теме собрать исчерпывающее объяснение причин и научить любого желающего пользоваться TWIG'ом.
Итак, первый вопрос - ЗАЧЕМ?
У существующего шаблонизатора есть несколько серьёзных проблем, а именно:
* работа с шаблонами как с обычным текстом (невозможно отделить переменные от элементов дизайна) - а это значит, что при каждой генерации страницы шаблонизатору приходится выполнять 200-600 символьных замен текста и около 100-200 замен текста при использовании регулярных выражений. итого - низкая производительность
* работа в интерпретирующем режиме - обработка любого шаблона каждый раз требует достаточно много времени
* каскадная обработка переменных - из-за использования функций символьной замены в шаблонизаторе возможны обработки переменных внутри переменных. например, попробуйте в текст новости добавить {mainblock} и можете увидеть (а можете и не получить) сюрприз (зависит от массы факторов)
* отсутствие условных блоков, они заменяются регулярными выражениями (работают медленно, на очень длинных массивах данных возможно катастрофическое падение производительности), возможность отработки только тех условий, которые жестко внесены в код ядра/плагина
* отсутствие циклов, для повторяющихся (даже крайне примитивных) действий требуется создавать новый шаблон
Преимущества TWIG'а:
* компилирующий режим - первая генерация шаблона (после изменения текста шаблона) занимает относительно много времени, но все последующие генерации работают в сотни раз быстрее существующего шаблонизатора
* модульный режим - медленный модуль компиляции (выполняемый редко) и очень быстрый модуль отображения (выполняется при каждом отображении шаблона)
* чёткое разделение текста и переменных в шаблоне - а это значит, что у нас не будет проблем с множественной обработкой шаблона
* наличие условных блоков и возможность создавать сложные условия. главное, чтобы нужные флаги были выставлены в коде ядра/плагине
* наличие циклов - простые повторяющиеся действия можно сделать внутри шаблона
А всёже?
Действительно, полный функционал TWIG'а подавляет - это свой собственный мир, свой язык.
Но... возьмём, к примеру, есть среди нас хоть кто-то, кто использовал более 60% возможностей современного телевизора? Сильно сомневаюсь.
И при этом телевизором пользуются многие... думаю, аналогия ясна.
Практика - отличия для дизайнера
1) Формат переменных.
Старая запись: {variableName}
Новая запись: {{ variableName }}
2) Условные блоки.
Старая запись: [if-logged] тут_текст [/if-logged]
Новая запись: {% if (user.flags.logged) %} тут_текст {% endif %}
3) Простые циклы.
Старая запись:
* основной шаблон: {entries}
* дополнительный шаблон: имя: {name}, записей: {count} <br/>
Новая запись:
{% for entry in entries %}
имя {{ entry.name }}, записей: {{ entry.count }} <br/>
{% endfor %}
4) Отображение блока в случае, если активен конкретный плагин (например, xfields):
Старая запись: [isplugin xfields]...[/isplugin]
Новая запись: {% if pluginIsActive('xfields') %}...{% endif %}
Практика - новые возможности для дизайнера
Благодаря наличию глобальных переменных, появляется возможность использовать некоторую информацию абсолютно во всех шаблонах.
Давайте придумывать примеры:
1. Выводим логин пользователя или слово "гость", если пользователь не залогинен:
Привет, {% if (user.flags.logged) %}<b>{{user.name}}</b>{% else %}гость{% endif %}!
2. Персональный блок для пользователя с логином "vasya":
{% if (user.flags.logged and (user.name == 'vasya')) %} да здравствует Вася!{% endif %}
А теперь - самое важное
Чуть-чуть модифицированный TWIG (а у нас используется именно такой вариант) позволяет полностью сохранить существующие шаблоны сайта!
Достаточно существующего функционана? Продолжаем использовать то что есть.
Хочется что-то новое? Переходим на TWIG, причём только в нужных файлах-шаблонах.
[hr]
Доступные элементы:
* Глобальные переменные:
> lang - глобальный массив с языковыми переменными
> skins_url - URL к каталогу engine/skins/
> admin_url - URL к каталогу engine/
* Функции:
> pluginIsActive(NAME) - возвращает true если данный плагин сейчас активен
Пример: {% if pluginIsActive('xfields') %}Доп. поля включены!{% endif %}
Ваши вопросы/предложения жду в этой теме...
Так... похоже большая часть посетителей попалась в довольно стандартную ловушку - решили изучить на 100% возможности TWIG'а.... и поняли, что там всё очень сложно.
На самом же деле в NG будет использоваться всего несколько "фишек", остальное - только по желанию разработчика шаблона.
Сегодня выложу небольшой FAQ по TWIG'у, чтобы развеять ваши опасения и попробовать показать чем же именно мне понравился TWIG.
Shadow, вообще отключение ЧПУ как такового в системе не предусмотрено вообще - в NG ЧПУ это не специальная надстройка, а механизм обработки URL'ов.
Но действительно, добавив в URL знак "?" можно создать видимость отключения ЧПУ
Poople, зависит от знаний и желания учиться.
Если знаком с PHP (или любым другим языком программирования), то за вечер вполне реально написать простой (или даже не очень простой) плагин.
Если не знаком,.. но хочешь изучать, то простой плагин напишешь за 2-4 вечера...
vitaly, пусть будет новый шаблонизатор, пусть вы переделаете все ядро. Я всего лишь потрачу еще одну неделю, и сделаю то, что захочу. Или при изменениях грядущих у меня ничего не выйдет?
В SVN выложен большой патч.
Он включает в себя новый шаблонизатор + переделку под twig (с точки зрения шаблона, визуально это никак не видно) нескольких разделов.
Надеюсь, что на актуализацию уйдёт не неделя, а максимум пол дня.
Серьёзных проблем при переводе на новый шаблонизатор возникнуть не должно, но советую сразу начать с чтения документации по twig - сэкономишь массу времени.
Список изменений весь уровня "точка, запятая". Я по моему и менял то, слово "Не прочитано" на конвертик. Я просмотрю, разберу и отпишусь.
Если это почти всё что менялось, то есть смысл такие изменения внести в код двига и в этом случае твой шаблон сможет полностью уложиться в папку engine/skins/, что значительно облегчит поддержку отдельной версии шаблона.
А возможно, такие "изменения" можно будет сделать просто на уровне шаблона и тогда вообще не понадобится менять PHP код движка.
Codwyn, кстати, ещё одна ложка дёгтя - админка постепенно переводится на новый шаблонизатор и будет массовое изменение файлов-шаблонов админ-панели + массовое изменение кода админки (в части работы с новым шаблонизатором).
p.s. Составь, plz, cписок необходимых тебе изменений в коде админки (engine/actions/), если там нет ничего критичного, то можно будет их интегрировать в код.
99% за то, что у тебя шаблон сохранён в формате UTF-8
Пересохрани его в Windows-1251 и вместо непонятных символов будет обычный текст.
p.s. Про отступ не знаю.
Codwyn, детально не смотрел, но судя по объёму приложенных к архиву файлов, ты вносил изменения практически в весь двиг?
Если да, то админка точно не приживётся.
Единственный, как мне кажется, жизнеспособный вариант - делать преобразование существующей админки при помощи изменения CSS, и, возможно, изменения некоторых шаблонов. Но обязательно не затрагивая кода самой админки.
Если же тебе нужно изменить что-то именно в коде, то можно обсудить, и, к примеру, сделать код, который позволит существовать обоим версиям админ панели.
p.s. Если ещё одна не сильно бредовая идея - вынести хотябы часть функционала двига в RPC и таким образом максимально отделить панель управления от ядра. Тогда да, вполне адекватно смогут жить одновременно 2 панели.
Сейчас, к сожалению, полностью через RPC работает только механизм управления ЧПУ ссылками.
p.p.s. Смотрел пока только скриншоты, выглядит красиво.
Хотя если серьёзно, то админке нужна не сколько новая раскраска, сколько актуализация элементов управления - надо добиться, чтобы наиболее используемые функции были ближе всего.
infinity237, простой HTTP сервер?
Wolverine, я тут тоже особо ничего не подскажу.
magliona, судя по всему сайты живут у разных хостеров (или у одного, но с разными режимами работы PHP) и один из них запрещает менять заголовок "Content-type" из скрипта.
Возможно, "проблемный" сайт живёт на связке Apache + CGI PHP, а "правильный" - на Apache + mod_php
В общем, обращайся к хостеру, проси решить проблему.
p.s. Заглянул в заголовки, почти угадал.
ya-cs живёт на apache2 + php (причём очень похоже, что CGI. хотя не факт)
iphones - на nginx + [возможно apache] + php (возможно в FastCGI режиме, либо в варианте apache + mod_php)
mittus, в локальной версии (которая ещё не выложена в SVN) он уже подключен, правда только к админке (для тестирования).
В SVN выложу в ближайшие 2-3 дня для тестирования всеми желающими.
Но полноценная поддержка TWIG'а во всех шаблонах требует заметного изменения кода движка (при этом обеспечение обратной совместимости займёт времени больше, чем просто подключение), поэтому будет делаться постепенно.
2. В общем сделал вывод в комментариях ( количество сообщений, дату регистрации ) как сделать чтобы вместе со счётчиком {reg} и {com} выводился заголовок Регистрация: Сообщений:, сейчас заголовки прописаны в шаблоне, а нужно встроить в сам плагин комментов, нужно это для того чтобы у гостей не отображалась графы регистрация и количество сообщений. Чтобы эти пункты были только у пользователей, а у гостей отсутствовали
Оберни в блок [is-logged] ... [/is-logged]
mittus, данные идеи можно будет реализовать при помощи шаблонизатора twig.
А именно:
* условные блоки
* генерация контента по запросу (если в шаблоне нет ссылки на плагин "X" и плагин "X" отвечает только за генерацию отображаемого контента, то совершенно нет смысла запускать данный плагин)