+0.08
Рейтинг
19.36
Сила

Паша Pasha

Управлятор как на Nulled


Как удобнее или полезнее перенести панель пользователя в управлятор?

Нащел код данной панели. Демо здесь
Скачать можно здесь
Статья на хабре
Мысли:
На ушке данной панели Для не зарегистрированных или не авторизованных (Здраствуй гость |Вход|Зарегистрироватся)
А зарегистрированым (login|mail)

ЕСЛИ ЗАКАЗЫВАТЬ КАК ПЛАГИН, СКОЛЬКО ЭТО БУДЕТ СТОИТЬ?

Логины на кириллице

Возникла потребность сделать возможность пользователям обзываться по-русски.
Казалось бы, UTF-8, все дела — но нет: то ли из-за потенциальной возможности сделать каждому по поддомену, то ли еще почему-то, логины можно делать только латиницей.

Мне поддомены не нужны, поэтому вот решение:
В файле /classes/actions/ActionProfile.class.php в функции RegisterEvent дополняем в регэкспах \w сочетанием \p{L}
$this->AddEventPreg('/^[\w\p{L}\-\_]+$/i','/^(whois)?$/i','EventWhois');				
$this->AddEventPreg('/^[\w\p{L}\-\_]+$/i','/^favourites$/i','/^comments$/i','/^(page(\d+))?$/i','EventFavouriteComments');			
$this->AddEventPreg('/^[\w\p{L}\-\_]+$/i','/^favourites$/i','/^(page(\d+))?$/i','EventFavourite');

\w — любой строковый символ, но не юникодовский (и не кириллица)
\p{L} — любая буква юникода, конструкции друг друга отлично дополняют.

Следующий этап: правка функции проверки логина на валидность.
Находится она в файле /engine/includes/function.php и обзывается func_check()
Там тоже регулярные выражения, которые правим аналогично предыдущему файлу.

Во время тестирования регистрации я столкнулся с другим глюком: логин передавался в cp1251, а обрабатывался в юникоде. Конечно, валидатор его не понимал! Для этого лезем в файл /classes/actions/ActionRegistration.class.php и правим там функцию EventIndex(), переписав проверку логина так:
/**
 * Проверка логина
 */
$utf8 = false;
if (!func_check(getRequest('login'),'login',3,30)) {
if (!func_check(iconv('windows-1251', 'utf-8', getRequest('login')),'login',3,30)) {
	$this->Message_AddError($this->Lang_Get('registration_login_error'),$this->Lang_Get('error'));
	$bError=true; // Маленький обходной маневр для поддержки кириллицы в логинах
	} else $_REQUEST['login'] = iconv('windows-1251', 'utf-8', getRequest('login'));
}

В случае, если проверка логина провалилась, мы его проверяем еще раз в UTF. Если проверка удалась, то в _REQUEST меняем login из cp1251 в utf-8, чтоб потом не заморачиваться.

В общем, теперь можно наслаждаться кириллическими именами пользователя. И заводить тему в FAQ'е под названием «Не могу войти»;)

Статичная страница на главной

Собственно сабж. Недавно начал разбираться с движком, но такой функции так и не нашел.
Как можно сделать вывод статичной страницы на главную? По умолчанию стоит /blog/

Заранее спасибо

upd. 04.10.2010:

В конфиге www\config\config.php
ищем:
$config['router']['config']['action_default'] = 'index';

меняем на:
$config['router']['config']['action_default'] = 'page';


В экшене плагина (www\plugins\page\classes\actions\ActionPage.class.php добавляем новый экшен
В функцию
protected function RegisterEvent() {
		$this->AddEvent('admin','EventAdmin');
		$this->AddEventPreg('/^[\w\-\_]*$/i','EventShowPage');
	}


Добавляем экшен по умолчанию (вместо «about» вашу страницу):
protected function RegisterEvent() {
		$this->AddEvent('admin','EventAdmin');
		$this->AddEventPreg('/^[\w\-\_]*$/i','EventShowPage');
		$this->SetDefaultEvent('about');
	}


Спасибо ort и DezMax за подсказку.

Дополнительное поле при создании поста

Создал дополнительное поле при создании/редактировании поста — Ссылка на источник, все работает нормально, но вот проблема, ссылка отображается как простой текст. Вроде как, для отображения как ссылки, нужно что-то добавить в ActionTopic.class.php (у меня версия 0.3.1) в разделы «Парсим на предмет ХТМЛ тегов», но вот что не могу сообразить, может кто что-нибудь посоветует.
подробности под катом

Обработка изображений: crop, watermark, скругление углов



В новой версии livestreet намного улучшена работа с изображениями (и в плане качества, и в плане гибкости). Для обслуживания всевозможных операций с изображениями отведен специальный engine-модуль Image.

Коротко о том, что появилось нового:

1. Решена проблема с некрасивым ресайзом неквадратных аватарок (путем предварительного вырезания наибольшего возможного квадрата).

2. Устранены «почти» все проблемы с обработкой alpha и non-alpha прозрачности («почти»=«на столько на сколько это вообще возможно сделать с помощью PHP+GD2»). По крайней мере прозрачные png теперь можно использовать в аватарках спокойно.

3. Формирование HTML кода выводимого изображения централизировано в одной функции Image_BuildHTML(), которая запрашивает путь к изображению и дополнительные параметры (title,alt,align).

4. Watermark: возможность автоматически добавлять на загружаемые изображения надписи или изображения с достаточно гибкой конфигурацией (пример надписи см выше).

5. Закругление углов изображения.

О том, как пользоваться 4 и 5 поговорим подробнее.

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

Новые возможности форматирования дат

В версии 0.4 значительно улучшены возможности по работе с датами. Ввиду большого числа писем по этому поводу, опишу здесь основные моменты и правила пользования новыми параметрами форматирования дат:

0. Вступление.

За оформление даты в Smarty-шаблоне отвечает тот же, что и раньше, smarty-тег {date_format}. Тег требует только один обязательный параметр 'date' — собственно дата. Простейший вариант вывода:
{date_format date=$oTopic->getDateAdd()}

в результате получаем самый обычный:
10 декабря 2009, 00:35

Информация для разработчиков: date_format работает теперь не через функцию в function.php, а через специально написанный для движка smarty-плагин.


Дополнительные параметры формата

ItemSelect

Помогите пожалуйста. Столкнулся с проблемой. Существует 4 ссылки в меню:
Начало (корень сайта)
Люди (/people)
Блоги (/blogs)
Прямой эфир (/comments)


При сёрфинге находясь на из этих страниц — ссылка выделяется за счёт свойства if $sMenuHeadItemSelect
Проблема в том что оно подходит только для Блогов ({if $sMenuHeadItemSelect=='blog'}) и Люди ({if $sMenuHeadItemSelect=='people'}). Для других я не могу подобрать свойства. Подскажите пожалуйста свойства для главной страницы и прямого эфира.