Возникла проблема при сохранении текста, содержащего хтмл теги
Код
<?php
$text = '
<h3><a id="1" name="1">Заголовок</a></h3>
<p>текст</p>
.... много текста
<p>текст</p>
';
$node = new stdClass();
$node->title = 'Заголовок';
$node->body = $text;
$node->type = 'page';
$node->created = time();
$node->changed = time();
$node->path = 'about';
$node->status = 1;
$node->promote = 1;
$node->sticky = 0;
$node->format = 3; // формат ввода, 3 - php
$node->uid = 1;
node_save($node); // сохраняем
?>
Как видим формат ввода установлен в 3, что соответсвует php фильтру
Текст не сохраняется. Простой текст сохраняется
Озанчает ли это, что при сознании ноды через node_save() настройки фильтра игнорируются и применяется некий дефолтный фильтр?
Или я чего упустил?
Комментарии
И вдогонку ещу:
игнорируется $node->path, нода имеет путь, который задан в pathauto для типов нод, для которых не установлен шаблон генерирования адресов, те content/bla-bla
Все получилось, вот так:
$node = new stdClass();
$node->type = 'page';
$node->title = 'Test';
$node->body = '<?php print 1; ?><h3><a>Заголовок</a></h3><p>текст</p>';
$node->format = '3';
$node->path = 'test-1';
$node->pathauto_perform_alias = 0;
$node->uid = 1;
$node->language = 'ru';
node_save($node);
?>
created, changed можно не задавать.
status, promote, sticky тоже — они будут по-умолчанию для этого типа. А вот язык я бы задал.
нет
в базу сохраняется то что ввел. Фильтры применяются уже при показе содержимого.
<?php
$node
->body = '<?php print 1; ?><h3><a>Заголовок</a></h3><p>текст</p>'; ?>Ммм, не понял зачем зачем <?php print 1; ?>?
<?php
$node->pathauto_perform_alias = 0;
?>
Спасибо
Да, я обосрался, извините
Не заметил, что обернул node_save другой функцией, а переменные с длинным текстом были за пределами её
Всё работает теперь