Доработаный и переделаный компонент "Карта сайта" для InstantCMS 1.7

Автор: HolyGun
Опубликовано: 416 дней назад (2 апреля 2011)
Рубрика: Компоненты
+77
Голосов: 77
Категорическое здрасти.
Вот как и обещал, переделал и доработал Карту сайта. Которую начал тут.
Данная версия пока не претендует на релиз. Но уже вполне работоспособная.

Возможности:
1. Обработка основных разделов сайта. Пользователи, Блоги, Основной контент сайта (Новости и статьи), Форумы, Доска объявлений, Универсальный каталог, Вопросы и ответы.
2. Создание отдельного sitemap'а для каждого раздела. Создание индекса для созданных sitemap'ов.
3. Автоматическое создание robots.txt, в случае его отсутствия.
4. Вывод юзабельной HTML-версии Карты сайта.
5. Вывод результатов работы компонента "изнутри". Только для админов.
6. Удобный конфигурационный файл, для настройки компонента "под себя".
7. sitemap'ы создаются при открытии страницы Администратором.


Скриншоты работы компонента. Проверялось на демоданных поставки InstantCMS 1.7.
1. HTML-Версия.

2. Вывод результата работы для админов сайта.

3. Google



Установка:
A. Новая установка. Для тех, кто впервые будет устанавливать компонент.
1. Качаем архив со скриптом http://instantcms.ru/go/url=http://www.o-bike.ru/files/com_sitemap_v.1.0b.zip
2. Распаковываем, и загружаем содержимое архива в корень директории ./components
3. Создаем в корне сайта директорию ./sitemaps Выставляем на нее права на запись 0755.
4.1 В админке заходим в раздел Компоненты, жмем серую шестерню с зеленым плюсом и выбираем готовый для установки компонент "Карта сайта". Проверяем, чтобы он оказался в списке компонентов и был включен.
4.2. Затем переходим в раздел Меню. Жмем Создать пункт.
4.3. В поле Заголовок пункта меню, вводим название пункта, то как оно будет отображаться.
4.4. Выбираем Родительский пункт. Удобнее всего будет в корне меню.
4.5. Действие пункта меню. Тут выбираем Открыть компонент. Ниже выбираем компонент Карта сайта
4.6. Настраиваем публикацию и доступ к пункту, и жмем Сохранить пункт.
B. Обновление. Для тех, кто уже пользуется компонентом.
1. Удаляем старый компонент из директории ./components.
2. Проделываем все тоже самое, кроме пункта 4.

Настройка:
В файле config.php сожно настроить компонент "под себя". Файл снабжен комментариями, в которых описаны все параметры настройки.

Особая благодарность пользователю Виктор.

Во время использования возможно возникнут какие-то вопросы, задавайте смело тут.

По прежнему рад любой добровольной спонсорской поддержке.
Реквизиты для спонсорских пожертвований:
Webmoney WMID: 200447737040
Z219463200364
R359781226955

Яndex.Деньги
41001903510475
Проба пера. Компонент "Карта сайта" для instantcms 1.7 | Карта сайта. Планы на будущее.
Dimitrius # 2 апреля 2011 в 12:59 +5
Отлично) +1)
arianfinist # 2 апреля 2011 в 13:04 0
на 1.6.2. пойдет? может кто уже проверил?
Санчес # 4 апреля 2011 в 11:51 0
не пойдет. я проверил.
fact # 2 апреля 2011 в 15:08 +1
+100500! Как обещал на пиво закинул 3 бачинских.
HolyGun # 3 апреля 2011 в 08:48 0
Благодарю :)
fact # 2 апреля 2011 в 15:20 0
в картах сайта не шарю, поэтому заранее извиняюсь. Что нужно настроить в инклудс чтобы закрытые разделы (профили, закрытые фото, закрытые блоги  и тд) не попали в доступные для индексирования поисковикам. Или это исключительно в роботс  настраивается?
HolyGun # 3 апреля 2011 в 08:40 0
так вроде и так в карту попадают открытые для всех разделы.
0 # 2 апреля 2011 в 15:59 0
не понял куда закидывать..кидал..кидал..пока карта Зухера на нашлась откудато. В какие папки файлы с архива кидать?
Djarold # 2 апреля 2011 в 16:02 +1
2. Распаковываем, и загружаем содержимое архива в корень директории ./components
0 # 2 апреля 2011 в 16:06 0
я так и сделал..однако на меню сайт\sitemap\  ошибка
fact # 2 апреля 2011 в 16:51 0
Создаем в корне сайта директорию ./sitemaps Выставляем на нее права на запись 0755.
fact # 2 апреля 2011 в 16:51 0
В админке заходим в раздел Компоненты, жмем серую шестерню с зеленым плюсом и выбираем готовый для установки компонент "Карта сайта".
fact # 2 апреля 2011 в 16:53 0
сделал всё как в инструкции - всё замечательно установилось. уже в панель яндекса вебмастер закинул
0 # 2 апреля 2011 в 17:12 0
буковки одной не было...кстати в роботс рекомендую вставлять в конце  
Код PHP:
Disallow: /r.php
fact # 2 апреля 2011 в 17:26 0
а что это?
0 # 15 апреля 2011 в 00:27 0
пардон не  увидел вопроса ранее.. Это код резать ссылки с сайта, я так понял, что он все ссылки с сайта он режет..как будто их нет..я тестировал, плохо помню результат но внешних ссылок заметно стало меньше с сайта.
0 # 2 апреля 2011 в 17:13 -1
вот сам код
Код PHP:
<?php
$uri = "";

if (array_key_exists("QUERY_STRING", $_SERVER)){
 $uri = $_SERVER["QUERY_STRING"];
}

header("Location: " . $uri);
?>
0 # 2 апреля 2011 в 17:26 0
не пишет файлы карты в каталог..html делает а файлы не пишет остальные..плин надо спать ночами...а то туплю потом..
0 # 2 апреля 2011 в 17:33 0
много пришлось писать...Спасибо! все прекрасно работает.
nikolas # 2 апреля 2011 в 17:37 +4
плюс..но когда выдаст 5000-10000 сылок на одну страницу ..было бы не плохо по странично карту вывести
а то очнь длинная карта на одной страницы получается
HolyGun # 3 апреля 2011 в 08:47 0
Нигде не встречал постраничной разметки HTML-версии карты.
Как вариант можно сделать, чтобы в HTML-версию включались только те разделы. которые наиболее важны (с настройкой в конфиге).
bigR # 2 апреля 2011 в 18:40 0
Очень благодарен вам!
lezginka.ru # 2 апреля 2011 в 19:46 +3
было бы хорошо, добавить компонент в будущие обновления инстанта
mrDON # 3 апреля 2011 в 15:18 0
вопрос если я например не хочу выводить карту в меню а хочу ее прописать в шаблоне, т.е. указать на нее ссылку как прально это сделать?
zibbert # 3 апреля 2011 в 16:47 0
открываешь на редактирование файл template.php твоей темы и в любом месте втыкаешь ссылку вида <a href="/картасайта.html" title="Карта сайта"> или вот так <a href="http://твойсайт.ком/картасайта.xml" title="Карта сайта"> если сама карта лежит в корневой директории.
lezginka.ru # 3 апреля 2011 в 22:40 +1
не плохо бы предусмотреть доп.функцию, создание карты для страниц созданных "вне движка" (отдельные страницы в корне сайта)
Санчес # 4 апреля 2011 в 11:25 +4
ошибочка небольшая: при формировании главного сайтмапа в нем прописываются подчиненные карты так: mysite.ru./sitemaps/catalog.xml

в файле frontend.php в строке 21 лишняя точка в самом начале.
$output['filename'] = '.'.$config['sitemap_path'].$output['name'].'.xml';

должно быть так:

