+1.59
Рейтинг
7.07
Сила

Zarayan

Хак: Автозаполнение для поиска

Давненько я не писал… и так к делу.
Автозаполнение/подсказки (autocomplete) для поиска современная и весьма полезная вещь. Тут просматривая ЛС обнаружил, что данная функция здесь отсутствует.

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

Делаем Голос, как на Хабре!

Всем привет, не хватет кармы для постинга в нужный форум, просьба накинуть.
Решил выложить свой способ создания «Голоса» (Хабр).
Приступим:

1. Создаем новый коллективный блог(Голос), узнаем его ID (blog_id) в таблице prefix_blog в базе данных

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

Автоматическое подключение блога. Хак.

upd 15/05/10: для тех у кого были проблемы со счетчиком количества подписчиков — архив хака обновлен с инструкциями и функцией для устранения недочета.
Для версии 0.4 выпущен плагин. (тема)


По просьбам выкладываю хак автоматического присоеднинения к блогу, в который юзер опубликовал свой топик.

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

Для тех, у кого нету изменений в движке хак выложен архивом в разделе бесплатных модулей =>Здесь. Для тех у кого есть изменения, или кому невтерпежь ждать модерации,(пройдена) вся информация под катом.


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

Реферальная система начисления рейтинга

Навеяно http://livestreet.ru/blog/2375.html#comment29060
4. Сюдаже сотворил бы партнерку по привлечению «писателей», привел %юзернейм% друга, друг написал 50 годных постов, %юзернейм% получил балы

Только я сделал немного иначе. Просто начисляю копеечку с каждого поста того, кого инвайтили.

см начало в http://livestreet.ru/blog/2379.html

ls\classes\actions\ActionTopic.class.php

		// добавляем рейтинг пригласившему нас по инвайту
		$oUserInviteFrom=$this->User_GetUserInviteFrom($this->oUserCurrent->getId());
		if ($oUserInviteFrom!=NULL) {
			$oUserInviteFrom->setSkill($oUserInviteFrom->getSkill()+0.02);
			$oUserInviteFrom->setRating($oUserInviteFrom->getRating()+0.001);
			$this->User_Update($oUserInviteFrom);
		}

Начисление силы и рейтинга за посты

Предыстория.

Есть молодой блог по инвайтам, в который запустили 10 человек.
Эти люди переносят свое творчество.

Ожидается через неделю-другую открыть регистрацию для всех.
И что же увидит молодняк?
Кучу юзеров и тем с 0 рейтингом (мы друг друга знаем и все труды тоже. основное время тратим на перенос, а не на чтение)

Что бы это избежать, было решенно ввести премирование за написание постов.

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

Модуль мотивации пользователей

Привет, вот тут, была высказана здравая мысль о необходимости подобного модуля, я немного добавил функционала и предоставляю на суд общественности (да, и вероятность наличия багов не нулевая, совсем досконально не тестил)
Читать дальше →

Многоязычный сайт на базе ЛС - продолжение

Как и прежде, модуль многоязычной поддержки входит в пакет модуля Админпанель. Но в версии 1.2.98 была сделана одна небольшая доработка, немного облегчающая жизнь тем, кого эта тема (многоязычные сайты на базе ЛС) интересует.

А именно — если раньше выбранный пользователем язык сохранялся только на время сессии, то теперь его можно сохранять в куках. Т.е. выбрал юзер свой язык, отличный от установки LANG_CURRENT, и этот выбор (если заданы соответствующие установки) будет действовать и при последющих заходах юзера на сайт с этого компьютера.

Как это сделать? Открываем файл /config/modules/language/config.php и задаем параметр:
define('LANG_SAVE_DAYS', 365);
Число указывает, сколько дней будет храниться выбранный язык.

И еще один вопрос часто задают: а как сделать выбор языка? Мне казалось, что я достаточно подробно об этом писал здесь: livestreet.ru/blog/2109.html. Но, видимо, нужен конкретный пример, как организовать «мультиязычность». Поэтому вот вам пример на базе скина new.
1. Открываем шаблон header_nav.tpl
2. Находим форму поиска
<div class="search">
  <form action="{$DIR_WEB_ROOT}/{$ROUTE_PAGE_SEARCH}/topics/" method="GET">
    <input class="text" type="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=''" value="{$aLang.search}" name="q" />
    <input class="button" type="submit" value="" />
  </form>
</div>

3. После закрывающего тега </form> вставляем такой код:
<!-- +++ Language settings +++ -->
<div class="language" style="position: relative; top: -30px; ">
  <a href="{$DIR_WEB_ROOT}/language/russian"><img src="{$DIR_STATIC_ROOT}/templates/language/flags/ru.png" alt="Russian" title="Russian" /></a>
  <a href="{$DIR_WEB_ROOT}/language/english"><img src="{$DIR_STATIC_ROOT}/templates/language/flags/gb.png" alt="English" title="English" /></a>
</div>
<!-- --- Language settings --- -->

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

ЗЫ Прошу гуру за говнокод не пинать, т.к. это всего лишь пример. Хотя и вполне рабочий. :)

ЗЗЫ А кртинки с флажочками, нужными для работы примера реально лежат в папке /templates/language/flags/

Хак: рассылка инвайтов

В ситуации когда нужно отослать 10 или 20 или 100 инвайтов, после ввода N адреса почты, хочется залесть в код и исправить чтоб можно было вводить кучу адресов, например через точку запятую, а не по одному. Собственно так и родился данный хак.

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

Автосохранение черновика при создании записи

Уверен, из названия топика ясно чем мы будем заниматься. Для того, чтобы цель выглядела «материальнее»:

Скриншоты:
Автосохранение запрещено

Автосохранение разрешено

Сообщение об успешности или ошибке — стандартный Notice в правом верхнем углу.
Реализация.


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