Помогите сделать выборку статей текущего автора.

Главные вкладки

Аватар пользователя fastpars fastpars 1 марта 2011 в 2:19

Привет. Как при помощи views или другими средствами сделать выборку статей в статье текущего автора?
Что есть?
id тасономии и id потомка ...

Вывод происходит непосредственно в page.tpl.php

Больше всего нужно правильно выбрать данные...

Комментарии

Аватар пользователя mak-vardugin mak-vardugin 1 марта 2011 в 2:38

через id юзера, и отобразить представление соответственно в блоке или страничке.
ну или запрос к базе на пхп писать.

Аватар пользователя SplasH SplasH 1 марта 2011 в 2:59

Создай в админке новый блок и вставь туда этот код (или в page.tpl.php запихнуть, если так удобнее):


<?php
  
if (arg(0) == 'node' && is_numeric(arg(1))) {
    
$user db_fetch_object(db_query('SELECT uid FROM {node} WHERE nid = %d'arg(1)));
    
$nodes db_query('SELECT nid, title FROM {node} WHERE uid = %d ORDER BY created DESC LIMIT 0, 10'$user->uid);
    while (
$node db_fetch_object($nodes)) {
      
$arr[] = l($node->title'node/'.$node->nid);
    }
    echo 
theme('item_list'$arr);
  }
?>

Он вытягивает 10 последних статей пользователя, который написал статью.

Если делаешь через блок - формат ввода - PHP code обязательно!

Аватар пользователя graker graker 1 марта 2011 в 8:34

SplasH wrote:

<?php
  
if (arg(0) == 'node' && is_numeric(arg(1))) {
  }
?>


Не надо проверять айдишники по is_numeric(). Айдишники надо проверять по ctype_digit(). На заметку.

Вот так правильно:

if (arg(0) == 'node' && ctype_digit(arg(1))) {
  $uid = db_result(db_query('SELECT uid FROM {node} WHERE nid = %d', arg(1)));
  $nodes = db_query('SELECT nid, title FROM {node} WHERE uid = %d ORDER BY created DESC LIMIT 0, 10', $uid);
  while ($node = db_fetch_object($nodes)) {
    $arr[] = l($node->title, 'node/'.$node->nid);
  }
  echo theme('item_list', $arr);
}
Аватар пользователя SplasH SplasH 1 марта 2011 в 13:03

"kosilko" wrote:
ахуенный сниппет. И где ж вы все это находите....

Сами пишем Smile
"graker" wrote:
Не надо проверять айдишники по is_numeric(). Айдишники надо проверять по ctype_digit(). На заметку.

Спасибо, буду знать