[^\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
Вот несколько отличных ссылок:
Я не знаю о стандартном API для создания узла практично. Но это - то, что я подобрал из создания модуля, который делает то, что Вы пытаетесь сделать.
node_add()
и node_form()
)node_object_prepare()
таким образом, другие модули могут добавить к объекту $node.Еще один ответ, который я обнаружил, должен был использовать пример от blogapi модуля в drupal ядре. То, что это находится в ядре, вселяет мне немного больше веры, что это продолжит работать в будущих версиях.
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);
'Состояние' и 'Продвигает', легки пропустить - если Вы не установите их, то узел останется неопубликованным и непродвинутым, и Вы будете только видеть, переходите ли Вы к экрану администрирования содержания.
Выше существуют некоторые хорошие ответы, но в определенном примере превращения поглощенного объекта канала в узел, Вы могли также проявить подход использования simplefeed модуля (http://wwww.drupal.org/project/simplefeed). Этот модуль использует simplepie механизм для поглощения подачи и поворачивает отдельные объекты из каждого канала в узлы. Я понимаю, что это конкретно не решает проблему создания узлов от крона, но это могло бы быть более легкое решение Вашей проблемы в целом.
Метод лучших практик того, чтобы заставлять это произойти должен использовать 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);