Реализация модуля доски объявлений
Для начала добавим в проект папку mp_dashboard, в которую поместим файл модуля mp_dashboard.module. При этом оказалось, что я забыл проассоциировать расширение .module с редактором PHP. Исправил, добавил ассоциации и вот, при дабл-клике на наш файл он открывается с подсветкой синтаксисиса PHP.
Вначале надо установить возможные права доступа. Это делается с помощью простой функции
function mp_dashboard_perm() {
return array(“access mp_dashboard”, “administer mp_dashboard”);
}
В нашем случае назначено только два уровня доступа: использование и администрирование.
После этого необходимо реализовать функцию хука access. Это делается с помощью простой функции:
function mp_dashboard_access($op, $node, $account) {
global $user;
if ($op == ‘access’) {
return user_access(‘access mp_dashboard’);
}
}
Естественно, что данный блок должен имплементировать, по крайней мере, один пункт меню. Хук menu может быть реализован следующей функцией:
function mp_dashboard_menu() {
$items = array();
$items['dashboard'] = array(
‘title’ => t(‘Dashboard’),
‘page callback’ => ‘dashboard_page’,
‘access callback’ => ‘user_access’,
‘access arguments’ => array(‘access mp_dashboard’),
‘weight’ => 1
);
return $items;
}
Наш модуль предоставляет пользователям два блока. Первый отображает полную финансовую и статистическую информацию и представляет собой целую страницу. Второй блок показывает только самые основные данные и может располагаться на левом сайдбаре.
Функция для показа блока выглядит следующим образом:
function mp_dashboard_block($op=‘list’, $delta=0) {
if ($op == “list”) {
$blocks[0]["info"] = t(“Dashboard”);
return $blocks;
} else if ($op == ‘view’) {
$blocks['subject'] = t(‘Dashboard’);
$blocks['content'] = ‘Это краткая доска объявлений‘;
return $blocks;
}
}
Сама страница генерируется с помощью вот этой функции:
function dashboard_page($tid = 0){
global $dashboard;
dashboard_load_data();
$rows = array();
$rows[] = array(
array(‘data’ => t(‘Balance’), ‘width’ => ‘200′, ‘class’=>‘dashboard_title_1′),
array(‘data’=>$dashboard->balance.‘$ [ '.l('Пополнить', '').' ]‘)
);
$output = theme(‘table’, $header, $rows);
$output .= theme(‘pager’, NULL, 30, 0);
return $output;
}
Где $dashboard – глобальная переменная, содержащая все данные доски объявлений текущего пользователя, а dashboard_load_data() – функция для извлечения этих данных из базы.
Как вы понимаете, для доски объявлений необходима таблица, обновляющая определенные записи не чаще раза в десять минут. Для чего это нужно я уже писал раньше.
Установка модуля занимает немного времени – достаточно просто залить модуль на сервер, зайти в админку на страницу модулей и активировать его. После чего необходимо зайти в раздел блоков и установить блок доски объявлений в левую колонку, установив видимость этого блока только для зарегистрированных пользователей.
Вы можете посмотреть на нашу доску объявлений на сервере разработки. Естественно, что для этого вам придется зарегистрироваться в системе и войти в нее.



Последние комментарии