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

Меня тут спросила Арита, можно ли сделать так, чтобы с некой страницы всегда перебрасывалось на последнюю страницу блога? И вторая просьба: можно ли сделать так, чтобы модуль LAST выводил заметки не целиком, а обрезал по N символов?

Смысл первого вопроса в том, что главная страница блога может не быть главной страницей сайта на движке (в этом случае было бы достаточно прописать в config.php $rootpage=''), а на главной странице сайта может быть заставка. Смысл второго вопроса в том, что когда дневник выводится в формате ленты (как принято в большинстве блогов, например, в ЖЖ), то «прятать под кат» большие посты имеет смысл автоматически.

Я открыл модуль LAST и стал его модернизировать — чтобы можно было создать некую страницу /main, в ней написать {_LAST: redirect=''_}, и при заходе браузер перебрасывался на последнюю страницу блога (а если в кавычках указано имя тэга — на последнюю с этим тэгом).

Делов-то на пять минут. Но в процессе я столкнулся с неожиданным эффектом: как теперь отредактировать саму эту страницу с тэгом {_LAST: redirect=''_}, если с нее браузер тут же улетает в неведомые ебеня? Пришлось наворачивать по движку специальную систему, которая для админа в окне админки на той странице, куда вы улетели, добавляет внизу строчку редактирования той страницы, откуда вы прилетели сюда... Ну, не важно.

Кстати, кто не в курсе: теперь админка у админа вызывается в центре экрана по кнопке 'a' или нажатием пробела. Это тоже к слову.

В общем, я доковырял модуль LAST по первому вопросу и стал думать над второй частью вопроса (как обрезать посты), и тут мне стало казаться, что я что-то похожее уже делал... Долго лазил по папкам движка и нашел: модуль ANONS. Поискал в блоге, что я о нем писал, и нашел подробнейшее описание. Клянусь, забыл обо всем этом! А ведь по функционалу этот ANONS не просто кроет модуль LAST полностью, а вообще бомба. Более того: вот эту вот фичу «показать те посты, которые я еще не видел», что я с таким понтом сделал пару дней назад — он, оказывается, давно умел! В общем, сейчас я добавил к его опциям redirect=1, теперь он умеет и перебрасывать. И стал думать, чего же я его до сих пор никак не использую?

Сделал у себя в блоге пару страниц самообновляющихся рубрик, чтоб самому ориентироваться:

http://lleo.me/dnevnik/mail — mail в стихах
http://lleo.me/dnevnik/f5 — вся колонка F5

Код элементарный:


{_ANONS:
template = <p><br><b><a title='открыть заметку' href='{link}'>{Header}</a></b>: &nbsp; {Body}&nbsp;<a title='читать полностью' href='{link}'><i>(...)</i></a>
tags = колонка F5
limit = 1000
length = 300
_}

Хотя вообще-то, как можно догадаться из названия, изначально модуль ANONS делался чтобы автоматом верстать колонку тематических анонсов на главной странице. Но с ним можно делать любые каталоги, подборки, выборки, списки, и вообще все, что угодно. Только template бы сочинить красивый.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Firefox
0
0
10p
Если есть рубрики, то где-то в движке есть и рубрикатор? Пока не нашел. Может, имеет смысл делать страницы самообновляющихся рубрик для все рубрик автоматом, например lleo.me/dnevnik/tags/mail или lleo.me/dnevnik/tags/mail+f5?
Nokia-E90 Safari
 Москва
0
0
lleo Nokia E90
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Кликайте на "тэги" - вот вам и рубрикатор.
Windows Firefox
0
0
10p
Спасибо. Помнил ведь, что что-то такое было, а найти не смог, потому что ссылка доступна только из заметки с тэгами. Здесь ее, к примеру, нет.
Windows
 Киев
2
0
lesha
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Память - загадочная штука :)

Еще сделать модуль "показать список модулей, которые я не испольpую" - чтобы про них не забыть ;)
Windows Firefox
5
0
10p
Главное - не забыть потом об этом модуле.
Linux Ubuntu Firefox
0
0
Andrey Pozdnyakov
А как на счет модуля, который бы показывал списочек всех зарегистрированных пользователей (те, кто с паролем)?
Linux Firefox
 Москва
0
0
lleo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Так есть же в админке "база посетителей".
Linux Ubuntu Firefox
0
0
Andrey Pozdnyakov
о, и правда есть.
а как называется модуль, который это показывает?
Linux Firefox
 Москва
0
0
lleo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Это не модуль, это запрос majax на сервер, а в ответ - окно.
Windows Opera
1
0
Tiger
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Это бага или фича, что /dnevnik/ сейчас кидает не на последнюю запись, а на первую запись в последний день?

Кстати, пробелом в браузерах прокручивается страница, не будет конфликтов?
Windows Firefox
0
0
Roman
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
а у меня после сегодняшнего обновления ваабще все слетело и не хочет восстанавливаться.
вместо блога выскакивает 500-ошибка (Internal Server Error),
install.php говорит что я не залогинен, а на /admin или /install я не могу попасть.

я один такой? ;-)
Linux Firefox
 Москва
0
0
lleo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
То есть install.php запускается, а /admin выдает ошибку сервера 500?
Windows Firefox
0
0
Roman
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
да.
и если адрес без "www", то install.php даже признает меня залогиненным, и разрешает искатъ обновления (я вот прямо сейчас обновил main.php и пару картинок, а с "www" - я уже не залогинен.
попытки вызвать /admin или любую другую страницу блога - 500 ошибка.
Linux Firefox
 Москва
0
0
lleo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Так. Пробуем открывать главную страницу блога.
Попробуйте поставить права 666 на index.php
Если не получилось - права 664, затем 644
Windows Firefox
0
0
Roman
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
644! открылось - заработало ;-)
Linux Firefox
 Москва
0
1
lleo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Боюсь, что это не все: в /ajax придется тоже права 644 проставить.

Я что-нибудь когда-нибудь с этим придумаю.
Linux Safari
0
0
Roman
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
да. я на все файлы поставил права 644.
файлы, которые обновляются, получают у меня права 664 - и их нужно потом руками исправлять на 644 - тогда все работает.
Windows IE
0
0
D.iK.iJ
$fp=fopen(getenv("DOCUMENT_ROOT").'config.dat',"w");
@chmod("$fp", 0666);

Скорее всего что-то такое у вас в движке есть... Так что напомню-ка я это самому себе :) Все забываю использовать.
Linux Firefox
 Москва
0
0
lleo
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Задумался. Если честно, я не знаю, что такое getenv и не понимаю смысла значка @

Если про getenv я могу и сам посмотреть, то смысл @ мне подсмотреть негде.

Расскажите, что такое @? Вдруг это мне сильно облегчит жызнь?
Windows IE
0
0
D.iK.iJ
Запрещает вывод ошибок PHP при выполнении. Всех. Включая различные Нотис или как там их в английском.

REMOTE_ADDR ($_SERVER["REMOTE_ADDR"]; getenv("REMOTE_ADDR"); ) – IP-адрес хоста (компьютера), отправляющего запрос;
REMOTE_HOST – имя хоста, с которого отправлен запрос;
HTTP_REFERER (getenv("HTTP_REFERER");) – адрес страницы, ссылающейся на текущий скрипт;
REQUEST_METHOD (getenv("REQUEST_METHOD");) – метод, который был использован при отправке запроса;
QUERY_STRING ($_SERVER["QUERY_STRING"]; getenv("QUERY_STRING");) – информация, находящаяся в URL после знака вопроса;
SCRIPT_NAME – виртуальный путь к программе, которая должна выполняться;
HTTP_USER_AGENT (getenv("HTTP_USER_AGENT");) – информация о браузере, который использует клиент

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

всего комментариев: 20

<< предыдущая заметка следующая заметка >>