nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« : 11.11.2008, 18:12:05 » |
|
   Этот модуль позволяет отображать на вашем сайте содержимое другого сайта. Content Grabber вставляет не всю страницу, как это делает модуль wrapper, а лишь только ту часть информации на странице, которая вам необходима. Что модуль НЕ делает:- не пишет сграбленный контент в базу данных
- не грабит динамическое содержимое
- не собирает полный вариант материала (не берет интро и полный текст одновременно, если они на разных страницах)
Зачем нужен Content Grabber:- отображение у себя на сайте различных информеров (если нет возможность получить их иначе)
- отображение статичных данных - таблиц, расписаний
- придумайте сами
 Скачать | Демо ( источник контента) | Страница модуля на JЕD | Content Grabber на Внимание! Версия модуля 1.5.0 переименована в Content Grabber PQ Подробнее о версии здесь http://joomlaforum.ru/index.php/topic,46583.msg591405.html#msg591405Принцип работы и пример настройкиВ основе работы этого граббера лежит регулярное выражение, которое составлено таким образом, что позволяет забирать все, что находится между указанными параметрами (в настройках значатся как "Начальный тэг" и "Конечный тэг"). В качестве параметров могут выступать как отдельные тэги, так и простые текстовые символы (слова, комментарии кода). Опционально вы можете включить ваши параметры в конечный контент с помощью опции "Использовать тэги". Главное условие - ваши вводные параметры должны быть уникальными. Например, вы хотите сграбить контент, который находится в нескольких блоках, а параметры можно указать только опираясь на класс блока - вы получите только первый блок <div class="block">Content 1</div> <div class="block">Content 2</div> <div class="block">Content 3</div> из такой разметки получится забрать только блок с текстом Content 1Конечно возможно взять и все блоки, но для этого вам нужно будет изменить регулярное выражение Рассмотрим немного другой вариант разметки, при котором можно забрать все блоки, используя дополнительные настройки модуля: <ul><li>some here</li></ul> <div class="block">Content 1</div> <div class="block">Content 2</div> <div class="block">Content 3</div> <table><tr><td>some here</td></tr></table> В этом случае в качестве начального тэга следует указать </ul>, в качестве конечного <table>, параметр "Использовать эти тэги" ставим НЕТ (иначе они поломают разметку вашей страницы) - таким образом получаем все что находится между указанными нами тегами ... все три блока Бывают случаи, когда нельзя исключить начальный и конечный тэги, хотя они нам и не нужны. В таком случае используйте настройки "Текст/HTML перед кодом" и "Текст/HTML после кода". Сюда нужно будет вписать недостающие элементы. Для нашего примера, в случае, если "Использовать эти тэги" оставлена ДА в "Текст/HTML перед кодом" следует вписать <ul><li></li>, а в "Текст/HTML после кода" <tr><td></td></tr></table> Известные проблемыНе получается забирать контент, если в начальном или конечном тэге есть символ #
Советы- При настройке модуля отключайте кэширование у него в настройках или в шаблоне (если он используется)
- Для копирования нужных вам тэгов не пользуйтесь инструментами типа FireBug - они исправляют код
- Чтобы вывести сграбленный контент как материал Joomla используйте стандартный плагин mosloadposition для Joomla 1.0.х или loadposition для Joomla 1.5.x
История версийВерсия 1.4.6.3- добавлена возможность выбора стандартного шаблона Версия 1.4.6.2- добавлена возможность обновления через апдейтер joomla - добавлен параметр игнорирования недоступности сайта-источника работает это так: если у вас уже стоял и успешно работал настроенный модуль с включенным собственным кэшированием и при очередном обновлении контента (через заданный промежуток времени) сайт-источник оказался недоступен, то будет выведена старая информация с предыдущего обновления- исправлена ошибка с отправкой сообщения о проблемах на почту - добавлен новый тип оповещения (ни в модуль, ни на почту) - исправлены встроенные шаблоны (из-за обновления на источниках) Версия 1.4.6.1- устранена проблема с вырезанием тэгов при сохранении настроек Версия 1.4.6- о изменениях смотрите тутВерсия 1.4.5- Исправлена ошибка кэширования - Добавлен выбор способа оповещения о проблеме граббинга использование этой опции в шаблонах{mestype}1{/mestype} сообщение будет выводиться в модуль (как это происходит сейчас) {mestype}2{/mestype} отправляться на email {mestype}3{/mestype} оба способа сразу Версия 1.4.4- о изменениях смотрите тут Версия 1.4.3- Добавлен атрибут target со значением _blank (для открытия сграбленных ссылок в новом окне) Версия 1.4.2- Добавлен суффикс для класса модуля - Файл-кэш теперь указывается в настройках. Это решает проблему использования нескольких копий модуля Версия 1.4.1 - Исправлена проблема работы с кэшем - Устранен баг, при котором нужно было дважды обновлять страницу при первом использовании кэширования Версия 1.4Добавлена возможность использования готовых настроек для сайтов (шаблонов). Шаблон представляет собой XML файл, который необходимо загрузить в modules/mod_grabber/templates/ В комплект входит два шаблона. Версия 1.3.1- Исправлена неверная коррекция относительных ссылок Скриншоты настроек
|
|
|
|
« Последнее редактирование: 29.02.2012, 11:01:25 от nikonor »
|
Записан
|
|
|
|
| |
zhenia_01
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 152
Я себя не обидел? :))
|
 |
« Ответ #571 : 09.01.2012, 20:55:27 » |
|
Вот возник вопрос. На сайте http://pogoda.by/315/arch_gid.php?punkt=%CC%EE%E7%FB%F0%FC имеется таблица, которую необходимо сграбить. Сделал необходимые настройки в модуле. В итоге информация сграбилась, но проблема в том, что нет пропорций таблицы и пропали границы. Можно ли это как то поправить?
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #572 : 09.01.2012, 21:00:24 » |
|
посмотреть бы что у вас получилось ... а вообще можете модулю назначить CSS класс и прописать для таблицы внутри его стили в вашем файле стилей шаблона
|
|
|
|
|
Записан
|
|
|
|
zhenia_01
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 152
Я себя не обидел? :))
|
 |
« Ответ #573 : 09.01.2012, 21:47:01 » |
|
Показать могу только на картинке. http://www.imagepost.ru/?v=offlkadsebuziftwgxxkqfpwetntte.JPGПока эта таблица на локалке. В принципе CSS это понятно, но а как прописать CSS для модуля в материале (модуль добавлен в материал при помощи стандартного плагина loadmodule)?
|
|
|
|
« Последнее редактирование: 09.01.2012, 21:50:04 от zhenia_01 »
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #574 : 09.01.2012, 21:55:29 » |
|
насколько я понимаю стартовый тэг у вас <table width="*" ... что-то там еще ... а конечный </table> отключите в модуле Показывать тэги, модуль исключит начальный и конечный тэги из материала, пропишите в параметр HTML перед модулем <table class="myclass">, HTML после модуля </table> это позволит присвоить задать сграбленной таблице CSS класс какой хотите
|
|
|
|
|
Записан
|
|
|
|
zhenia_01
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 152
Я себя не обидел? :))
|
 |
« Ответ #575 : 10.01.2012, 01:50:04 » |
|
Есть проблема, если я задаю начальный тэг: <table width='*' cellspacing='0' cellpadding='1' bgcolor='#FFFFFF' id='ar'> конечный тег: </table> то выскакивает ошибка: Warning: preg_match_all() [function.preg-match-all]: Unknown modifier 'F' in ....\modules\mod_grabber\helper.php on line 71 Не удается запустить процесс с указанными параметрами!
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #576 : 10.01.2012, 11:16:59 » |
|
есть такой баг ... это из-за #FFFFFF ... обойдем это дело у таблицы же есть собственный id=ar ... к нему и назначаем стили вот вариант настройки стартовый </h4> конечный </table> использовать тэги НЕТ текст после модуля </table>
|
|
|
|
|
Записан
|
|
|
|
p_nick
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #577 : 10.01.2012, 19:59:57 » |
|
nikonor, помоги плз, уже мозг кипит, пытаюсь взять таблицу отсюда _http://livetv.ru/calendar/1/ кусками получается, а одним модулем ну ни как перепробовал уже десятки вариантов настройки ... 8( Надо вырезать начиная с Ближайшие игры чемпионата и до конца всей таблицы. ПС:размер забираемого контента никак не влияет, нет ли ограничений? Начальный тэг <table width="90%" align="center"> Конечный тэг <table width="100%" bgcolor="#ffffff" cellpadding=0 cellspacing=0> (пробовал и так <table width="100%", после прочитанного выше есть такой баг ... это из-за #FFFFFF) Текст/HTML перед кодом сюда уже что только не подставлял что по логике должно закрывать конструкцию таблиц Текст/HTML после кода </table> Кодировка сайта-истоника Windows-1251 Кодировка вашего сайта utf-8 Помоги разок, пожалуйста! ! А так модуль супер, закончу проект, скину обязательно свою благодарность на Webmoney.
|
|
|
|
|
Записан
|
|
|
|
Dobreff
Осваиваюсь на форуме
 
Репутация: +0/-1
Offline
Сообщений: 75
|
 |
« Ответ #578 : 10.01.2012, 21:32:46 » |
|
Пожалуйста, кто умеет, помогите! сайт: http://www.domik.net/novosti/actual.html Начальный тэг: Конечный тэг: (новости)
|
|
|
|
|
Записан
|
|
|
|
p_nick
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #579 : 10.01.2012, 21:41:33 » |
|
Dobreff я бы тебе для новостей посоветовал JoomlaGrabber сайт автора _http://tushov.ru компонент уже платный по-моему, я качал его когда еще бесплатно распространялся - очень доволен.
|
|
|
|
|
Записан
|
|
|
|
p_nick
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #580 : 10.01.2012, 21:50:17 » |
|
Все попытки пока сводятся к тому что большой фрагмент кода на грабится по непонятной мне причине, надеюсь что я делаю что-то не так...
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #581 : 10.01.2012, 23:02:36 » |
|
p_nick Для вас плохая новость и хорошая ... Плохая: этой версией модуля этот контент не забрать Хорошая: Этот контент можно забрать версией PQ
Dobreff Начальный тэг <div class="white_round_block_content"> Конечный <!-- панель навигации начало--> Текст перед модулем <div><div><div>
|
|
|
|
|
Записан
|
|
|
|
p_nick
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #582 : 10.01.2012, 23:18:49 » |
|
А они совсем не совместимы? Качать отсюда? http://www.elevengroup.ru/content/view/19/37/lang,ru/ И еще вопросик где-то можно почитать о версии PQ, может ветка обсуждения? А так, низкий поклон за быстрый ответ, будем пробовать версию PQ
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #583 : 10.01.2012, 23:25:56 » |
|
Для Joomla версии > 1.6 качать модуль Content Grabber PQ из вложения
Обсуждений особо не было (все в этой ветке), народу показался слишком сложным. Есть только мануал на английском по phpQuery ... посмотрите, если работали с jquery, то разберетесь
|
|
|
|
|
Записан
|
|
|
|
p_nick
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #584 : 10.01.2012, 23:32:44 » |
|
Joomla 1.5 - с сайта качнул модуль там актуальная версия? C jQuery конечно "не на ты" но и с "Вы" уже перешли А может пример шаблона какой-то завалялся, а то с модуле пустой.
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #585 : 10.01.2012, 23:35:36 » |
|
версия не самая новая, но вполне рабочая (в последней незначительные изменения) по шаблону тут есть http://joomlaforum.ru/index.php/topic,46583.msg591405.html#msg591405
|
|
|
|
|
Записан
|
|
|
|
p_nick
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #586 : 10.01.2012, 23:41:51 » |
|
А последней поделиться можете? хотелось бы как-то в ногу с временем топать  Это пока последняя просьба, пойду бороздить phpQuery... Еще раз благодарачка!
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #587 : 10.01.2012, 23:44:31 » |
|
последнюю прикрепил в посте .. но вам она не подойдет .... там на самом деле все тож самой что и у вас, только функция замены в тексте вынесена в настройки ... ее легко прописать можно в самом шаблоне
|
|
|
|
|
Записан
|
|
|
|
Dobreff
Осваиваюсь на форуме
 
Репутация: +0/-1
Offline
Сообщений: 75
|
 |
« Ответ #588 : 11.01.2012, 13:37:59 » |
|
nikonorСпасибо за помощь, только не понял куда это тулить? (( Текст перед модулем <div><div><div>
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #589 : 11.01.2012, 14:48:04 » |
|
в настройках модуля текст/html перед модулем
|
|
|
|
|
Записан
|
|
|
|
zhenia_01
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 152
Я себя не обидел? :))
|
 |
« Ответ #590 : 12.01.2012, 00:24:16 » |
|
есть такой баг ... это из-за #FFFFFF ... обойдем это дело у таблицы же есть собственный id=ar ... к нему и назначаем стили вот вариант настройки стартовый </h4> конечный </table> использовать тэги НЕТ текст после модуля </table>
так не вышло. но сделал. чуть по другому: стартовый <td class='legend'> конечный </table> использовать тэги Да текст перед модулем <table class="myclass"><tr> Спасибо помощь!
|
|
|
|
|
Записан
|
|
|
|
p_nick
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #591 : 13.01.2012, 04:33:22 » |
|
nikonor, еще пару вопросиков по версии PQ Как сделать замену в тексте например в контенте встречается слово вверх, а я хочу заменить его словом вниз в Версии 1.4.6 так удобно это было делать  а тут $out = pq('p:contains("вверх")')->replaceWith('вниз'); он заменяет полностью параграф с остальным текстом, другими способами пока не получилось  подскажи как правильно прописать? И для варианта если мне в коде надо к примеру заменить тег <b> на <strong> (теги условно обозначил) И еще вопросик почему-то порядок тегов сбивается В сайте доноре идет так: <tbody> <tr> <td width="50%" valign="top"> <td width="50%" valign="top"> </tr> <tr> <td width="50%" valign="top"> <td width="50%" valign="top"> </tr> <tr> <td width="50%" valign="top"> <td width="50%" valign="top"> </tr> <tr>... У меня выводит вот так: <tbody> <tr> <tr> <td width="50%" valign="top"> <td width="50%" valign="top"> </tr> <tr> <td width="50%" valign="top"> <td width="50%" valign="top"> <td width="50%" valign="top"> <td width="50%" valign="top"> ... и таблица че-то повторяется второй раз...? Ну и последнее можно ли прописать как-то чтоб тег содержание которого будет забираться не вырезался? если беру таблицу то приходится дописывать вначале и вконце теги, выкрутился такой записью  $out = ('<table class="tabgrab">').pq($result)->find('table[width="90%"][align="center"]')->html().('</table>');
|
|
|
|
« Последнее редактирование: 13.01.2012, 04:43:11 от p_nick »
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #592 : 13.01.2012, 17:07:40 » |
|
По написанию шаблонов для PQ версии я не консультирую ... предполагается, что пользователь обладает всеми необходимыми знаниями, но дам подсказку .. по замене: ничто не мешает использовать srt_replace, две нужные таблицы грабятся кодом из 3-4 строк 
|
|
|
|
|
Записан
|
|
|
|
p_nick
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #593 : 14.01.2012, 00:37:54 » |
|
Алелую, разобрался, я не там строку с заменой вставлял ))) Надо ПХП учить 
|
|
|
|
|
Записан
|
|
|
|
Shustry
Группа развития
   
Репутация: +201/-0
Offline
Пол: 
Сообщений: 1682
Добрый зайка
|
 |
« Ответ #594 : 02.02.2012, 12:24:37 » |
|
Отличный модуль. Спасибо! Жаль только, что стандартный шаблонизатор Joomla не подключили. По-моему логичнее шаблоны хранить в папке темплейта сайта. Если кому надо, хак (автор сорри, делал для себя): 1. modules\mod_grabber\mod_grabber.php: Меняем в конце require(JModuleHelper::getLayoutPath('mod_grabber'));на require JModuleHelper::getLayoutPath('mod_grabber', $params->get('layout', 'default'));2. modules\mod_grabber\mod_grabber.xml: дописываем после <fieldset name="advanced"> <field name="moduleclass_sfx" type="text" default="" label="MOD_GRABBER_SUFF" description="MOD_GRABBER_SUFF_DESC" /> строчку <field name="layout" type="modulelayout" label="JFIELD_ALT_LAYOUT_LABEL" description="JFIELD_ALT_MODULE_LAYOUT_DESC" /> 3. Далее создаём в templates\шаблон\html\mod_grabber нужный нам темплейт, например pogoda.php и работаем. Я выводил погоду от яндекса так: <?php defined('_JEXEC') or die('Restricted access'); preg_match('#<img[^<]+?>#', $html, $matches); $img = $matches[0]; $split = preg_split('#<[^<]+?>#', $html); $temper = $split[4]; $nebo = $split[19]; $veter = $split[21]; $davlenie = $split[25]; $vlajn = $split[27]; $voshod = $split[31]; $zahod = $split[32]; $dannye = $split[36]; echo '<p>'.$img.'</p><p>'.$temper.'</p><p>'.$nebo. '</p><p>'.$veter.'</p><p>'.$davlenie.'</p><p>'.$vlajn. '</p><p>'.$voshod.'</p><p>'.$zahod.'</p><p>'.$dannye; //var_dump ($split); ?> А в настройках модуля поставил: URL cайта-источника - http://pogoda.yandex.ru/biysk/ Начальный тэг - <table class="b-current-weather"> Конечный тэг - </table> Использовать эти тэги - да
|
|
|
|
|
Записан
|
|
|
|
zhenia_01
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 152
Я себя не обидел? :))
|
 |
« Ответ #595 : 04.02.2012, 02:47:26 » |
|
так не вышло. но сделал. чуть по другому: стартовый <td class='legend'> конечный </table> использовать тэги Да текст перед модулем <table class="myclass"><tr> Спасибо помощь!
Работало всё замечательно, ничего на сайте вообще не делал, а теперь модуль отказался работать. Пишет: Не удается запустить процесс с указанными параметрами! Из-за чего могло перестать работать? Только что проверил на локалке с теми же данными - все работает. А на хостинге не хочет. Что это может быть?
|
|
|
|
« Последнее редактирование: 04.02.2012, 03:40:46 от zhenia_01 »
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #596 : 04.02.2012, 09:42:00 » |
|
кэш пробовали очищать? еще надо бы проверить, паписав простой скриптик с, хотя бы, file_get_contents , тянет ли он что либо через ваш хост с сайта источника
|
|
|
|
|
Записан
|
|
|
|
zhenia_01
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 152
Я себя не обидел? :))
|
 |
« Ответ #597 : 05.02.2012, 21:32:51 » |
|
кэш чистил, не помогает. А как с этим скриптикам?
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #598 : 06.02.2012, 13:41:41 » |
|
например этот простой скрипт должен вывести содержимое сайта <?php $homepage = file_get_contents('http://www.example.com/'); echo $homepage; ?> попробуй его запустить со своего хоста
|
|
|
|
|
Записан
|
|
|
|
zhenia_01
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 152
Я себя не обидел? :))
|
 |
« Ответ #599 : 07.02.2012, 18:59:16 » |
|
Сделал файлик на хосте в корне сайта с этим скриптом. Запустил. Результат на картинке. Я то сделал?  Я даже не знаю, что делать. А может что на хостинге отключено?
|
|
|
|
|
Записан
|
|
|
|
nikonor
Завсегдатай
   
Репутация: +49/-0
Offline
Пол: 
Сообщений: 441
Content Grabber
|
 |
« Ответ #600 : 07.02.2012, 19:02:46 » |
|
вместо http://www.example.com/ нужно прописать урл сайта-источника
|
|
|
|
|
Записан
|
|
|
|
|