Default value в Node reference

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

Аватар пользователя Petro Petro 8 января 2010 в 22:31

Господа, помогите. Сайт журнала. Создаю два типа материалов статья и содержание (выпуск) журнала. Когда создаю статью - указываю к какому номеру журнала она относится - поле CCK Node reference - в нем выбираю из списка созданных журналов. Таким образом содержание формируется автоматически. Как сделать чтобы в поле выбора номера журнала по умолчанию стоял последний номер? Т.е. последняя по дате нода типа содержание? Я так понимаю надо ввести PHP код в Default value. Но так как я не программист, то будьте добренькими, подскажите заветный кодик?

Комментарии

Аватар пользователя Nikit Nikit 9 января 2010 в 6:37
return db_result(db_query_range('select n.nid from {node} n where n.type="ЖУРНАЛ" AND n.status=1 ORDER BY n.created DESC', 0, 1));

если неохота программировать, подключите Views, сортированный по убыванию даты, хоть и не будет по умолчанию, затем в самом вверху списка.

Аватар пользователя Petro Petro 9 января 2010 в 8:38

Чето не получается: код пишу
return db_result(db_query_range('select n.nid from {node} n where n.type=journal AND n.status=1 ORDER BY n.created DESC', 0, 1));

в ответ:

    * user warning: Unknown column 'journal' in 'where clause' query: select n.nid from node n where n.type=journal AND n.status=1 ORDER BY n.created DESC LIMIT 0, 1 in /home/aisbyorg/www/aisby.org/modules/cck/includes/content.admin.inc(1247) : eval()'d code on line 1.
    * The default value PHP code returned an incorrect value.
      Expected format:

      return array(
        0 => array('

nid' => value for nid),
        // You'
ll usually want to stop here. Provide more values
        // if you want your 'default value' to be multi-valued:
        1 => array('nid' => value for nid),
        2 => ...
      );

      Returned value:

Аватар пользователя Nikit Nikit 9 января 2010 в 10:38

двойные кавычки почему убираем на journal, будьте внимательны.
Забыл этот массив на возврат, тогда вот так:

$result = array();
$nid = db_result(db_query_range('select n.nid from {node} n where n.type="journal" AND n.status=1 ORDER BY n.created DESC', 0, 1));
$result[0] = array('nid'=>$nid);
return $result;
Аватар пользователя Dan Dan 10 января 2010 в 19:34

"Petro" wrote:
Это конечно неплохо, но последнее время стараюсь минимизировать количество модулей

Каким образом? Бездумно отказываться от модулей в строну сниппетов, хаков в теме и т.д. - не очень хорошая идея, ведущая в сторону повышения нагрузки.