+1.80
Рейтинг
4.61
Сила

Игорь

Блок «Дни рождения» для плагина LsBlocks

Для версии 0.4.2
Скачать архив с файлами блока (+сам модуль lsblocks+блок с топом юзеров по карме, по публикациям, по комментариям)

Блок сделан на основе модулядля 0.3
Но в отличие от него работает на новой версии ЛС + при выводе событий учитывает разрыв в виде Нового года (т.е. сегодня будет показывать дни рождения января 2011 и будет показывать их как события позднее декабря 2010).
Т.е. теперь корректно отображается список за определенный период до и после текущей даты, даже если он затрагивает смену года.

Читать дальше →

Бесплатный плагин для больших рассылок "Mailing"

Вам знакома ситуация, когда на вашем LiveStreet сайте произошло что-то новое и хорошее, а большинство пользователей об этом не догадываются? Мне тоже :).

Какие есть варианты действий:
  • Если пользователей немного, тогда можно сделать прямую рассылку через ЛС.
  • Если в пределах пары сотен, тогда можно использовать функционал плагина aceAdminPanel. Список ваших личных сообщений будет безнадежно захламлен, но поставленную задачу вы выполните.
А что делать если пользователей очень много? Или если нужно сделать рассылку только прекрасной половине сайта? Или после отправки первых писем вы заметили ошибку и хотите её исправить?
Читать дальше →

Бесплатный плагин для мультиязычности "L10n"


Это продолжение темы "Плагин для мультиязычности".

Описание возможностей плагина:

После релиза первой версии плагина прошло больше 6ти месяцев. За это время частично моими силами, а частично силами веб-студии stfalcon.com был реализован следующий функционал:
  • Cовместимость с LS v0.4.2;
  • Возможность выбора языка интерфейса при регистрации пользователя и его последующая смена в настройках пользователя;
  • При публикации записи указывается её язык;
  • При создании и редактировании блога можно задавать название блога, его описание и url на разных языках;
  • Возможность создавать и просматривать переводы для записей;
  • Отдельные языковые версии сайта для каждого языка (напр. cookorama.net/ru или cookorama.net/uk). При просмотре отдельной языковой версии сайта выводятся записи только на языке этой версии (аналогично в топе, блоке последней активности, облаке тегов и т.д.). Основная версия сайта остается без изменений (публикуются только топики-оригиналы);
  • Чуть не забыл :). Если пользователь зашел на основной сайт (без указания языка в URL), тогда язык пользователя определяется по базе GeoIP Lite (пока для Украины и России, этот момент нужно ещё рефакторить);
  • Плагин совместим с плагином Sitemap v0.2.1. Сайтмапы для разных языковых версий лежат в сабдиректориях (напр. cookorama.net/ru/sitemap.xml и cookorama.net/uk/sitemap.xml)

Но не обошлось без хака роутера (для установки и передачи языка). В принципе получилось сделать это средствами конфига (код остался закомментированым в конфиге), но вылезли проблемы при сжатии css/js и ссылкам на статические ресурсы плагинов.
Читать дальше →

Опрос со множественным выбором вариантов ответов

LsQuestion Pie Chart
Плагин «LsQuestion» предоставляет возможность создавать на Вашем сайте опросы с выбором нескольких вариантов ответов.

Лицензия GNU GPL.
Скачать lsquestion
Демо ls.k2fl.ru

Плагин переопределяет тип топика «question» добавляя одно поле — максимальное количество ответов. Если указать больше 1, вместо радиокнопок у вариантов ответов будут выведены чекбоксы.

Также в дополнение к стандатному представлению результатов опроса добавлен график pie от google.

Установка: см. readme.txt

Бесплатный плагин "SEO"

красивая картинка, которая должна ассоциироваться с продвижением :)Хочу анонсировать плагин «SEO», который поможет оптимизировать структуру вашего сайта для поисковых систем.

Сразу оговорюсь, что плагин абсолютно бесплатен и распространяется по лицензии GNU GPL. Его можно скачать из каталога расширений. В архиве есть описание функционала и инструкция по установке.

Функционал

На данный момент реализован самый базовый функционал, а именно генерация уникальных meta тегов keywords и description для главной страницы, блогов, топиков, топа и т.д. Также в футере сайта, в зависимости от страницы, выводится текст который должен повысить частоту ключевых слов на странице.

Плагин работает на двух наших сайтах и мы думаем, что доля трафика с поисковых систем растет во многом благодаря ему :).
Для затравки покажу общий график роста посещаемости Кукорамы (плагин был подключен больше месяца назад, наблюдаю стабильный рост порядка 30%):
График роста посещаемости на cookorama.net

Читать дальше →

Плагин Facebook

Назначение:

LiveStreet => Facebook
  1. Публикация анонсов топиков на стену страницы (page) в Facebook
  2. OpenGraph тэги: поддерживаются картинки и видео
  3. Виджет Like Box
  4. Виджет Recommendations

Страничка плагина на livestreetcms.com
Кроме того, скачать можно с GitHub

Демо:


«Разбор полетов» приветствуется. :)

Плагин Groups - создаем группы пользователей


По многочисленным просьбам сделал плагин. Позволяет администратору сайта создавать группы и присваивать юзеру определенную группу. В понимании этого плагина, группа — всего лишь красивая надпись под ником пользователя с картинкой 12x12px.
Админка находится по адресу %sitename%/groups/

После активации плагина пропишите в шаблоне whois.tpl строчку
{hook run='user_group' oUserProfile=$oUserProfile}
после
<img src="{$oUserProfile->getProfileAvatarPath(100)}" alt="avatar" class="avatar" />
<p class="nickname">{$oUserProfile->getLogin()}</p>
{if $oUserProfile->getProfileName()}
	<p class="realname">{$oUserProfile->getProfileName()|escape:'html'}</p>		
{/if}


Не забудьте сделать chmod 0777 на папку /plugins/groups/uploads/

UPD
  • Теперь юзеру можно присвоить несколько групп
  • Можно выкинуть юзера из группы
  • Можно изменить порядок групп, в котором они будут выводиться в профиле юзера

Читать дальше →

Форматирование дат (На сайте: 1 год 5 месяцев 6 дней )

Хочу поделится хаком, как выводить дату в таком формате. Для этого необходимо в файл \engine\modules\viewer\plugs\function.date_format.php в function smarty_function_date_format вставить:

if(isset($aParams['day_back'])) {
		require_once('modifier.declension.php');
		$iTimeDelta = round((time()- $iDate)/(60*60*24));
		$year=floor($iTimeDelta/365);
		$mouth=floor(($iTimeDelta%365)/30);
		$day=($iTimeDelta%365)%30;
		$r = "";
		if($year>0) $r = smarty_modifier_declension(
						$year,
						$oEngine->Lang_Get('date_year_back',array('year'=>$year)),
						$oEngine->Lang_GetLang()
					);
		if($mouth>0) $r.= smarty_modifier_declension(
						$mouth,
						$oEngine->Lang_Get('date_mouth_back',array('mouth'=>$mouth)),
						$oEngine->Lang_GetLang()
					); 	
		if($day>0)	$r.= smarty_modifier_declension(
						$day,
						$oEngine->Lang_Get('date_day_back',array('day'=>$day)),
						$oEngine->Lang_GetLang()
					);	
		if($r!=""){
			return $r;
		}
		else return $oEngine->Lang_Get('date_day_back_less');
			
		
	}

В файл \templates\language\russian.php

'date_day_back' => '%%day%% день; %%day%% дня; %%day%% дней',
'date_mouth_back' => '%%mouth%% месяц; %%mouth%% месяца; %%mouth%% месяцев',
'date_year_back' => '%%year%% год; %%year%% года; %%year%% лет',

И при выводе даты прописать {date_format date=$oUserProfile->getDateRegister() day_back=«1»}

Предложение по улучшению роутера

На данный момент, для роутера нет никакой разницы между livestreet.ru/blog/ и livestreet.ru/blog. И это по моему скромному имху не правильно т.к. по двум разным урлам находятся совершенно одинаковые страницы.

Решение я для себя выбрал следующее:
/engine/classes/Router.class.php->GetRequestUri()
после
$sReq=preg_replace("/\/+/",'/',$_SERVER['REQUEST_URI']);

добавить
if(empty($_GET) && !strpos($sReq, '.') && substr($sReq, strlen($sReq) - 1 ,1) != '/'){
            header('Location: ' . $sReq . '/',TRUE,301);
            die;
}

В этом случае, все запросы к «директории», которые не заканчиваются на "/", будут перенаправляться с кодом 301 (Moved Permanently) на урл который заканчивается "/".

Ну и да, это очень любят поисковики.

З.Ы. Совершенно за, если кто-то скажет как это сделать лучше :)

UPD. Po6oT В комментариях, подсказал решение гораздо лучше моего.