У меня есть сайт на друпал. Я Хочу запустив на локалхосте php скрипт открыть сайт на друпале, залогиниться под пользователем (логин создан заранее), выбрать "создать материал" и выбрать тип материала (к примеру page), записать во вновь созданную страницу переменные $eto_title; $eto_text; $eto_termin_taxonomy; $eto_url; $eto_description. Сохранить вновь созданную страницу.
Переменная $eto_text будет в формате html разметки. То есть произвести постинг страницы.
зы
пожалуйста http://drupal.org/project/import_html не предлагайте, я хочу разобраться как производится постинг, а не как заливать контент на сайт.
зызы
Как пример начало программы:
$eto_login='admin';
$eto_parol='qwerty';
$eto_title='привет';
$eto_text='<p>привет ребята как <b>ваши дела</b>?</p>';
$eto_termin_taxonomy='приветствие, добрые пожелания, хорошие слова';
$eto_url='privet.html';
$eto_description='Перейдя на страницу вы увидите приветсвие';
//А вот здесь надо как то постинг написать.
?>
Комментарии
node_save() и не ипать моск
Примеров на форуме и в гугле куча, в крайнем случае скачайте первый номер Друпалогии
«node_save() и не ипать моск»
нет такой способ мне тоже не подходит. Мне нужен постинг с локал хоста на внешний "мой сайт". Я могу повключать туда всякие модули (на свой сайт) но хочется увидеть универсальное решение для постинга на сайт друпал с локалхоста.
Тогда либо XML-RPC либо Snoopy + ипать моск
Ага, включите на своем удаленном сайте модуль API для блогов (входит в системные) и дальше юзайте API для постинга.
«Ага, включите на своем удаленном сайте модуль API для блогов (входит в системные) и дальше юзайте API для постинга.»
вот это очень интересно, почитаю.
Тем не менее, а есть еще варианты?
Можете блог-клиент какой-нить приспособить.
Можете прикольно извратиться, разворачиваете дома аналогичный сайт, формируете ноду, переключаете БД на удалённую через db_set_active() и node_save() происходит в удалённую БД, потом переключаете обратно
Основные варианты вам дали, вариант тупого постинга лучше не рассматривать, ибо наипётесь по самое нехочу со всякими друпал-форм-токенами, сам писал, но выкладывать не буду, так как будут использовать в плохих целях
«Можете блог-клиент какой-нить приспособить.»
ага пробовал, получается. Тоже (иногда) удобнее, чем стандартными способами. Но хочется узнать как еще можно постить.
«сам писал, но выкладывать не буду, так как будут использовать в плохих целях»
использовать для спама?
Недавно в новостях модулей проходил модуль для постинга нод через HTTP POST. Поищите.
«Недавно в новостях модулей»
извините, где поискать?
Под новостями я имел в виду любую ленту новых модулей Друпала.
Поискать можно на drupal.org, или drupalmodules.com. На последнем очень удобный поиск по модулям.
В данном конкретном случае я имел в виду модуль Quick and Dirty Raw Data Import. Не знаю, подойдет ли он вам, привожу просто как альтернативный вариант.
«Под новостями я имел в виду любую ленту новых модулей Друпала.»
понятно большое спасибо. Постараюсь разобраться. В принципе тоже интересно.
1) написать небольшой модуль на стороне дрюпала, который в параметрах берет все данные (включая логин и пароль), проверяет логин и папроль, делает node_save
2) тоже самое можно сделать через xml-rpc, но модуль всё равно писать надо (просто другой механизм передачи параметров будет)
3) напрямую коннектиться к mysql и править таблички дрюпала
4) можно и без написания модуля на стороне дрюпала, если имитировать поведение браузера: а) загрузить форму для входа и запомнить cookies, б) отправить форму для входа методом POST вместе с cookies (желательно опять запомнить новые cookies), в) отправить форму добавления ноды методом POST. Между (б) и (в) возможно придется загрузить форму добавления ноды для получения скрытых генерируемых полей форм, хотя может и без них обойдется.
вот 4 пункт. Как бы цель топика понять как вообще такое делается. для этого мне бы увидеть готовый код на php, который работает, а уже потом думать надо мне это или не надо и как проще и т.п.
Лично у меня ума написать такой код пока не хватает, другие способы мне предложили (но не такие как я спрашивал). Чо делать? Пока ничего не делать, потом видимо придеться научиться абсолютно самостоятельно.
зы
хотел рассмотреть такое на друпале, потому как там это так просто /add/node/1 и больше ничего не надо, никаких сложных перемещений.
Почитайте про cURL. Его функционал есть в пхп.
Весьма сомневаюсь, что Вам предоставят готовый код.
Недавно, помню, здесь на сайте кто-то ночью запостил сотни однотипных топиков. Да, с помощью cURL несложно сделать скрипт, который будет автоматически делать постинг материалов. Поэтому на нормальных сайтах всегда должно учитываться это. Т.е. нужно или ограничивать количество постингов в день на одного юзера, или ставить капчу, а лучше создавать нормальную систему модерации. Иначе, если не застраховаться, то можно проснуться утром, зайти на свой сайт - а там тыщи нехороших постов:)
Это касается и комментариев на сайте.
ТС, почитаешь про cURL, и сможешь сделать сам себе нужный скрипт.
Говорите про курл что угодно, но мне милее Snoppy
А что за Snoppy? В Гугле ничего не нашел...
Извиняюсь, ещё не проснулся, буквы задваяюца:
http://sourceforge.net/projects/snoopy/
«Недавно, помню, здесь на сайте кто-то ночью запостил сотни однотипных топиков.»
я осознаю, что тут опасаются спама. Правда спамить разумней хрумером
А то ведь я не могу сделать простейшие вещи, неужели вы думаете я смогу антигэйт прикрутить и заспамить кого нибудь? Но вы опасаетесь спама - это правильно, я согласен.
«ТС, почитаешь про cURL, и сможешь сделать сам себе нужный скрипт.»
спасибо я обязательно почитаю. Только вы меня переоцениваете, я наверняка этого не смогу написать. Я реально слаб в программировании. Я последовательно почитаю все ссылки, которые мне дали на друпале, а затем (если кода не попадется) я просто спрошу на античате. Так как на античате много программистов, мне просто напишут эти 10-20 команд, и не будут ничего обсуждать.
зы
кстати в тему. А если расширить понятие постинга на сайт?
1. Есть ли в друпале модуль постинга с мыла? как пример в вордпрессе http://codex.wordpress.org/Blog_by_Email
2. Есть ли модуль постинга с icq, скайпа да и ваще джабер клиентов?
3. В какой формат (каким модулем) правильнее сливать базы друпала и заливать их на другой сайт. Допустим, если друпал разных версий.
«Пройдите, пожалуйста, в гугл, 5 секунд и я нашёл»
у меня 6 версия. Однако смысл я понял.
«Без комментариев»
почему?
вот как пример на сайте же друпал http://www.drupal.ru/node/7319
Потому что:
«Потому что: Базы друпала»
вы совершенно правы. Для меня сайты уже давно только контент и траф на них. На каком все это сидит движке, да и на движке ли... Мне не важно. Но вы правы, надо было уточнить в каком виде удобней переносить контент с сайта друпал, на другой сайт. Допустим, соединить два варезника или раскидать контент между несколькими сайтами.
Но на все есть ответ в гугле, да?
У меня есть пример кода с вариантом (4), но он для случая, когда отправка ноды доступна анонимам. С авторизацией будет посложнее:
<?php
foreach($params as $var => $value) $query .= '&' . $var . '=' . urlencode($value);
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded\r\n',
'content' => $query,
),
));
file_get_contents($url, false, $context);
?>
$params заполняется выше конкретными значениями формы. В принципе прокатывало без хитрых скрытых полей, но для зарегеных может и не прокатить. Из особых полей используется только "op" (название кнопки для отправки вроде).