Как вызвать поле Body пользовательского типа контента из базы данных для показа в блоке? - PullRequest
0 голосов
/ 16 февраля 2012

Для моего пользовательского типа содержимого я использовал файл .install, чтобы установить пользовательские поля и создать форму, аналогичную следующей:

function inep_form($node, $form_state) {
    return node_content_form($node, $form_state);
}

И я добавил поле Body и поле Image в моем inep.install:

...
node_add_body_field($types['inep']);
$instance = field_info_instance('node', 'body', 'inep');
$instance['type'] = 'text_summary_or_trimmed';
field_update_instance($instance);
...

И поле изображения с:

...
'field_name' => 'image_upload',
...

И теперь у меня есть ошибка для вызова тела и поля изображения из базы данных для показа в:

inep_block_view($delta='') {
    ...
    $result = db_select('node', 'n')
    ->fields('n', array('nid', 'title', 'body', 'image_upload'))
    ->condition('type', INEP_NODE_TYPE)
    ->condition('status', 1)
    ->execute();
    ...
}

! PDOException: SQLSTATE [HY000]: общая ошибка: 1 нет такого столбца: n.body ...

Это означает, что они не хранятся в базе данных?!

Но я могу редактировать свои поля позже ...

А также пробовал "body ['und'] [0] ['value']", но та же ошибка,

1 Ответ

0 голосов
/ 18 февраля 2012

решаемая. Стандартное поле тела добавлено в другую таблицу с именем «field_data_body», а не в таблице узлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...