0
<< предыдущая заметкаследующая заметка >>
09 апреля 2011
модуль ANONS

Итак, все, что вам нехватало для полного счастья. Спасибо Иланду за консультации по MySQL.

Анонсирую новый модуль ANONS. При построении сайтов и прочего говна часто возникают такие задачи, как, например:
— вывести 10 последних новостей
— вывести новости, которые не старше 30 дней
— вывести ссылки на все страницы с тэгами «пылесос», «чайник» или «бытовая техника»
— вывести ссылки на страницы, которые ты (да, именно ты!) еще не открывал своим браузером
— выводить краткие заголовки или короткие куски текста с ссылкой на продолжение
и т.п.

Для этого теперь есть модуль ANONS, он может делать все вышеперечисленное в любых комбинациях и сочетаниях. Его, как обычно, можно встраивать хоть в заметку, хоть в темплейт любой страницы.

Вот список его настроек:

mode — тип выборки, варианты:
all (по умолчанию) — все страницы
blog — только страницы блога
page — только статические страницы

tags — если не пусто (по умолчанию пусто), то выборка будет проводиться по тэгам, перечисленным здесь через запятую

tags_and — как объединять тэги, если их в списке несколько. Варианты:
OR (по умолчанию) — выбирать записи, содержащие хотя бы какой-то из перечисленных тэгов
AND — выбирать записи, содержащие все перечисленные тэги

limit — выводить максимальное число записей, по умолчанию 20

days — выводить записи только за последние N дней (по умолчанию 0 — выводить все)

sort — сортировать записи:
date (по умолчанию) — по дате заметки блога
update — по времени последнего обновления

sortx — как сортировать записи: DESC (по умолчанию) обратная сортировка, пусто (пустые кавычки '') — прямая

podzamok — по умолчанию 0, но если 1, то для подзамочных друзей будут выводиться только подзамочные записи, для всех остальных — вообще ничего

length — число букв в отрывке текста, если 0 — то текст целиком (по умолчанию 200)

media — если 0 (по умолчанию) то выводить голый текст без верстки, картинок и т.п. При media=1 параметр length роли не играет — заметка выводится целиком

template — html-шаблон вывода, по умолчанию:
<div style='text-align:left; padding: 10px 0 10px 0; font-size:12px;'><b>{Y}-{M}-{D}: {Header}</b><br>{Body}&nbsp;<a href='{link}'>(...)</a></div>\n\n
Ну здесь понятно, в {Header}, {Body}, http://lleo.me/blog/2011/04/09 подставляется заголовок заметки, ее содержимое и ссылка на нее, {Y} {M} {D} — год, месяц и день заметки (если заметка блога)

redirect — если 1 (по умолчанию 0), то будет выбрана по вышеописанным критериям одна заметка, и на нее произойдет мгновенный переброс браузера. Например {_ANONS:redirect=1_} — тупо перебросит на самую последнюю запись. Здесь, правда, возникает нюанс: как же теперь отредактировать страницу с тэгом ANONS, если с нее мгновенно перебрасывает? На той странице, куда вас перебросит, в админке появится дополнительная строчка — вызов редактора той заметки, с которой сюда перебросило. Окно редактора не закроется (ибо заметки с этим номером не присутствует на экране), но этот глюк я править не стал — не так уж часто админу придется редактировать заметку с перебросом, один раз настроить и забыть.

Несколько примеров работы модуля:

1. Вывести все ссылки на заметки с тэгом «и смех и грех» или «пирдуха»

{_ANONS:
template = <div style='border: 1px dotted red'>{Y}-{M}-{D}: <a href='{link}'>{Header}</a></div>
tags = пирдуха, и смех и грех
days = 0
_}

2. Вывести 5 самых старых не обновлявшихся статических страниц

{_ANONS:
template = <div style='border: 1px dotted red'>{Y}: <a href='{link}'>{Header}</a></div>
mode = page
sort = update
sortx = ''
limit = 5
_}

compania: [...]

3. Вывести 10 последних записей блога с тэгом «движок», которые лично ты (посетитель) еще не читал, но не старше 365 дней, с заголовком и кратким анонсом в 60 символов. Разместить их на странице блоками в зеленой рамочке.

<div style='border: 3px solid green; padding: 10px;'>{_BLOKI: WIDTH=150
{_ANONS:
template = <div class=r><font color=red>{Y}/{M}/{D}:</font><br><b>{Header}</b><br>{Body} <a href='{link}'>читать&nbsp;далее</a></div>\n\n
days = 365
mode = blog
sort = date
tags = движок
limit = 10
length = 60
unread = 1
_}_}</div>


Как вам инструмент?

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Opera
 Европа
0
0
Roman Erykalov
Очень пригодится. Теперь можно будет удобным образом организовать контент. Я первым делом, например, сваяю страничку, на которой будут отображаться только админские заметки - как-то их стало много.
А когда выложу побольше песен, сделаю отдельную страницу для них - и мне не придется вручную собирать ссылки!
Кстати, спасибо за ссылку в рекомендованных - я и не сразу понял, откуда ко мне набежало 300 человек :-)
Windows Opera
 Европа
0
0
Roman Erykalov
вот, пока не забыл: полез обновляться и снова беззлобно матерился, отмечая галочкой каждый файл mp3 в недавно созданной папке, чтобы при обновлении движок это все не удалил. Можно ли где-то в конфиге указать модулю install, какие папки не стоит трогать вообще? Ведь папку с фотографиями он не шерстит на предмет синхронизации.

И вот заметил странное: когда я написал этот комментарий, в зеленой рамочке появились 10 заметок за 2010 год, которые я якобы не читал. Но я читал. А при первом заходе на страницу, рамка была пуста - что, в общем, правильно, как я понимаю
Linux Firefox
 Москва
0
0
LLeo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Все будет. Новый install почти готов, в нем не будет всех этих глюков.
Linux Firefox
 Пенза
0
0
m1kc
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?



Последний пример не работает. Причина проста - я читал все записи в /blog.
Nokia-E90 Safari
0
0
Леонит Каганофф
Пасиба. Думаю, надо ввести еще одну переменную оформления всего этого блока, которая будет выводить общий формат или не выводить ничего, если выдачи нет. Типа: "Свежие новости:" А то глупо писать "свежие новости", если далее пустота.
<< предыдущая заметка следующая заметка >>