Скрипт заполнения поля "scheduler.publish_on" при импорте node_import

Главные вкладки

Аватар пользователя Pan4eZzz Pan4eZzz 27 сентября 2010 в 0:21

Те кто вплотную работают с отложенными публикациями должны были столкнуться с этим. Бывают случаи когда необходимо воспользоваться node_import, и при этом хочется чтобы ноды опубликовались не сразу я по заранее заданному графику (в этом может помочь scheduler), но во время импорта невозможно заполнить поле "publish on", которое отвечает за дату публикации, зато можно импортировать поле "дата создания".

Запустив код ниже произойдет автоматическое заполнение полей "publish on" для материалов дата создания которых будет заданна познее текущей.

<?php

// конфиг
$dbhost 'localhost';
$dbname 'имя_базы';
$dblogin 'логин_к_базе';
$dbpass 'пас_к_базе';

$link = [user=mysql_connect]mysql_connect[/user]($dbhost$dblogin$dbpass// подключаемся к серверу
  
or die ('Невозможно подключиться к MySQL: Проверьте настройки подключения');
if(
$link):
[
user=mysql_select_db]mysql_select_db[/user]($dbname$link
  or die (
'База Данных недоступна, либо не существует'); // выбираем базу

$q1 mysql_query('SELECT nid, created FROM node WHERE created > "'.time().'"'$link); // выборка публикаций на будущее

echo 'now time(): '.time();

if(

$q1):

while(

$nd mysql_fetch_array($q1)) { // запись в таблицу scheduler
  
echo "<br><hr>node: ".$nd['nid']." | created: ".$nd['created'];
  
mysql_query('INSERT INTO scheduler (nid, publish_on) VALUES ("'.$nd['nid'].'", "'.$nd['created'].'")'$link);}

// подчищаемся
mysql_free_result($q1);
unset(
$nd);

endif; 

mysql_close($link);
endif; 

?>

модули под drupal делать не умею, так что накатал в лоб.

Комментарии

Аватар пользователя aksernar aksernar 3 декабря 2010 в 22:43

тык есть куча функций друпала, которые отвечают за подключение к базе данных. А в этом коде все ключики к сайту лежат, разве есть здесь безопасность?