Вы не зашли.
Мало кто знает, что плагин xnews может выводить информацию из дополнительных полей xfields.
Предположим, что у нас есть xfields дополнительное поле (тип Группа изображений) с ID:imgtest
Тогда, чтобы вывести эти изображения в блоках плагина xnews (шаблон entries.tpl) нужно прописать такой цикл:
1. Сначало проверяем есть ли изображения в доп.поле, если нету то ничего не выводим, по сути можно прописать {% else %} и вывести изображение-заглужку.
2. Далее цикл по изображениям. Внутри можно использовать различные переменные с параметром img (как он задан внутри for'a).
3. Чтобы вывести только первое изображение можно сделать внутри цикла условие {% if (loop.first) %}XXX{% endif %} - которое будет показывать блок только при первой иттерации цикла (только первое изображение). Другие параметры loop можно посмотреть здесь:
http://twig.sensiolabs.org/doc/tags/for.html
{% if (p.xfields.imgtest.count > 0) %}
{% for img in p.xfields.imgtest.entries %}
{% if (loop.first) %}
{{img.url}}
{{img.purl}}
{{img.width}}
{{img.height}}
{{img.pwidth}}
{{img.pheight}}
{{img.name}}
{{img.origName}}
{{img.description}}
{{img.flags.hasPreview}}
{% endif %}
{% endfor %}
{% endif %}
Аналогичено этому коду можно просто выводить первый элемент из массива.
{% if (p.xfields.imgtest.count > 0) %}
{{ p.xfields.imgtest.entries[0].url }}
{{ p.xfields.imgtest.entries[0].purl }}
{% endif %}
Также, содержимое любой переменной можно посмотреть при помощи debugValue, например: {{ debugValue(p.xfields) }}
Или можно просто вывести отладочную информацию по всем доступным в данном месте переменным с их значениями при помощи {{ debugContext(0) }}
Так и пусть, без ссылок.. А ошибки уже не будет.
Ок. Я учту это в следующей версии.
А реально список неактивных объявлений на странице site.ru/engine/admin.php сделать?
Именно в статистике ( /engine/admin.php?mod=statistics ) ?
Это сделать можно, но только путем патча самой CMS, т.е. отдельно от плагина.
1. В окне выбора изображения можно разом выбрать несколько для этого можно просто зажать ctrl. В любом случае изображения нужно загружать в самый последний момент, т.к. иначе есть вероятность что кто-то что-то не заполнит.
2. Ссылки можно и вырезать, но рано или поздно имхо спамеры могут пробить и рекапчу и соответственно могут начать появляться откровенно спамерские объявления, которые не несут никакой смысловой нагрузки.
3. bb тег url просто был в стандартном шаблоне, можно убрать.
Похоже скрипт думает что send_zboard.tpl это URL.
Возможно, особенности парсинга ссылок. Нужно проверять.
И в случае этой ошибки картинки нужно добавлять снова.
Ну это естветственно. Если произошла ошибка или не заполнено какое-либо поле, значит нужно удалить изображения, т.к. существует вероятность что человек не добавит объявление, а изображения останутся на сервере.
infinity237, Спасибо! Но замена кода в news.php тоже не помогло. Все так же. Выводятся новости из всех категорий.
Значит вы сделали что-то не так как написано выше.
Пример работы данной правки:
http://air.tw1.ru/2014-02.html
В феврале было добавлено 6 новостей в 4 категории, задача вывести новости за февраль из категории Спорт (ID=3)
Вот пример http://vse25kadrov.ru/ Тут есть раздел "блог" в этом разделе есть "архив". Нужно чтобы этот архив отображал "новости" только из блога. Остальные категории не нужны. (Они даже по шаблону не вписываются при просмотре архива).
Только теперь понял, что вы хотите. Отображение страниц вида http://vse25kadrov.ru/2013-12.html - жестко зашито внутрь CMS и логика выдачи контента на этих ссылках не управляется внутри плагина, т.к. эти страницы могут быть использованы не только для архива, но и для календаря и других целей.
В вашем конкретно случае, можно внести изменения в /engine/includes/news.php, найти в case 'by.month': код:
$tableVars = news_showlist(array('DATA', 'postdate', 'BETWEEN', array(mktime(0,0,0,$month,1,$year), mktime(23,59,59,$month,date("t",mktime(0,0,0,$month,1,$year)),$year))), $paginationParams, $callingParams);
Заменить на:
$tableVars = news_showlist(array('AND', array('DATA', 'postdate', 'BETWEEN', array(mktime(0,0,0,$month,1,$year), mktime(23,59,59,$month,date("t",mktime(0,0,0,$month,1,$year)),$year))), array('DATA', 'category', '=', 666)), $paginationParams, $callingParams);
Где 666 - ID категории из которой требуется выводить данные в страницы типа http://vse25kadrov.ru/2013-12.html
Этот случай почему-то мне не помог. Поставил айди категории вместо 666 и ничего не изменилось. Хотя, я может что-то не так сделал...
Изменилось то что у вас теперь в блоке-ссылок генерируются только те ссылки, которые относятся к выбранной категории.
v01d пишет:Добавил!
Картинки нет.
Браузер FF 26.0ок. понял, что есть проблема, попробую завтра устранить.
Ошибку исправил. Обновил архив: http://ngcms.ru/forum/viewtopic.php?pid=37450#p37450
Если лень перекачивать можно просто в send_zboard.tpl закоментировать/удалить строку:
'checkScript': '/engine/plugins/zboard/upload/uploadify/check.php',
Её же закоментировать/удалить в /engine/plugins/zboard/tpl/config/edit_announce.tpl
Проверял здесь: http://air.tw1.ru/zboard/
FF 27.0
Opera 12.16
Если говорить о этой конкртеной задаче, то она решается патчем плагина, а конкретно нужно заменить запрос, как это примерно сделать было уже объяснено здесь: http://ngcms.ru/forum/viewtopic.php?pid=36836#p36836
Если требуется отделить категории, то туда нужно прописывать: catid NOT regexp '[[:<:]](666,777)[[:>:]]'
Вводить дополнительный параметр для данной фичи не вижу смысла.
Покажи где в какой CMS реализован такой функционал в рамках архива?
Каким образом данный функционал должен относится к архиву?
Добавил!
Картинки нет.
Браузер FF 26.0
ок. понял, что есть проблема, попробую завтра устранить.
Изменения есть (появилось сообщение о том что объявление добавлено но нужна активация) но картинки не добавляются.
Хм.. странно...
А на этом тестовом сайте добавляются?
http://air.tw1.ru/zboard/
http://air.tw1.ru/engine/
Login: admin
Password: admin
Какой браузер?
Рекомендую всё же использовать tpl файлы из /templates/mangguo/plugins/zboard/, т.к. они актуальные.
Естественно, что под каждый конкртеный шаблон нужно настраивать вывод, чтобы он отображался красиво. Данный шаблон приведен только в качестве примера, чтобы можно было быстрее с орентироваться как, где и какие переменные можно использовать.
Из /templates/mangguo/js/ используются jquery.min.js и PictureSlides-jquery-2.0.js
Из /templates/mangguo/css/ используется picture-slides.css
Они нужны для работы слайдера изображений при отображении, шаблон show_zboard.tpl
Ок.
Ну раз пытаюсь добавлять картинки, значит установил и активировал.
Не добавляются объявления.
После нажатия "Отправить" перекидывает на главную доски объявлений "Ошибка: В данной категории пока что нету объявлений"
Отключил капчу, все равно без изменений.
Объявления появляются не сразу же, а только после активации их в админке, раздел "Список объявлений".
Загрузка изображений не фурычит.
При нажатии "Select files" - происходит только обозначение, что выбраны некоторые изображения, но не загрузка.
Непосредственно загрузка происходит в момент нажатия кнопки "Отправить". Это сделано для того, чтобы предотвратить случаи, когда пользователь зашел, загрузил изображения но не добавил объявление.
Изображения загружаются в директорию /uploads/zboard/, а в директории /uploads/zboard/thumb/ создаются уменьшенные копии изображений.
Эти директории должны создаваться автоматически при установке плагина. На эти директории должны стоять права доступа chmod 0775.
infinity237, Красавчег!
Про установку пару слов напиши.
По установке: загрузить шаблон, загрузить плагин, установить плагин, включить плагин, включить ЧПУ, выставить нужные настройки.
Конкретно по шаблонам и переменным лучше смотреть /templates/mangguo/plugins/zboard/ - там более актуальные шаблоны.
После установки плагина и активации ЧПУ станут доступны страницы:
/zboard/ - главная плагина. (Шаблон /templates/mangguo/plugins/zboard/zboard.tpl)
/zboard/cat/X/ - страницы категорий. (Шаблон /templates/mangguo/plugins/zboard/zboard.tpl)
/zboard/show/X/ - страницы объявлений. (Шаблон /templates/mangguo/plugins/zboard/show_zboard.tpl)
/zboard/send/ - добавление объявления. (Шаблон /templates/mangguo/plugins/zboard/send_zboard.tpl)
/zboard/search/ - поиск по объявлениям. (Шаблон /templates/mangguo/plugins/zboard/search_zboard.tpl)
/zboard/list/ - страница-список объявлений пользователя (доступна только зарегистрированным). (Шаблон /templates/mangguo/plugins/zboard/list_zboard.tpl)
/zboard/edit/X/ - страница-редактирования объявления (доступна только зарегистрированным). (Шаблон /templates/mangguo/plugins/zboard/edit_zboard.tpl)
/templates/mangguo/plugins/zboard/variables.ini - отвечает за переменные для постраничной навигации.
/templates/mangguo/plugins/zboard/bb_tags.tpl - отвечает за вывод bb тегов.
/templates/mangguo/plugins/zboard/no_access.tpl - отвечает за вывод информации при открытии страницы пользователем, у которого нету прав доступа к данной странице (например человек пробует открыть страницу редактирования объявления, которое ему не пренадлежит).
В /templates/mangguo/plugins/zboard/block/ - можно складывать любые шаблоны для блоков (как их использовать см. ниже).
Внутри main.tpl можно использовать следующие блоки:
1. {{ callPlugin('zboard.show_entries_cnt') }} - выводит общий счетчик объявлений. Не создает особой нагрузки, т.к. кешируется и запросы в БД делаются только при добавлении+активации в админке объявления и при удалении/редактировании объявления.
2. {{ callPlugin('zboard.show_catz_tree') }} - выводит дерево категорий. Также кешируется как и первый блок.
3. {{ callPlugin('zboard.show', {'number' : 10, 'mode' : 'last', 'cat': '1,3,5', 'template': 'block_zboard_last', 'cacheExpire': 360}) }} - блоки вывода N объявлений.
Поддерживаемые параметры:
- 'number' - число выводимых объявлений.
- 'mode' - режим вывода. [last - по дате активации/редактирования | view - по количеству просмотров | rnd - случайный вывод]
- 'cat' - ID категории/категорий из которых будут выводится объявления. При отсутствии параметра выводится из всех категорий, при необходимости вывода из нескольких категорий нужно записать через запятую ID категорий. Например, запись 'cat': 1,3 - означает вывод только из категорий с ID=1 или ID=3.
- 'template' - выбор шаблона, который будет отвечать за вывод блока (должен лежать внутри /templates/mangguo/plugins/zboard/block/, либо внутри /engine/plugins/zboard/tpl/block/)
- 'cacheExpire' - число секунд через которые будет обновлятся кеш.
4. Также в main.tpl поддерживаются страндартные TWIG блоки, которые позволяют выводить/скрывать определенные блоки в зависимости от страницы на которой находится посетитель.
- {% if pluginIsActive('zboard') %}XXX{% endif %} - выводится если плагин zboard активирован.
- {% if isHandler('zboard') %}XXX{% endif %} - выводится только на всех страницах плагина zboard, но не выводится на других страницах.
- {% if isHandler('zboard:list') %}XXX{% endif %} - выводится только на странице /list/ плагина zboard.
- {% if isHandler('zboard:edit') %}XXX{% endif %} - выводится только на всех страницах /edit/X/ плагина zboard.
- {% if isHandler('zboard:send') %}XXX{% endif %} - выводится только на на странице /send/X/ плагина zboard.
- {% if isHandler('zboard:show') %}XXX{% endif %} - выводится только на всех страницах /show/X/ плагина zboard.
- {% if isHandler('zboard:search') %}XXX{% endif %} - выводится только на на странице /search/ плагина zboard.
ps: Кошелек WM c тебя.
Давай сначала проведем "опытную эксплуатацию" и устраним имеющиеся недочеты, если такие будут.
Плагин готов. Полностью соответствует заявленному ТЗ, но возможны мелкие недочёты, которые компенсируются дополнительным функционалом.
Посмотреть в работе можно здесь: http://air.tw1.ru/zboard/
Основной функционал:
1. Возможность добавлять/удалять/редактировать объявления зарегистрированному пользователю.
2. Возможность разрешить добавление объявлений от имени гостя.
3. Возможность подключения капчи - используется reCaptcha.
4. Фильтр ссылок про добавлении объявления.
5. Блоки на главной: последние, рандом, часто просматриваемые.
6. Снятие объявлений по истечению времени по cron'у и возможность продления срока действия объявления.
7. ЧПУ для URL'ов.
8. Кеширование. Блоки на главной кешируются по времени, счетчик общего числа объявлений и дерево категорий - по событию добавления/удалени/снятия категории/объявления.
9. В tpl шаблонах используется TWIG.
10. Возможность созданий собственных категорий любой вложенности.
11. Вывод дерева категорий с отступами.
12. Возможность вести статистику просмотров - счетчики просмотров [3 режима работы: отключено, включено, отложенный режим]
13.а Шаблон для демонстрации работы внутри архива.
13.б Карусель для изображений в шаблоне.
13.в Возможность использовать ббкоды при добавлении объявления.
14. Собственный поиск по объявлениям.
15. Редактирование/удаление объявлений в админке.
16. Добавление/редактирование/удаление категорий в админке.
При разработке использовались плагины и наработки ROZARD'a за что ему отдельное спасибо.
Из плагина, при наличии желания и опыта можно сделать практически любой CRUD со своей логикой и.т.д.
На приведенном выше сайте тоже:
0.9.3 + SVN [SVN1178+]
complain 0.06
Полгаю, что проблемы где-то на вашей стороне, в шаблоне или ещё где. Для дальнейшего установления причины проблемы нехватает информации.
В каком виде заполнен список? В списке есть спец.символы, вроде одинарных/двойных ковычек?
Вот здесь работает:
http://ngtest01.ngdemo.ru/games/taifun-v-tokio-afp.html
1|Заменить ссылку
2|Спам в новости
3|Другая ошибка
4|Ошибка 1
5|Ошибка 2
Что в html коде?
Если чисто для врнутреннего пользования, то подойдет GA:
https://www.google.ru/search?client=ope … el=suggest
Какая версия NG/плагина?
Вообщем с ROZARD'ом удалось установить проблемные места:
1. В php.ini на время прописать display_errors on и error_reporting = 2147483647
После этого на главной странице должны начать появлятся все ошибки, Warning и Notice можно впринцепе пропускать, т.к. они не критические.
2. Смотрим fatal ошибки, они в основном своём возникают из-за того, что начиная с php 5.4 передача переменной по ссылке ( foo(&$a) ) стала невозможна, поэтому использование этого приема приведет к фатальной ошибке.
Соответственно:
1) В /engine/includes/inc/extras.inc.php начиная с 360 строки, в 4 местах убрать амперсанды из аргументов функций, например:
$sth.=call_user_func($func['function'],$sth, &$arg1);
Заменить на:
$sth.=call_user_func($func['function'],$sth, $arg1);
2) В /engine/includes/classes/uhandler.class.php, 587 строка: &$skip поменять на $skip.
Возможно ещё где-то что нужно поменять, т.к. вглубь админки и плагинов не лазили, поэтому смотрите сами по ошибкам что-где. После исправлений можно убрать вывод Warning в php.ini
В 0.9.4RC таких проблем не возникает, т.к. там скорее всего эти места уже вычищены.
Да. Есть такое.
Естетственно выводит alert, если /plugin/comments/add/ вернул 500 ошибку.