Скрипт Яндекс.Острова для DLE
Автор
|
Опубликовано: 4139 дней назад (2013-08-11)
Рубрика: Скрипты
Редактировалось: 13 раз — последний 2013-08-11
|
0 Голосов: 0 |
В общем сидел тут и от нечего делать решил попробовать все таки разобраться с Яндекс Островами которые так рекламит Яндекс. Хоть и веры пока не сильно много в то что эта тема будет сильно востребована, скорее всего будет использована для ресурсов которые строго каталогизированы - такие как авто каталоги, недвижимость, билетирование - думаю это были их основные цели, т.к. сами знаете что Яндекс подминает под себя самые интересные темы в виду субсервисов, тем не менее думаю есть шанс попробовать использовать данную технологию также в софт каталогах и других каталогах - может фильмов, файлов, книг ....
Именно эта мысль подтолкнула меня на пробу пера, в общем разбираемся, есть у меня каталог драйверов КучаДров.ру на котором и решил испытать данный сервис - там есть структурированный каталог на три уровня вложенности - который строго структурирован по принципу - тип устройства -> производитель -> серия устройства -> ну и далее самой устройство к которому выложен файл драйвера.
прежде всего в файлы /engine/classes/mysql.class.php и /engine/classes/mysqli.class.php вставляем функцию
после закрытия скобки функции function connect{ } примерно 67 строчка
и так ostrov.php
строка 15 - заменить "Тип устройства" - на тип вашего первого уровня категории
строки 20-21 , если вы хотите удалить из островов некоторые категории - необходимо раскомментировать и перечислить там цифрами id категорий которые надо вычеркнуть.
строка 27 - заменить "Производитель" на название вашего второго уровня вложенности
строка 37 - заменить "Серия" - название вашего третьего уровня вложенности
строка 60 - указать название вашего сайта - будет выводиться в Яндекс.Островах
строка 61 - указать Описание данного острова или самого сайта - тоже будет выводиться в Яндекс.Острове
строка 62 - указать ваш домен с http , из него будет формироваться урл на который будут попадать ваши пользователи
строки 66 - 70 - если у вас не три уровня вложенности - необходимо будет добавить или убрать один уровень <placeholder
теперь в .htaccess в любом месте после RewriteEngine On добавляем строчку
данная карта тестировала на Яндекс.Островах и вполне валидна и работает кто хочет может потыкаться в ней, посмотреть как они вообще работают - вот постоянная ссылка на Остров КучаДров.ру
Ниже выкладываю исходник чтобы можно было просто скачать и посмотреть, скрипт распространяется как есть, можете его использовать как хотите за исключением продажи - ссылки на наш сайт приветствуются , будут вопросы - предложения - всегда пожалуйста - жду
вот сам архив со скриптами - ostrov5207b3d68134c.zip данный архив создан бесплатным архиватором 7 Zip
Именно эта мысль подтолкнула меня на пробу пера, в общем разбираемся, есть у меня каталог драйверов КучаДров.ру на котором и решил испытать данный сервис - там есть структурированный каталог на три уровня вложенности - который строго структурирован по принципу - тип устройства -> производитель -> серия устройства -> ну и далее самой устройство к которому выложен файл драйвера.
прежде всего в файлы /engine/classes/mysql.class.php и /engine/classes/mysqli.class.php вставляем функцию
после закрытия скобки функции function connect{ } примерно 67 строчка
Код PHP:
Далее создаем в корне сайте с DLE файл ostrov.php , ниже его содержимое :
function get_sub($id=0) { $sql = "SELECT * FROM dle_category WHERE parentid = ".(int)$id." ORDER BY posi ASC"; $rs = $this->query($sql); { $cat[]=$row; } foreach ($cat as $key=>$row) { $list[$key]['cat'] = $row; $sub = $this->get_sub($row['id']); if($sub) { $list[$key]['sub'] = $sub; } } return $list; }
Код PHP:
Теперь описание - это скрипт моего сайта сами понимаете (три уровня вложенности), по этому чтобы его использовать необходимо будет немного доработать учитывая специфику вашего сайта
<? require_once ENGINE_DIR.'/classes/mysql.php'; require_once ENGINE_DIR.'/data/dbconfig.php'; require_once ENGINE_DIR.'/data/config.php'; require_once ENGINE_DIR.'/modules/functions.php'; $my_menu = $db->get_sub(); $type = " <dropDown> <description caption="Тип устройства"> <modifyResource placeholder="type"/> </description> "; foreach($my_menu as $id=>$value){ /** раскомменитровать если надо вычеркнуть какую нить категорию и вставить id категорий if($value['cat']['id']==302 || $value['cat']['id']==367 || $value['cat']['id']==13 || $value['cat']['id']==361){ continue; } **/ if(count($value['sub'])<=0){ $end1 = "/"; $subend=""; }else{ $end1 = ""; $subend="</dropDownValue>"; } $type .= " <dropDownValue key="{$value['cat']['alt_name']}" caption="драйвера {$value['cat']['name']}"{$end1}> "; $type .= " <dropDown> <description caption="Производитель"> <modifyResource placeholder="producer"/> </description> "; foreach($value['sub'] as $subkey=>$subval){ if(count($subval['sub'])<=0){ $end2 = "/"; $subend2=""; }else{ $end2 = ""; $subend2="</dropDownValue>"; } $type .= " <dropDownValue key="{$subval['cat']['alt_name']}" caption="{$subval['cat']['name']}"{$end2}> "; $type .= " <dropDown> <description caption="Серия"> <modifyResource placeholder="seria"/> </description> "; foreach($subval['sub'] as $subkey2=>$subval2){ $type .= " <dropDownValue key="{$subval2['cat']['alt_name']}" caption="{$subval2['cat']['name']}"/> "; } $type .= " </dropDown> {$subend2} "; } } $type .= " </dropDown> {$subend} "; } } $db->close (); echo('<?xml version="1.0" encoding="utf-8"?> <site xmlns="http://interactive-answers.webmaster.yandex.ru/schemas/site/0.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://interactive-answers.webmaster.yandex.ru/schemas/site/0.0.1 / http://interactive-answers.webmaster.yandex.ru/schemas/site-0.0.1.xsd"> <title>Поиск драйвера</title> <description>Поиск драйверов для всех типов устройств - выберите, тип устройства, производителя и серию</description> <rootUrl>http://kuchadrov.ru/</rootUrl> <protocol>HTTP</protocol> <resource> <fixed name="http://www.kuchadrov.ru"> <placeholder name="type"> <placeholder name="producer"> <placeholder name="seria" terminal="true" separator="/"/> </placeholder> </placeholder> </fixed> </resource> <filters> '.$type.' </dropDown> </filters> </site>'); ?>
и так ostrov.php
строка 15 - заменить "Тип устройства" - на тип вашего первого уровня категории
строки 20-21 , если вы хотите удалить из островов некоторые категории - необходимо раскомментировать и перечислить там цифрами id категорий которые надо вычеркнуть.
строка 27 - заменить "Производитель" на название вашего второго уровня вложенности
строка 37 - заменить "Серия" - название вашего третьего уровня вложенности
строка 60 - указать название вашего сайта - будет выводиться в Яндекс.Островах
строка 61 - указать Описание данного острова или самого сайта - тоже будет выводиться в Яндекс.Острове
строка 62 - указать ваш домен с http , из него будет формироваться урл на который будут попадать ваши пользователи
строки 66 - 70 - если у вас не три уровня вложенности - необходимо будет добавить или убрать один уровень <placeholder
теперь в .htaccess в любом месте после RewriteEngine On добавляем строчку
Код PHP:
в итоге получится вот такая карта http://www.kuchadrov.ru/ostrov.xml
RewriteRule ^ostrov.xml$ ostrov.php [L]
данная карта тестировала на Яндекс.Островах и вполне валидна и работает кто хочет может потыкаться в ней, посмотреть как они вообще работают - вот постоянная ссылка на Остров КучаДров.ру
Ниже выкладываю исходник чтобы можно было просто скачать и посмотреть, скрипт распространяется как есть, можете его использовать как хотите за исключением продажи - ссылки на наш сайт приветствуются , будут вопросы - предложения - всегда пожалуйста - жду
вот сам архив со скриптами - ostrov5207b3d68134c.zip данный архив создан бесплатным архиватором 7 Zip
Комментарии (0)
Нет комментариев. Ваш будет первым!
Добавить комментарий |
Новости партнеров