$output['filename'] = $config['sitemap_path'].$output['name'].'.xml';
HolyGun # 4 апреля 2011 в 13:45 +6
Да, действительно, ошибка имела место быть.
В следующей версии это будет исправлено. :)
pasplus # 6 апреля 2011 в 14:52 0
Пока не ставил, но вещь очень нужная , надоело каждый день маслать генератором. Спасибо!!!
Виктор # 6 апреля 2011 в 15:33 0
Интересно, это только у меня такие кривые руки? sad
У всех создаются файлы *.xml в папке sitemaps и только у меня не создаются? sad
Что же может быть не так?
На папку уже и 777 поставил и полный путь прописывал ...
Что ещё попробовать или проверить чтобы писать начал?
HolyGun # 6 апреля 2011 в 15:42 0
html версия генерится?
Виктор # 6 апреля 2011 в 15:50 0
Да, всё изюмительно и содержимое для записи в файл тоже.
Почему-то не записываются сами файлы sad.
HolyGun # 6 апреля 2011 в 15:53 0
Хм... Интересно... Что-то мыслей нет никаких...
Виктор # 6 апреля 2011 в 15:57 0
А напомните, кто-нибудь, как включить вывод ошибок и варнингов для пхп, может это прояснит ситуацию...
Виктор # 6 апреля 2011 в 16:01 0
Извините, совсем обленился smile
Посмотрел в инете (error_reporting (Е_АLL) ; )
Однако это тоже ничего не дало sad
Виктор # 6 апреля 2011 в 18:47 +2
После добавления "PATH." (без кавычек) перед именами xml-файлов заработало.
Попутно убрал лишнюю точку перед именем индексного файла в админской части.
maia # 29 мая 2011 в 18:06 -1
А можно здесь подробнее -0 куда чего добавить надо? У меня тоже, если убрать эту точку, не создаются эти файлы. Если оставить - создаются, но точка-то там лишняя..
Иван # 29 июля 2011 в 14:26 0
Поточнее, на примере кода
Keep # 7 апреля 2011 в 19:56 0
Подскажите в чём может быть проблема у каталога в гугле?
Виктор # 8 апреля 2011 в 08:59 +1
-Посмотри в файл catalog.xml.
-Найди там файл с такой датой
-Посмотри на этот файл на хостинге (в смысле его дату/время)
-Сравни, Подумай :)
del # 7 апреля 2011 в 22:00 +2
А нельзя по крону сделать? Было бы куда удобней.
lezginka.ru # 8 апреля 2011 в 06:45 0
содержимое папки sitemap скопировал в папку components
4.1 В админке заходим в раздел Компоненты, жмем серую шестерню с зеленым плюсом и выбираем готовый для установки компонент "Карта сайта". Проверяем, чтобы он оказался в списке компонентов и был включен.
не появился в раздел Компоненты, что это может быть ?
lezginka.ru # 8 апреля 2011 в 06:46 0
там(Компоненты) еще странное сообщение :
--------------------
Warning: call_user_func(info_component_chat) [function.call-user-func]: First argument is expected to be a valid callback in /home/users2/p//core/cms.php  on line 665
--------------
Виктор # 8 апреля 2011 в 09:02 +1
Ты компоненту не правил?
Попробуй перезалить, она, скорее всего, потому и не появляется, что движок даёт ошибку при попытке её подключить.
lezginka.ru # 8 апреля 2011 в 09:22 0
компонент я не правил, это точно
lezginka.ru # 8 апреля 2011 в 09:27 0
чат отключил, карту перезалил, все по старому и сообщение "Warning: call_user_func(info_component_chat) [function.call-user-func]" тоже выскакивает, хотя чат отключил
Виктор # 8 апреля 2011 в 09:34 0
А после чего возникла ошибка?
У тебя стояла карта сайта, а потом ты решил поставить чат или наоборот?
Или ещё как-то по-другому?
HolyGun # 8 апреля 2011 в 09:35 0
попробуй физически удали компонент чат
потому как info_component_chat похоже на название функции в install.php

З.Ы. У меня карта с чатом не конфликтовала...
Виктор # 8 апреля 2011 в 09:54 +1
только что поставил на сайт и кричалку - всё ОК.
lezginka.ru # 8 апреля 2011 в 09:37 0
чат уже стоял, карту потом залил
-------------------------------------
физически удалить - это имеется ввиду только по БД или все файлы чата и из БД тоже, или БД можно оставить ?
HolyGun # 8 апреля 2011 в 09:40 +1
БД можно оставить. Не будет компонента, трогать БД никто не будет :)
lezginka.ru # 8 апреля 2011 в 09:41 0
а переименовал папку chat, не помогло, все равно сообщает Warning: call_user_func(info_component_chat111) [function.call-user-func]: First argument
lezginka.ru # 8 апреля 2011 в 09:45 0
удалил папку, сообщение не выскакивает, но карты тоже не видно в компонентах
HolyGun # 8 апреля 2011 в 09:50 0
А установлен компонент?
lezginka.ru # 8 апреля 2011 в 17:26 0
не показывается в компонентах(т.е. так и не установил)
lezginka.ru # 9 апреля 2011 в 02:08 0
что делать если домен без www
а генерируются с www
HolyGun # 9 апреля 2011 в 02:16 +2
в /components/sitemap/config.php в строке
Код PHP:
$config['add_www']			= true;
true замени на false
del # 9 апреля 2011 в 09:28 0
Что это может быть? http://www.onlinedisk.ru/view/642437
В Яндексе примерно то же самое...
Еще вчера убрал генерацию с www, чтоб он не думал, что это поддомен, дождался обновления карт сайта на яше и гугле, все равно ошибки.
0 # 9 апреля 2011 в 10:36 -1
Вот такой вопрос возник..
Значит карта все как есть работает, файлы находятся в папке sitemaps  а в роботе написано так: Sitemap: http://www.ok2net.kz/sitemap.xml  то есть ссылка на файл которого нету в корне. Может я немного недопонял, но мне кажется что надо в роботе ставить ссылку на папку с картами?
HolyGun # 9 апреля 2011 в 10:43 0
У тебя не создался файл с индексами. Его надо указывать в роботс.тхт
del # 9 апреля 2011 в 11:32 0
HolyGun, а насчет моего вопроса не в курсе? Вроде все правильно сделал, но не могу понять, в чем ошибки, из-за этого в индексе только 3 url с форума, а контент поисковиком не индексируется.
del # 9 апреля 2011 в 23:03 0
Странно, к вечеру в гугле все нормализовалось, осталось дождаться обновления в яше.
0 # 9 апреля 2011 в 13:45 0
то есть в корне должен быть файл sitemaps.xml  или в роботе надо указать на папку sitemaps?  или мне создать чистый файл sitemaps.xml ?
HolyGun # 9 апреля 2011 в 13:56 0
Скрипт сам создает все что нужно...
В роботс.тхт должен быть прописан индекс.
Подробнее тут: http://www.sitemaps.org/ru/protocol.php#index
Keep # 11 апреля 2011 в 02:26 0
А как убрать точку? Если убираю во frontend.php в 21 строке '.'. то карта не генерируется, или ещё нужно что то изменить?
0 # 14 апреля 2011 в 18:31 0
Всем здравствуйте. Вот такой вопрос у меня возник по данному компоненту:
Как сделать чтобы в карту сайта индексировалось содержание Инстантшоп?
Подскажите, люди добрые.
HolyGun # 14 апреля 2011 в 19:37 0
Нужен блок с запросом. А в виду того, что Инстантшоп платный, то и блока такого нет...
lezginka.ru # 14 апреля 2011 в 20:05 0
HolyGun , тебе нужен Инстантшоп  для этого ?
HolyGun # 14 апреля 2011 в 20:24 +2
по сути да... но, учитывая то, что он платный, я даже и не знаю...
Я его в глаза не видел...

готов буду над этим покумекать...
2All: Если кому не жалко поделиться тем, что Вы купили... Так сказать, ради благого дела...
Обещаю, дальше меня не уйдет. Я как бы тоже ценю чужой труд и чужие средства...
r2 # 14 апреля 2011 в 21:50 +6
напишите мне в личку ваш email, я предоставлю вам актуальную версию instantshop легально
Pampa # 14 апреля 2011 в 20:17 +2
Спасибо автору!
Поставил, работает отлично!
energy74 # 15 апреля 2011 в 13:59 0
А как сделать чтобы разделы InstantShop, тоже в карте сайта отображались
0 # 15 апреля 2011 в 15:39 0
прочитать последние 6 сообщений..затем ждать.
Saimon # 16 апреля 2011 в 16:52 0
А как сделать чтобы вообще и другие разделы, тоже в карте сайта отображались?
Например: Фотогалерея и Медиагалерея.
HolyGun # 16 апреля 2011 в 17:44 0
Надо писать блоки с запросами.
Saimon # 16 апреля 2011 в 19:28 0
А отсюда можно по подробней, как писать, для чайников если можно?
Я так понимаю это в файле config.php?
HolyGun # 16 апреля 2011 в 19:33 0
в директории с компонентом есть директория includes, в ней есть скрипты для каждого блока...
вот для нужного блока нужно писать свой скрипт...
Ну и добавлять его в конфиг...
Примерно как тут: http://www.instantcms.ru/blogs/udobnosti-i-poleznosti/dopolnenie-k-komponentu-karta-saita-sitemap-xml-dlja-instantshop.html
Saimon # 16 апреля 2011 в 19:37 0
И в папке includes.
Keep # 26 апреля 2011 в 05:42 0
Обновление карты будет?
venom_ # 4 мая 2011 в 15:18 0
На 1.8 будет работать?
PrazdNik # 30 мая 2011 в 08:44 0
да, все работает
Яковлев Павел # 15 июня 2011 в 18:31 0
Извиняюсь, установил компонент, создал папку sitemaps в корне сайта.
Создал пункт в меню и прикрепил к нему компонент. И все, дальше никаких движений. Папка sitemaps пуста. Сам компонент на редактирование не открывается, выкидывает на список компонентов.

Я что то упустил?
Яковлев Павел # 16 июня 2011 в 13:16 0
Все, разобрался. Дерево формируется при заходе на страницу site.ru/sitemap

Но вот вопрос, индексация идет по древу папок в контенте сайта. Есть блоки статей, которые нежелательны для вывода в карте, но необходимы на самом сайте. Непонятно как делать такие исключения.
lezginka.ru # 16 июня 2011 в 14:02 0
файл роботс
maia # 16 июня 2011 в 18:49 -1
Роботс поисковикам запретит там лазить, а карта все равно с этими разделами построится. Тоже хотелось бы как-то койче исключать.
HolyGun # 16 июня 2011 в 18:56 0
Как и что вы планируете исключать?
Потому как эта возможность будет не лишней для новой версии...
0 # 16 июня 2011 в 19:22 -1
Фотографии!!!!! ))) надо в карту сайта))) Видео аудио)
maia # 16 июня 2011 в 21:17 -1
Да, галерею надо включить.
Вообще полезным было бы как-то отключить профили юзеров, но включить их фото, блоги итд. Так как для поиска сами профили вред, а их содержимое - контент.
Яковлев Павел # 20 июня 2011 в 18:15 0
Ну определенные статьи или даже папки со статьями.
lezginka.ru # 16 июня 2011 в 19:38 0
желательно иметь возможнось выбора:
включать/исключать - категории(разделы в статьях), т.е.
/stati/pervay
/stati/vtoray
/stati/12345

нужно включить "/stati/12345" и"/stati/pervayа" , а  категорию "/stati/vtoray" исключить из карты

то же самое может пригодится и про форумы,фото,блоги
bsv # 28 июня 2011 в 04:21 0
не запустилась на 1.8 при нажатии в админке на уже установленный компонент "карта сайта" страница перезагружается и я опять в разделе компоненты((((
0 # 23 июля 2011 в 12:22 -1
Здравствуйте!
Сегодня решил заглянуть в карту сайта... Когда-то поставил себе и забыл)))
Ошибку можно увидеть тут:
http://russianpoetry.ru/sitemap
Карта по делу слишком выросла... Как исправить:?
maia # 23 июля 2011 в 12:56 +1
Я не увидела там ошибки - карта, как карта..
Keep # 23 июля 2011 в 13:15 +1
Где ошибка в карте? То что дизайн разъехался это ошибка шаблона а не карты сайта.
Blit # 29 июля 2011 в 14:43 0
Вы имеете ввиду, что на ней слишком много контента отображается, здесь нужно сделать ограничение по выводу.
rim89 # 29 июля 2011 в 22:15 0
Из за чего могут не создаваться .xml в папке sitemaps ?
* права стоят 755
Санчес # 30 августа 2011 в 20:36 +1
ошибочку нашел:
в разделах где много статей и они отображаются постранично, не все они попадают в сайтмап. но при этом в html что выводится на экран все статьи и разделы присутствуют.
Заметил после того как замедлилась индексация сайта Яндексом и сайт разросся.
seyfer # 7 сентября 2011 в 14:01 0
Спасибо!!! Очень полезно.
еGо # 20 сентября 2011 в 17:17 0
Установил,карта на сайте появилась. Но отсутствует передача файлов, как по третьему скриншоту работы компонента. Подскажите где копать плиз?! Версия 1.8
lezginka.ru # 20 сентября 2011 в 17:32 0
файлы автоматом появляются в папке
еGо # 20 сентября 2011 в 18:20 +1
А для чего тогда 3 пункт скриншота,если он отсутствует?
Gorec # 1 октября 2011 в 16:43 0
3ий скриншот, где он у нас на сайте должен находиться? И эта карта сайта только для гугла?
maia # 1 октября 2011 в 18:53 -1
В каком смысле только для гугла? Там xml - он для всех. Просто в гугл можно принудительно карту отправлять, а в яндекс только один раз в вебмастере добавить. И то и другое не обязательно, вообще сами найдут со временем, но так быстрее.
еGо # 20 сентября 2011 в 20:18 0
И каким образом можно исключить из карты фотографии пользователей?
HolyGun # 20 сентября 2011 в 20:40 +1
Загляни в конфиг.пхп и все поймешь :)
Gumoff # 12 января 2012 в 13:39 0
А для чего тогда 3 пункт скриншота,если он отсутствует?
И возможно ли сделать автоматическую, постоянную генерацию карты, при создании любого нового УРЛ ?
Darik # 30 ноября 2011 в 20:18 +2
на 1.9 работает создает файлы catalog.xml users.xml forum.xml board.xml faq.xml ,но кроме sitemap.xml. Все делаю по описанию в чем может быть проблема?
Darik # 10 декабря 2011 в 18:02 +1
все разобрался кому интересно как в личку
maia # 10 декабря 2011 в 18:17 -1
А у меня чет и само по себе все работает на 1,9
Keep # 7 декабря 2011 в 23:30 0
На 1.9 будет работать компонент?
lezginka.ru # 21 января 2012 в 01:10 0
проблема при установке 1.9
2. Распаковываем, и загружаем содержимое архива в корень директории ./components
3. В админке заходим в раздел Компоненты, жмем серую шестерню с зеленым плюсом и выбираем готовый для установки компонент "Карта сайта".
не видит компонент
кто сталкивался ?
lezginka.ru # 21 января 2012 в 01:14 0
ответ:
у меня оказывается был установлен, а при повторной заливке не показывало.
когда удалил старую версию,проблема решилась
ozon # 2 февраля 2012 в 02:28 0
Доброго всем времени. Скажите, у меня на карте сайта отображается буквально все. Как убрать с карты доску объявлений, фотографии и сделать что бы зарегистрированные пользователи не выводилсь на карту??
еGо # 2 февраля 2012 в 05:17 0
В файле: components/sitemap/config.php
// 3. Индивидуальные настройки разделов
Запрещаем в карте вывод пользователей.

находим:
// Раздел Пользователи
$block = 'users';
$config[$block]['allow']

заменяем на:
// Раздел Пользователи
$block = 'users';
$config[$block]['Disallow']

То есть вместо allow прописываем Disallow

Пропишите так же Disallow для доски объявлений, она отключится.
ozon # 28 февраля 2012 в 00:10 0
Благодарю за помощь и ответ. Респект и уважение.
lezginka.ru # 5 февраля 2012 в 01:02 0
с чем может быть связано, скрипт не видит УК и статьи ?
st.Puh # 25 февраля 2012 в 22:46 0
Поставил на 1.9 исправил 21 строку все прекрасно работает.Вот бы ещо добавить в генератор photos общий альбом картинок
banachi # Сегодня в 21:32 0
HolyGun, спасибо огромное за компонент, давно искал,ещё раз спасибо
stairway to hell # 25 февраля 2012 в 23:57 0
лучше взять xenu и просканить ей, а подобные карты только нагрузку дадут необоснованную