Вы не зашли.
Сама по себе идея интересная, но есть несколько нюансов:
1. Кеширование select'ов без учёта update'ов в таблицу - очень неудобный подход. Могут быть массовые накладки, к примеру, при редактировании новостей, создании комментариев и т.д.
Т.е. такой подход абсолютно оправдан для "статических" сайтов (на которых ничего не обновляется и запрещены комменты), но не для динамических.
2. Достаточно сильное кеширование есть в самом mysql (query cache), поэтому с точки зрения кол-ва SQL запросов мы получим заметную экономию, а вот с точки зрения производительности - не факт.
3. Класс mysql нужно переделывать на mysqli, есть планы на ближайшее будущее на подобный переход.
Плагин быстро потеряет актуальность.
Еще назрел вопрос )
А есть какое-то if что если у категории есть подкатегории? Одним словом, надо если у категории есть подкатегория, то к главной, добавить класс.
Это всё есть в документации.
Открываешь readme/docs/index.html, находишь там шаблон news.categories.tpl и читаешь
Нужная тебе переменная: entry.flags.hasChildren
{% if entry.flags.hasChildren %}есть подкатегории{% endif %}
А ещё можно воспользоваться функцией debugValue() - добавить в самое начало файла news.categories.tpl:
{{ debugValue(entries) }}
.. дальше всё сразу станет ясно
vip, не, народ просто медленно раскачивается
Счетчик запущен.
На багтрекере зарегистрировано всего 12 проблем, в наполнении приняло участие всего 2 (два!!) человека.
Напоминаю URL: http://code.google.com/p/ngcms/issues/list
AI, действительно.
Исправил.
AI, ошибка в документации (исправил в SVN).
Должно быть так:
{% for entry in entries %}
<!-- Если не стоит флаг `flags.active`, т.е. если эта категория - не текущая, то показываем ссылку -->
<!-- В текущей категории показываем имя категории жирным шрифтом -->
<li>
{% if (not entry.flags.active) %}
<a href="{{ entry.link }}">
{% else %}
<b>
{% endif %}
{{ entry.cat }}
{% if (entry.flags.active) %}
</a>
{% else %}
</b>
{% endif %}
<!-- Отображаем кол-во новостей в категории только в случае, если выставлен флаг `flags.counter` -->
{% if (entry.flags.counter) %}
[ {{ entry.counter }}]
{% endif %}
<!-- Если у категории есть подкатегории, то открываем новый уровень вложенности -->
{% if (entry.flags.hasChildren) %}
<ul>
{% else %}
</li>
<!-- Если после этой категории закрывается 1 или несколько уровней - выводим закрывающиеся </ul> -->
{% if isSet(entry.closeToLevel) %}
{% for i in (entry.closeToLevel+1) .. entry.level %}
</ul></li>
{% endfor %}
{% endif %}
{% endif %}
{% endfor %}
irbees2008, причину нашел.
Добавь в main.tpl подгрузку jQuery:
<script type="text/javascript" src="{admin_url}/includes/js/jquery-1.6.3.min.js"></script>
В доках в SVN 1127 косяк с:
И в чём выражается косяк?
vitaly, никак такой вариант нельзя?
Может тогда можно какими-то сверх-навороченными способами через twig?
Над этим сейчас и думаю.
А почему такая странная схема? Что "основная" категория для новости в реальности является дополнительной категорией?
Единственный разумный вариант:
1. Создать новую глобальную twig функцию, которая будет "доставать" информацию из текущей новости, в том числе и список категорий
2. Получить последний элемент этого списка (последнюю категорию) и сохранить в отдельной переменной
3. При генерации меню учитывать значение ново-созданной переменной и полагаться на него для отметки "текущей" категории
п. 1 - допиливание системы, п. 2, 3 - просто шаблон
easmik, наберись терпения, исправления делаются постепенно.
До nsm руки тоже скоро дойдут.
Но вот с фильтрацией по доп. полям надо будет отдельно и вдумчиво разбираться, там всё не так просто. Как минимум - совершенно непонятно как после этого будет выглядеть URL.
За последние дни в SVN появились следующие обновления:
1. Плагин auth_basic (базовый модуль авторизации) - возможность "проверить допустимость логина" сразу в форме регистрации (через AJAX запрос)
2. Плагин uprofile (профиль пользователя) - переведён на новый шаблонизатор TWIG, добавлена возможность "перехода" (через AJAX) из режима просмотра собственного профиля в режим его редактирования
3. Плагин xfields (доп. поля) - адаптация к обновлённому плагину uprofile
4. Плагин ublog (блог пользователя) - адаптация к обновлённому плагину uprofile, интеграция с плагином xfields (доступны те же поля что и в режиме просмотра профиля пользователя), создан собственный шаблон. Теперь на "странице пользователя" можно выводить данные о самом пользователе, включая его фотографию или данные из доп. полей (xfields)
Также по мере работ актуализируется документация по плагинам.
legenda, можно просто открыть документацию по плагину xnews и оттуда узнать, что:
Использование плагина при выводе в main.tpl
--------------------------------------------------------------------
Данные плагина можно использовать только при помощи TWIG функции callPlugin.
Формат вызова: callPlugin('xnews.show', параметры)
Функция xnews.show принимает на вход следующие параметры [детальное описание см. в админке плагина]:
. id - ID блока. Если заполнить это поле, то будет генерировать блок в соответствии
с настройками в админке плагина
. categoryMode - Из каких категорий генерируется лента новостей
0: только из списка категорий, прописанного в categories
1: только из текущей категории
2: из списка категорий из categories + из текущей категории
. categories - Список категорий для генерации ленты
список через запятую из ID категорий
. visibilityMode - Область видимости
0: везде
1: на странице категорий
2: на странице новостей
3: страница категорий + новостей
. visibilityCList - Список категорий на которых отображается блок
список через запятую из ID категорий, на которых будет отображаться блок (если visibilityMode > 0)
. mainMode - Отображение новостей с главной страницы
0: Все новости
1: Только новости с главной
2: Только новости не с главной
, pinMode - Отображение прикрепленных новостей
0: Все новости
1: Только прикрепленные новости
2: Только неприкрепленные новости
, favMode - Отображение новостей из закладок администратора
0: Все новости
1: Только новости из закладок администратора
2: Только новости, не находящиеся в закладках администратора
. count - Количество новостей для отображения
. skip - Номер (по порядку) с которого начинать показ
. maxAge - Новости на последние N дней
. order - Порядок вывода новостей
'viewed' - по кол-ву просмотров (обратный порядок)
'commented' - по кол-ву комментариев (обратный порядок)
'random' - случайный порядок
'last' - по дате публикации
. showNoNews - Выводить блок если в нём нет новостей
true - выводить
false - не выводить
. maxAge - Вывод новостей только за последние N дней
. skipCurrent - Не отображать в блоке текущую новость (внимание, данный режим не позволяет кешировать новости!)
. template [!!] - Каталог, в котором хранится необходимый шаблон (файлы entries.tpl и xnews.tpl)
где [!!] означает, что это обязательный параметр (кроме случая работы через ID плагина)
Пример вызова плагина в main.tpl:
1. Вывести блок с ID 'main'
[TWIG]{{ callPlugin('xnews.show', { 'id': 'main'}) }}[/TWIG]
2. Вывести новости из категории с ID = 15
[TWIG]{{ callPlugin('xnews.show', { 'categoryMode' : 0, 'categories' : '15', 'template' : 'xnews1'}) }}[/TWIG]
legenda, в коде самого NG вообще нет возможности удаления таблиц.
Если же была целенаправленная атака на сайт и кто-то получил доступ, то можно было бы сделать намного большее кол-во "интересных" вещей имея такой доступ.
Так что это либо какой-то странный сбой у хостера, либо всё-таки кто-то случайно удалил таблицу в phpmyadmin'е
RocketBoy, именно нововведения, а не просто корректно работающий шаблон?
Тогда только встроенные шаблоны плагинов, их я постепенно актуализирую.
legenda, само удалиться не могло.
Восстановить можно из бекапа БД.
Но, насколько я помню, у тебя основной префикс таблиц был "2z".
Проверь, может есть таблица 2z_ipban, а в коде NG где-то есть ошибка (не учитывается префикс)?
AI,
1. Сейчас в NG нельзя сделать URL вида /category1/category2/...
2. "Активной" отмечается только та категория в которой сейчас находится пользователь либо главная категория новости.
Механизм определения "активной" категории изменить можно, но для этого нужно понять алгоритм по которому это нужно делать.
5.3.18,не работает
"Не верю"
http://www.php.net/manual/en/control-st … s.goto.php - указано, что функционал появился начиная с 5.3.0
У меня на denwer'е работает под 5.3.13
Отличная идея и работоспособный плагин.
Wolverine, спасибо.
Хотя кое-что в нём надо бы переделать и улучшить
К примеру, у движка уже и так есть встроенный callback url для 2х шаговой аутентификации (которая используется для OpenID).
legenda, возникла какая-то SQL ошибка.
Включи в настройках вывод текста SQL кода для всех посетителей, тогда можно будет выяснить чей это запрос и идентифицировать место (плагин?), который надо править.
irbees2008, если есть адаптированные тобой шаблоны, то можешь уже сейчас начинать. Если нет, то давай попробуем скоординировать всех создателей шаблонов и распределить задачи.
legenda, попробуем заняться. Заводи тикеты в багтрекере на http://code.google.com/p/ngcms/issues/list, с ними будем работать в первую очередь.
easmik, скоро доберусь
diggu, да и время генерации страницы какое-то странное (0.71 сек). возможно у тебя установлены какие-то ОЧЕНЬ жрущие память плагины?
Всё движется, всё меняется.
С момента последнего релиза прошло уже более полутора лет... это много, ОЧЕНЬ много.
Да, у нас есть довольно стабильная SVN версия.
Да, мы рекоммендуем всем её ставить.
Но это вопрос психологии и восприятия - люди готовы ставить стабильные релизы и не готовы заниматься тестированием промежуточных версий.
У меня есть предложение. Предложение ко всем вам, тем, кто заинтересован в развитии NG.
Давайте мы все выделим некую толику своего времени и организуем выход новой, стабильной и более удобной версии NG.
И назовём эту версию 0.9.5
>>> Внимание, начиная с SVN 1143 минимальная версия PHP увеличена до 5.3 <<<
>>> Версия 5.3 выпущена более 2х лет назад и любой уважающий себя хостер уже обновился <<<
>>> Если вы используете Denwer и у вас не работает, то необходимо обновиться до более новой версии (датирована сентябрем 2012) <<<
План ближайшего развития прост:
01.06 - 30.06: Активный поиск ошибок с паралельной разработкой нового функционала.
Приоритет у разработки, устранение ошибок по мере наличия ресурсов.
01.07 - 31.07: Активное устранение найденных ошибок.
Приоритет у багфиксов, добавление нового функционала в крайне ограниченном объёме
01.08 - Выход 0.9.5 Release Candidate 1
10.08 - Выход 0.9.5 Release
==============================================
Что мы должны сделать за это время:
1. Доделать управление группами пользователей
2. Полностью адаптировать новый базовый шаблон и перейти на него
3. Расширить документацию, детально описать шаблоны, добавить readme и описание по всем важным плагинам
4. Устранить известные на текущий момент проблемы
5. Вычитать всю админку - проверить наличие языковых (lang) переменных для русского и английского языков, убрать "вшитые" русские фразы
==============================================
Чем вы можете помочь:
1. Активно начать искать проблемы в "Ночных сборках" или в SVN версиях.
Лучше всего - ставить на свои тестовые сайты, а кто готов - и на боевые.
2. Сообщать обо всех найденных проблемах на отдельно созданной страничке на Google Code: http://code.google.com/p/ngcms/issues/list
3. Адаптировать существующие (но устаревшие шаблоны) до текущей SVN версии
Ну что, попробуем? :)
Karatik, для анализа проблемы с тебя:
1. Название и версия плагина
2. Исходный код (аттачем в форуме) самого плагина
так будет проще
ROZARD, спасибо
Karatik, уточни что именно страдает - настройка плагинов (то что делается в "управлении плагинами") или данные, вводимые в новостях (к примеру, через редактирование новостей).
Плагин tags сам по себе точно не должен таким страдать, по k_online - надо отдельно проверять, всё возможно.
Вообще такое может произойти в ситуации, когда одновременно несколько потоков перезаписывают конфигурационные файлы.
В нормальной ситуации (если нигде нет ошибок) это означает, что одновременно 2 или более админов очень активно меняют настройки плагинов.
Vaha, надо добавить проверку в плагин uprofile.
Сейчас её нет.
Сделаю на досуге
vdsde, могу предположить, что ты залил новую версию плагина xfields (из SVN) в релизную версию движка (0.9.3).
Необходимо обновиться до последней SVN версии, тогда всё будет работать корректно.