Помогите с AddEventPreg()
Для страницы прописаны следующие AddEventPreg:
А после я параметры уже разбираю в цикле вида:
Подскажите как-то можно сделать чтобы не было столько строк $this->AddEventPreg, если количество и порядок параметров абсолютно не важен? Дело в том, что нужно добавить еще параметры, а количество строк при этом растет в прогрессии.
protected function RegisterEvent() {
$this->AddEvent('index','EventShowAllBlog');
$this->AddEventPreg('/^[\w\-\_]+$/i','/^u(\d+)$/i','/^t(\d+)$/i','/^page(\d+)$/i','EventShowBlog');
$this->AddEventPreg('/^[\w\-\_]+$/i','/^u(\d+)$/i','/^t(\d+)$/i','EventShowBlog');
$this->AddEventPreg('/^[\w\-\_]+$/i','/^t(\d+)$/i','/^f(\d+)$/i','/^page(\d+)$/i','EventShowBlog');
$this->AddEventPreg('/^[\w\-\_]+$/i','/^t(\d+)$/i','/^f(\d+)$/i','EventShowBlog');
$this->AddEventPreg('/^[\w\-\_]+$/i','/^t(\d+)$/i','/^page(\d+)$/i','EventShowBlog');
$this->AddEventPreg('/^[\w\-\_]+$/i','/^t(\d+)$/i','EventShowBlog');
$this->AddEventPreg('/^[\w\-\_]+$/i','/^page(\d+)$/i','EventShowBlog');
$this->AddEventPreg('/^[\w\-\_]+$/i','EventShowBlog');
}А после я параметры уже разбираю в цикле вида:
foreach($this->aParamsEventMatch['params'] as $aParam) { /* действия */ }Подскажите как-то можно сделать чтобы не было столько строк $this->AddEventPreg, если количество и порядок параметров абсолютно не важен? Дело в том, что нужно добавить еще параметры, а количество строк при этом растет в прогрессии.
Что значит wrapper в подключении к БД
Строка кода из Database.class.php:
Очень интересно, зачем нужен «wrapper». На официальном сайте DbSimple не нашел информации по данному вопросу.
$sDSN=$aConfig['type'].'wrapper://'.$aConfig['user'].':'.$aConfig['pass'].'@'.$aConfig['host'].':'.$aConfig['port'].'/'.$aConfig['dbname'];Очень интересно, зачем нужен «wrapper». На официальном сайте DbSimple не нашел информации по данному вопросу.
Почему DBSimple?
2
Интересует вопрос, почему для движка был выбран модуль DBSimple? Есть ли какая-то причина помимо удобности составления SQL-шаблонов запросов? Может быть какая-то система встроена в него кеширования? Я просто думаю над перелопачиванием движка на PDO, вот и думаю, что потеряю при переходе на PDO?
Статусы дружбы
Хотелось бы узнать почему статусы в числовом представлении раскиданы именно в таком порядке:
Если кто-то вникал в систему, почему числа находятся в последовательности геометрической прогрессии, и что будет если поменять порядок к примеру на обратный.
const USER_FRIEND_OFFER = 1;
const USER_FRIEND_ACCEPT = 2;
const USER_FRIEND_DELETE = 4;
const USER_FRIEND_REJECT = 8;
const USER_FRIEND_NULL = 16;Если кто-то вникал в систему, почему числа находятся в последовательности геометрической прогрессии, и что будет если поменять порядок к примеру на обратный.
Количество новых сообщений
2
В движке реализована система личной переписки через модуль Talk. Как можно получить количество новых сообщений, стандартно ведь нет такой функции?
Время "запоминания" пользователя
19
Предлагаю способ как можно изменить время, на которое запоминается авторизация пользователя.
Версия: LiveStreet 0.4.2
1. Запишем в конфиг необходимое время авторизации.
Открываем config/config.php
На 54 строке находим:
После неё вставляем строку:
Где вместо 3 можете написать нужное количество дней.
2. Исправим функцию авторизации пользователя.
Открываем classes/modules/user/User.class.php
На 441 строке находим:
Меняем на:
Всё готово.
Версия: LiveStreet 0.4.2
1. Запишем в конфиг необходимое время авторизации.
Открываем config/config.php
На 54 строке находим:
$config['sys']['cookie']['path'] = '/'; // путь для установки куковПосле неё вставляем строку:
$config['sys']['cookie']['time'] = 60*60*24*3; // время установки куков (в секундах)Где вместо 3 можете написать нужное количество дней.
2. Исправим функцию авторизации пользователя.
Открываем classes/modules/user/User.class.php
На 441 строке находим:
setcookie('key',$sKey,time()+60*60*24*3,Config::Get('sys.cookie.path'),Config::Get('sys.cookie.host'));Меняем на:
setcookie('key',$sKey,time()+Config::Get('sys.cookie.time'),Config::Get('sys.cookie.path'),Config::Get('sys.cookie.host'));Всё готово.
Как определить что это текущий пользователь
1
Вот имеется стандартно в движке User.entity.class.php, вот кусок кода:
Читать дальше
class ModuleUser_EntityUser extends Entity {
public function getId() {
return $this->_aData['user_id'];
}
public function getLogin() {
return $this->_aData['user_login'];
}Читать дальше
Где разместить глобальную переменную?
Где можно объявить пользователя подобным образом:
Только главное условие, чтобы эти данные были доступны как в Smarty шаблонах(обязательно) так и во всех плагинах(если это возможно).
$this->oUserProfile=$this->User_GetUserCurrent();
$this->Viewer_Assign('oUserProfile',$this->oUserProfile);Только главное условие, чтобы эти данные были доступны как в Smarty шаблонах(обязательно) так и во всех плагинах(если это возможно).
Чистка кеша blog_relation
Подскажите как очистить кеш всех соотношений пользователя с блогами.
У меня каждый пользователь может участвовать более чем в 300 блогах. И мне нужно чистить кеш соотношений его с блогами. Так скажем кеш таблицы blog_user.
Я попробовал чистить так:
Где $arr — массив с идентификаторами блогов.
Но данный код при количестве блогов 300+ штук очень долго срабатывает.
У меня каждый пользователь может участвовать более чем в 300 блогах. И мне нужно чистить кеш соотношений его с блогами. Так скажем кеш таблицы blog_user.
Я попробовал чистить так:
$this->foreach($arr as $id=>$yes)
{
$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array("blog_relation_change_{$user_id}", "blog_relation_change_blog_{$id}"));
$this->Cache_Delete("blog_relation_user_{$id}_{$user_id}");
}Где $arr — массив с идентификаторами блогов.
Но данный код при количестве блогов 300+ штук очень долго срабатывает.