Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; GeSHi has a deprecated constructor in /var/www/u2955091/data/www/drupalfly.ru/libraries/geshi/geshi.php on line 259

вывод списка пользователей и редактирование

10.04.2015

список пользователей я вывел:
$perpage = 10;
$rows = array();
//хедер нашей таблицы
$header = array(
array('data'=>'UID', 'field'=>'uid'),
array('data'=>'Имя', 'field'=>'name'),
array('data'=>'Был', 'field'=>'login'),
array('data'=>'e-mail', 'field'=>'mail'),
array('data'=>'Активен', 'field'=>'status'),
array('data'=>'Подпись', 'field'=>'signature'),
);
//сам запрос, подробнее о нем api.drupal.org/api/drupal/includes--database--database.inc/function/db_select/7
$nodes = db_select('users','usrs')
->fields('usrs', array('uid','name','login','mail','status','signature'))
->extend('PagerDefault')
->limit(10)
->extend('TableSort')
->orderByHeader($header)
->execute();

$rows = array();
foreach ($nodes as $node) //проходим по результату в цикле формируя таблицу
{
$rows[] = array(
check_plain($node->uid),
check_plain($node->name),
format_date($node->login),//форматируем число в дату
check_plain($node->mail),
check_plain($node->status),
check_plain($node->signature)
);
}
//формирование и вывод таблицы с пейджером
$output = theme('table', array('header'=>$header,'rows'=>$rows));
$output .= theme('pager');

return $output;
НО хотелось бы добавить на страницу кнопки - вызов формы удаления, редактирования и добавления пользователя, я друпал только начал изучать и пока не могу найти нужного решения

-->
Узнавай о новых статьях сайта - первым. Просто подпишись на рассылку.

Комментарии (1)

Profile picture for user pantey
pantey
17.07.2015

редактирование пользователя имеет следующий URL

http://sitename.com/user/[uid]/edit

где [uid] - id пользователя
Соответственно, вам необходимо добавить в header и body ваше таблицы дополнительное поле и код примет следующий вид:

<?php
  $perpage = 10;
  $rows = array();
  //хедер нашей таблицы
  $header = array(
  array('data'=>'UID', 'field'=>'uid'),
  array('data'=>'Имя', 'field'=>'name'),
  array('data'=>'Был', 'field'=>'login'),
  array('data'=>'e-mail', 'field'=>'mail'),
  array('data'=>'Активен', 'field'=>'status'),
  array('data'=>'Подпись', 'field'=>'signature'),
  array('data'=>'Редактировать'),
  );
  //сам запрос, подробнее о нем api.drupal.org/api/drupal/includes--database--database.inc/function/db_select/7
  $nodes = db_select('users','usrs')
  ->fields('usrs', array('uid','name','login','mail','status','signature'))
  ->extend('PagerDefault')
  ->limit(10)
  ->extend('TableSort')
  ->orderByHeader($header)
  ->execute();

  $rows = array();
  foreach ($nodes as $node) //проходим по результату в цикле формируя таблицу
  {
  $rows[] = array(
    check_plain($node->uid),
    check_plain($node->name),
    format_date($node->login),//форматируем число в дату
    check_plain($node->mail),
    check_plain($node->status),
    check_plain($node->signature),
    l(t('Редактировать'), 'user/' .$node->uid .'/edit'),
  );
  }
  //формирование и вывод таблицы с пейджером
  $output = theme('table', array('header'=>$header,'rows'=>$rows));
  $output .= theme('pager');

  return $output;