Как я создаю узел из задания крона в drupal?

[^\u0000-\u007F]+ для любых символов, которые не включены в символы ASCII.

Например:

function isNonLatinCharacters(s) {
    return /[^\u0000-\u007F]/.test(s);
}

console.log(isNonLatinCharacters("身分"));// Japanese
console.log(isNonLatinCharacters("测试"));// Chinese
console.log(isNonLatinCharacters("حمید"));// Persian
console.log(isNonLatinCharacters("테스트"));// Korean
console.log(isNonLatinCharacters("परीक्षण"));// Hindi
console.log(isNonLatinCharacters("מִבְחָן"));// Hebrew

Вот несколько отличных ссылок:

Unicode range RegExp generator

Регулярные выражения Unicode

Unicode 10.0 Коды символов

Соответствует диапазону блоков Unicode

7
задан Isaac Waller 29 August 2009 в 03:46
поделиться

5 ответов

Я не знаю о стандартном API для создания узла практично. Но это - то, что я подобрал из создания модуля, который делает то, что Вы пытаетесь сделать.

  1. Удостоверьтесь, что важные поля установлены: uid, имя, тип, язык, заголовок, тело, фильтр (см. node_add() и node_form())
  2. Передайте узел через node_object_prepare() таким образом, другие модули могут добавить к объекту $node.
6
ответ дан 6 December 2019 в 06:38
поделиться

Еще один ответ, который я обнаружил, должен был использовать пример от blogapi модуля в drupal ядре. То, что это находится в ядре, вселяет мне немного больше веры, что это продолжит работать в будущих версиях.

0
ответ дан 6 December 2019 в 06:38
поделиться

node_save () все еще хорошо работает в Drupal 6; Вам будут нужны несколько определенных частей данных на месте, чтобы заставить его работать.

$node = new stdClass();
$node->type = 'story';
$node->title = 'This is a title';
$node->body = 'This is the body.';
$node->teaser = 'This is the teaser.';
$node->uid = 1;
$node->status = 1;
$node->promote = 1;

node_save($node);

'Состояние' и 'Продвигает', легки пропустить - если Вы не установите их, то узел останется неопубликованным и непродвинутым, и Вы будете только видеть, переходите ли Вы к экрану администрирования содержания.

9
ответ дан 6 December 2019 в 06:38
поделиться

Выше существуют некоторые хорошие ответы, но в определенном примере превращения поглощенного объекта канала в узел, Вы могли также проявить подход использования simplefeed модуля (http://wwww.drupal.org/project/simplefeed). Этот модуль использует simplepie механизм для поглощения подачи и поворачивает отдельные объекты из каждого канала в узлы. Я понимаю, что это конкретно не решает проблему создания узлов от крона, но это могло бы быть более легкое решение Вашей проблемы в целом.

0
ответ дан 6 December 2019 в 06:38
поделиться

Метод лучших практик того, чтобы заставлять это произойти должен использовать drupal_execute. drupal_execute выполнит стандартную проверку и основные операции узла так, чтобы вещи вели себя способ, которым ожидает система. drupal_execute имеет свои причуды и немного менее интуитивен, чем просто node_save, но в Drupal 6 можно использовать drupal_execute следующим способом.


$form_id = 'xxxx_node_form'; // where xxxx is the node type
$form_state = array();
$form_state['values']['type'] = 'xxxx'; // same as above
$form_state['values']['title'] = 'My Node Title';
// ... repeat for all fields that you need to save
// this is required to get node form submits to work correctly
$form_state['submit_handlers'] = array('node_form_submit');

$node = new stdClass();
// I don't believe anything is required here, though 
// fields did seem to be required in D5

drupal_execute($form_id, $form_state, $node);

12
ответ дан 6 December 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: