+0.52
Рейтинг
1.46
Сила

Евграф

Как вывести номера всех страниц в paginator’е?

Сколько ни искал, ответа найти не смог.

Мне нужно вывести ссылки на все страницы блогов, то есть: /blog/page1/, /blog/page2/ и пр.

После изучения файла paginator.tpl, обнаружилось следующее:
  • $aPaging.aPagesLeft — массив с номерами страниц, предшествующими текущей
  • $aPaging.aPagesRight — страницы после текущей
  • $aPaging.iCountPage — номер последней страницы
Номер последней страницы мне бы подошёл (я бы мог в цикле перечислить все от 1 до последней), но проблема в том, что в LS-овской версии Smarty нет ни оператора for, ни while, поэтому я не понимаю, как вывести ссылки на все страницы.

UPD
Решение от x3r0x:
{section name=page_number loop=$aPaging.iCountPage}
        {$smarty.section.page_number.index+1}
{/section}

Как заставить закешированный CSS-файл переименоваться?

Допускаю, что вопрос тупой, но ответа пока мне никто не дал.

Всё знают, что в ЛС, независимо от шаблона и количества плагинов, генерируется некий собирательный CSS-файл, который потом и подключается к каждой странице:
<link rel='stylesheet' type='text/css' href='http://www.site.ru/templates/cache/new/5e30fbee88c09e7e63ef7d3833309448.css' />

Если кратко, то задача сделать так, чтобы этот файл поменял название и стало что-то вроде:
<link rel='stylesheet' type='text/css' href='http://www.site.ru/templates/cache/new/38335e30fbee3094488c09e7e63ef7d8.css' />

Но сколько я ни очищал кэш, этот файл перегенерируется с тем же именем. А Chrome, например, как закеширует однажды CSS, так и потом всё время его использует. Обновишь страницу — он вроде показывает новую версию, но проходит пять минут — и опять всё по-старому. Нужно, чтобы имя CSS-файла поменялось (альтернативный вариант — добавить что-то вроде ?v=2 после названия файла, но как это сделать?).

Вопрос: как мне переименовать закешированный CSS, чтобы все браузеры поняли, что файл изменился?

UPD: Кое-что есть здесь, но это не решает проблему (файл пересоздаётся с прежним именем).

В подвале появилась ссылка

У меня простой (надеюсь) вопрос. Пару дней назад, после того как я удалил из главного меню ссылку Разделы (так у меня называются Блоги) — я просто зашёл в header_top.tpl и удалил оттуда соответствующий li. Ссылка из топа пропала, но через пару дней я заметил её в подвале (внизу слева): www.varim.ru/ — причём, ссылка ведёт на страницу /index/ (вроде ссылка сверху вела на /blog/)

Не знаю, связано ли это вообще было с пунктом меню сверху, но даже когда я возвращаю пункт меню на место, снизу он не пропадает. Появляется оно там благодаря хуку, который выполняется перед завершением body, но если хук удалить, пропадают и другие вещи, такие как информация из админки.

Куда копать? Главный вопрос, на самом деле, как понять, кто именно выводит эту ссылку через хук — может, плагин какой. Появляется только на главной!

Помогите, люди добрые!

Выглядит это так:

Как обработать своей функцией?

Вопрос наверное больше относится к Смарти, но всё же.

Есть у меня темплейт, например, topic.tpl, отвечающий за вывод топика. В нём есть всякие конструкции типа:
{$oTopic->getTitle()|escape:'html'}

То есть, вроде как, функции в некотором виде оттуда вызывать можно, но добавить свою нельзя, хоть она и стандартная PHP’шная. То есть, в моём случае, было бы удобно сделать как-то так:
{$oTopic->urlencode(getTitle())}

Так не получается. Я понимаю, что есть какое-то место, где функция создаётся (если она своя), другое место, где она как-то переопределяется, чтобы вызываться без параметров (?), но где это всё я так и не нашёл.

Теперь вопрос: как мне добиться того, чтобы urlencode() заработал?

Как сделать особенный title для главной страницы?

По умолчанию, есть константа с названием сайта. Она является тайтлом для главной страницы («Главная страница»), и она же является окончанием названия второстепенных страниц («Топик про смерть / Блог о жизни / Главная страница»). Но я хочу сделать так, чтобы на главной странице было одно название, а на второстепенных в окончании — другое. Как это сделать?

На самом деле, вопрос сводится к другому: как определить, главная у меня страница или нет. Может, есть какая-нибудь переменная для этого? Это было бы очень удобно — я бы просто добавил в header.tpl условие.

Чего мне сильно не хватает

Здравствуйте. Хотелось бы высказать несколько пожеланий по поводу возможностей новой версии (простите, если что-то из этого уже обсуждалось).

Чего мне очень хочется

  1. Чтобы была таблица хешей, и когда я логинюсь в одном месте, я не переставал быть залогиненным в другом (речь идёт об одном и том же LS-сайте);
  2. Чтобы можно было добавлять видео из Vimeo по тегу video;
  3. Чтобы аватары ресайзились с сохранением пропорций (вроде, уже сделали);
  4. Чтобы усовершенствовали систему инвайтов. Поясню: сейчас есть два варианта: либо отправляешь по почте инвайт, человек заходит, регистрируется (снова оставляя адрес электронной почты), активирует свой аккаунт, логинится. Либо, при получении инвайта, человек просто регистрируется, указывая любую почту, но не активируя её. По-моему, логично сделать так, чтобы человек получал на свой e-mail приглашение, прошёл по ссылке и зарегистрировался, не указывая электронную почту (она уже та, на которую вышло приглашение) и не активируя свою запись (потому что он получил ссылку по почте);
  5. Чтобы были исправлены всякие мелочи типа отсутствия пробелов перед скобками («Комментарии(25)»), лишних переносов строк во фразе «Читать дальше» и лучшей оптимизированности кода для поисковиков;
  6. Чтобы картинки вставлялись с относительным путём, с альтом и закрывающим слэшем:
    <img src="/kuku/lala.jpg" alt="Лала" title="Ляля" />
  7. Чтобы исправили глюк (если ещё не исправлили), при котором, если в профиле не указано название сайта, а только адрес, вместо названия светится e-mail;
  8. Чтобы страницы были валидными (естественно, в той части, которая касается самого движка и стандартных скинов). Не самое главное в жизни, но всё же. К тому же, есть желающие помочь.
А так система клёвая, мне очень нравится. Спасибо вам.

Разлогинивание (потеря авторизации) при авторизации в другом месте

Столкнулся со следующей проблемой/особенностью: в базе лайвстрита, насколько я понял, отведено только одно поле под хэш, который генерируется при авторизации и который записывается в куки, чтобы человек оставался залогиненным. Соответственно, если пользователь вошёл на сайт с другого компьютера/браузера, старый хэш перетирается новым, и человек автоматически перестаёт быть залогиненным в на первом компьютере.

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

А вот как это реализовать на чужом коде, не знаю. Может, кто-то уже сделал хак? :-)