Рейтинг
0.00
голосов:
0
avatar

Rate Framework  

Скажем хакам "нет!" или как использовать плагины

Часто возникают ситуации, когда надо вставить свои изменения в чужой код. Причем такие изменения которые не будут там постоянно, а нужны толко на какое-то время. Например на время конкурса.
Обычно это делается при помощи if'ов, констант и других тем (т.н. «Хаки»). Код становится запутанным, непонятным. Можно обойтись и без этого.

Расскажу про конкретный случай — «конкурс блогов», который проходил на Wsetut.uz.



( Читать дальше )

Использование модели Site_User

Каждый раз когда надо выбрать данные ползователей, приходиться ваять запрос который эти самые данные берет из базы.
Мне это порядком надоело. Запихал этот запрос в модель Site_User.

Допустим у нас есть пачка id пользователей и нам надо получить их детали, чтобы вывести на странице. Делаем так:

$user_list = array(10,11);
$users = Site_User::getByIdArray($user_list);


Функция принимает два параметра: getByIdArray(Array $idArray, $onlyActiveUsers = TRUE).

NB! Если код используется вне фреймворка, то надо предварительно вызвать функцию init_fw(), которая инициализирует фреймворк. Ресурсов это много не берет. Просто прописываются нужные пути для загрузки классов. Если не уверены нужно ее вызывать или нет, то лучше вызвать — там стоит проверка на то, запускалась она уже или нет.

В массиве $users теперь лежат объекты пользователей. Ключ массива — id ползователя.

Очень часто бывает нужно для какой-нибуть старой функции преобразовать объект в массив данных. МОжно сделать с объектом так:

printr($users[10]->as_array());


Этот код выведет:
Array
(
    [id] => 10
    [status] => 1
    [username] => zebra
    [password] => 123
    [mail] => yetrix007@hotmail.com
    [hide] => 1
    [news] => 0
    [gender] => F
    [height] => 172
    [birthdate] => 1976-10-24
    [birthday] => 298
    [age] => 30
    [hide_age] => 0
    [country] => 239
    [region] => 2013
    [town] => 38
    [site] => 
    [greeting] => 
    [lastip] => 80.235.48.249
    [registered] => 2002-04-30 14:47:19
    [visited] => 2009-05-11 14:50:20
    [changed] => 2007-05-15 16:10:42
    [added_pics] => 2007-05-18 22:46:35
    [added_pics_id] => 11339586
    [last_pics_id] => 11339586
    [changed_status] => 2008-10-20 15:09:27
    [postings] => 3
    [p1] => 2
    [p2] => 0000-00-00 00:00:00
    [p3] => 
    [p4] => 0
    [skin] => 1
    [pics] => 5
    [friends] => 1
    [friends2] => 1
    [type] => 13
    [family] => 3
    [style] => 11
    [speciality] => 4
    [education] => 5
    [j_postings] => 4
    [online_type] => 1
    [orientation] => 0
    [teacher_id] => 0
    [time_spent] => 0
    [slideshow] => 0
    [smile_service] => 1
    [status_with_smiles] => 
    [is_online] => 0
)


Вторая тема, которую мне лень делать каждый раз это получать руками картинку пользователя.
Чтоб не думать про то как добыть картинку юзера, я добавил вот такую вот функцию:

$url = $users[10]->getPictureUrl(Site_Pic::PICTURE_60x60);
printr($url);


или просто:

$url = $users[10]->getPictureUrl();
printr($url);


Тогда вернется дефолтовая маленькая картинка 60x60.

Вообще есть три размера:

Site_Pic::PICTURE_BIG
Site_Pic::PICTURE_SMALL
Site_Pic::PICTURE_60x60


Юзайте на здоровье.