▄▄             ▄▄▄  ▄▄▄ Power
█  █ ▄▄▄▄ ▄▄▄▄▄ █  █ █  █
█▄▄█ █▄▄▄ █ █ █ █▀▀▄ █▀▀▄
█  █ ▄▄▄█ █ █ █ █▄▄▀ █▄▄▀

Login
Register
/ aa about.it ad amd64 and.who api asm asmbb asmbb.features authentication bbcode best bugs cares chat common debian deck design dll docker email embed fast feature files fossil fresh.ide friendly gamedev heap help hiawatha i18n incredible interop learning libfresh limit links linux mailing.list meme meta.http-equiv minimag money mysql neo nginx numbers orly os outage pass password post-by-email programmers programming proile read-by-email resources safety script.alert.xss secret seo skins sodom source sourcecode subdirectory subforum support tags templates test test123 type very.ugly video work xss игнат котики парола русский тест уеб.програмиране хабр.наполеон
Categories Threads

Фильтрация вывода RSS

Здравствуйте. Как добавить фильтрацию тем и сообщений в теме по новизне(по возрасту), по количеству сообщений, по популярности? Как расширить возможности поиска? Как создать sitemap.xml файл? Как создать RSS файл? С Уважением Владимир.

ecolog

Здравствуйте. Как добавить фильтрацию тем и сообщений в теме по новизне(по возрасту), по количеству сообщений, по популярности? Как расширить возможности поиска? Как создать sitemap.xml файл? Как создать RSS файл? С Уважением Владимир.

Фильтрация тем

Сообщения в теме и темы в списке тем и так всегда отсортированы в порядке новизны. Новые темы располагаются в начале списка, а новые сообщения в конце темы.

Сообщения в теме, вообще то нельзя фильтровать или сортировать подругому, потому что все сообщения логически связаны именно в порядке публикования. Поэтому и удаление сообщения из темы это довольно ответственное действие.

Какие темы будут в списке тем, определяется в соответствующего SQL запроса – файл threadlist.sql. Этот запрос сначала обрабатывается в процессоре шаблонов (обратите внимание на команды [case:[special:variant]]. Специальная команда [special:variant] имеет значения от 0 до 3 в зависимости от адреса запроса (URL):

0 - запрашивается список всех тем: '/' 1 - запрашивается список всех тем с ограниченным доступом (LAT) для данного пользователя: '/(o)/' 2 - запрашивается список всех тем с неким ярлыком: '/some_tag/' 3 - соответствeно, все LAT с данным ярлыком: '/(o)/some_tag/

Конечно, эти варианты можно расширить. Для этого надо доработать SQL запрос и логика вычисления значения [special:variant] или использовать другие внутренние параметры и команды процессора шаблонов.

Поиск

AsmBB использует полнотекстовый поиск SQL (расширение fts5). Возможности поиска очень большие – у него собственный синтаксис, которого можно увидеть на сайте SQLite.

Поиск можно делать по заголовок темы, содержание сообщении, имя потребителя и по ярлыки темы.

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

Специальные файлы:

Чтобы возвращать специальные файлы типа sitemap.xml и RSS надо сделать примерно следующее:

Включается команда "!rss" с списке в commands.asm:

PHashTable tablePostCommands, tpl_func, \ "!markread", MarkThreadRead, \ "!post", PostUserMessage, \ "!edit", EditUserMessage, \ "!edit_thread", EditThreadAttr, \ "!del", DeletePost, \ "!by_id", PostByID, \ "!history", ShowHistory, \ "!restore", RestorePost, \ "!echoevents", EchoRealTime, \ "!search", ShowSearchResults2, \ "!rss", RSSFeed

А потом создается файл rss.asm в котором процедура:

proc RSSFeen, .pSpecial begin ; здесь синтезируем rss и возвращаем потребителю... end

Можно посмотреть как сделано в других случаях. Достаточно просто например написана команда !users_online

Ну и конечно файл rss.asm должен включится с include "rss.asm" в начале engine.asm`.

AsmBB v2.6 (check-in: f15fadce65c1fa6d); SQLite v3.28.0 (check-in: 884b4b7e502b4e99);

©2016..2018 John Found; Licensed under EUPL.
Powered by Assembly language
Created with Fresh IDE

Icons are made by Egor Rumyantsev, vaadin and icomoon from www.flaticon.com