Здравствуйте!
Не могу решить задачу, поставленную в заголовке
Пытаюсь сделать так, чтобы после создания basic page программно создавалась статья article.
Пользуюсь хуком hook_node_insert();
Код модуля:
<?php
function mymodule_node_insert ($node) {
if ($node->type = 'page') {
$my_node = new stdClass();
$my_node->type = 'article';
node_object_prepare($my_node);
$my_node->title = 'Title';
$my_node->language = LANGUAGE_NONE;
$my_node->body[LANGUAGE_NONE][0]['value'] = 'content';
$my_node->body[LANGUAGE_NONE][0]['summary'] = 'anons';
$my_node->body[LANGUAGE_NONE][0]['format'] = 'filtered_html';
$my_node->uid = 1; // необязательно
$my_node->status = 1; // необязательно
$my_node->promote = 1; // необязательно
node_save($my_node);
}
?>
В итоге при добавлении любого типа материала сайт зависает или хостинг возвращает "Ошибка 502. Сайт временно недоступен."
В чем косяк, почему он зацикливается?
Комментарии
Потому что не
а
А ещё лучше
<?php
if ($node->type === 'page') {
?>
Т.к. проверка на строгое равенство выполняется без приведения типа, соответственно просит меньше ресурсов.
Перед этим лучше поставить
<?php
$my_node->body = array();
?>
чтобы избежать возможных варнингов в журнале.
А ещё лучше
<?php
if ('page' === $node->type) {
?>
так называемые условия Йоды
Точно! Чертовые pascal-евские привычки с 9 класса школы ;)))
Вспомнил - прослезился.
точку с запятой забыл!