Многие люди, которые заходят на сайты livestreet даже не догадываются что они могут писать свои новости! А все потому что они не видят кнопочку создать новость.
Давайте сделаем кнопочку «создать» видимой для незарегистрированных пользователей.
Читать дальше →
В LS существует множество возможностей для реализации самого разного функционала как с использованием плагинов, так и без них.
Допустим мы хотим реализовать следующий функционал: на главной странице для гостей сверху всегда выводится определенный топик. Конечно мы можем написать под эту задачу несложный плагин, повесить его на хук в шаблоне и радоваться, но мы поступим проще (на все про все уйдет 4 строчки c учетом замечаний kpoxas три строчки). Сделаем все в шаблоне, написав при этом минимальное кол-во кода. Итак.
Нас интересует главная страница, а значит экшен Index, шаблон вывода которого находится в файле templates/skin/synio/actions/ActionIndex/index.tpl который и будем изменять.
Сразу приведу код
{if !LS::CurUsr() and !Router::GetActionEvent()}
{include file='topic_topic.tpl' oTopic=$LS->Topic_GetTopicById(8)}
{/if}
Да-да, больше ничего не нужно, результат достигнут ;)
Да, я знаю, что об интеграции социальных кнопок скриптом share42 уже парураз писали. Но оба предложенных варианта не переполнили меня восторгом.
Отступление: На справедливый вопрос «а зачем это вообще нужно?» у меня нету готового ответа. Это SEO. Но базовая интеграция с социальными сетями в каком-то виде, есть в шаблонах изначально. На мой взгляд этого мало, но даже в рамках команды нашего сайта, мы долго обсуждали необходимость дополнительных усилий в этом направлении, и целесообразность применения share42, в частности. Тема глубоко субъективная.
Так вот, плагин для подобной задачи кажется мне слишком тяжёлым решением, а ручная модификация tpl-ей шаблонов — слишком грубым.
В итоге, я решил попробовать прикрутить кнопки применив механизм блоков.
Сейчас занимаюсь созданием сайта на базе данной CMS. Может кто-то обвинит меня в излишней скурпулезности, но я люблю чтобы мои сайты были валидными. Вопрос в тэге
<cut>
, дело в том что этот тэг является не HTML тэгом, а внутренним тэгом CMS, и поэтому в коде страниц этого тэга быть не должно во избежание всяческих эксцессов. При добавлении или редактировании топика данный тэг не удаляется из текста топика после разбиения его на анонс и полный текст. Я поступил следующим образом:
Для того чтобы увидеть результаты изменений в CSS файлах вашего рабочего проекта, необходимо просто перезагрузить страницу. При этом загружается не только таблицы стилей, но JS, разметка полностью и возможно выполняются запросы к БД. На это, как мне кажется, иногда уходит достаточно много времени, которого в наше прогрессивное время постоянно нехватает.
Мне надоело эта ситуация и, не изобретая велосипед, на широких просторах интернета я нашел для себе решение.
Читать дальше →
Для тех, кто уже начал обживать свои проекты на ЛайвСтрит 0.4 наверняка вылезла проблема отсутствия конфигурационного файла для поисквого бота сфинкс — пожалуйста!
Читать дальше →
В процессе эксплуатации системы, нашел несколько серьезных косяков в оптимизации страниц. Не то чтобы я злобный сеошник, но считаю, что любому проекту грамотная оптимизация не повредит. Во первых, все заголовки постов это , то есть поисковые системы видят на странице очень много заголовков первого уровня, что явно не по правилам.
Почти сразу, как поставил движок, передо мной встал вопрос: как отдавать в rss долько до кут? Не хотелось мне отдавать полные топики в ленту, т.к. материалы можно почитать на сайте, а школьникам лентяям отрезать возможность что-то полезное оттуда грабить.
Теперь это решение кажется уже довольно простым. Достаточно в экшене ActionRss.class.php в одной из функций (например RssGood) изменить одну строку на:
$item['description']=$oTopic->getTextShort();
Последние материалы блога в rss
Тут же вылезла проблема, что прочитав анонс пользователю ну совершенно некуда кликнуть. Что согласитесь — форменный бардак. Решил, что нужны «читать далее» и «последние посты топика». Теперь в rss канале футер анонса выглядит так:
Тут порядок такой. В том же файле в той же функции вставлем после: