Smith46
@Smith46
Начинающий WEB-developer

Как вывести несколько полей в php в (field_view_field) или как переделать данную функцию?

Подскажите как вывести несколько полей из БД на страничку в Друпал 7, есть данный модуль Цитат на сайте который выводит рандомную цитату один раз в день.
В типах материала добавил поле автора цитаты(раньше этого поля не было в админке)
При публикации соответственно заполняю поле цитаты и поле автора, цитата выводится, автор нет, так как его поле не описано в модуле. Буду признателен за помощь.

Выделил часть кода где выводит поле цитаты на страничку , мне нужно добавить вывод поля автора этой цитаты (field_name_of_book)

Я разобрался как вывести кустарным способом поле автора.
<?php

function quote_of_the_day_block_info() {
  $blocks['quote'] = array(
    'info' => t('Quote of the day'),
    'cache' => DRUPAL_NO_CACHE,
    'weight'=> -99,
    'status' => TRUE,
    'region' => 'content',
    'visibility' => BLOCK_VISIBILITY_LISTED,
    'pages' => '<front>',
  );
  return $blocks;
}

// Опредиление имяни блока, и его содержания
function quote_of_the_day_block_view($delta = '') {
  $block = array();
  if ($delta == 'quote') {
    $block = array(
      'subject' => '',
      'content' => quote_of_the_day_print_term(),
    );
  };
  return $block;
}

function quote_of_the_day_print_term() {
  $date = date("Y-m-d");
  $query = db_select('quote', 'q');
  $query->fields('q', array('node_id'));
  $query->condition('q.date', $date, '=');  // раз в день
  $result = $query->execute();

  $results_id = array();
  foreach($result as $row)
    array_push($results_id, $row->node_id);
    $result = $row->node_id;

  $one_res_id = [$results_id[$rand_results_id]];
  $two_res_id = 602;
  $res_id_arr = array_push($one_res_id, $two_res_id);
  $rand_res_id = array_rand($one_res_id, 1);*/

$node = node_load($result);
  $output = field_view_field('node', $node, 'field_quotation_text');
  $output = render($output);
  return $output;
}

/**
 * Implements hook_node_insert().
 */
function quote_of_the_day_node_insert($node) {
  if ($node->type == 'rundom_text') {
    db_merge('quote')
      ->key(array('node_id' => $node->nid))
      ->fields(array(
        'node_id' => $node->nid,
        'worked_quote' => NULL,
        'date' => NULL,
      ))
      ->execute();
  }
}

function quote_of_the_day_node_delete($node) {
  if ($node->type == 'rundom_text') {
    db_delete('quote')
      ->condition('node_id', $node->nid)
      ->execute();
  }
}
  • Вопрос задан
  • 29 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы