Форум русской поддержки Joomla!® CMS
10.12.2016, 01:15:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

[Решено] Генерация XML файла на основе Xmap.

 (Прочитано 7933 раз)
0 Пользователей и 1 Гость смотрят эту тему.
2ball
Захожу иногда
**

Репутация: +2/-0
Offline Offline

Сообщений: 19


« : 01.02.2012, 14:49:28 »

В общем, где-то прочитал, что лучше использовать файл карты сайта, а не динамическую страницу. Вроде как влияет на индексацию. Верить, не верить дело каждого. Однако мне такой файлик ничего не стоит. Потому решил его разместить и скормить Яндекс с Гуглом.
Для карты сайта я использую Xmap, и раз он генерит карту, у него мы и возьмем весь текст для файла. Все вышло неплохо. Написал скриптик. Обработку. Поставил на крон. Теперь каждый день сайт сам генерирует карту сайта в физический файл, а не по URL.
Если кому-то понадобится. Выкладываю код скрипта.

Пишете код в любой файлик, кидаете куда удобно на хостинге, и добавляете в крон.
P.S. - Репортинг добавлен, чтобы по почте получать информацию об успешной генерации карты.

Дополнение. Файлик для поисковиков будет называться sitemap.xml и лежать там же, где и скрипт.

Код:
<?php
$url="http://".$_SERVER['HTTP_HOST']."/index.php?option=com_xmap&sitemap=1&view=xml";
$xml_code = file_get_contents($url);

if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code))
   {
      echo "<h1>XML sitemap successfully updated</h1>";
      $xml_code = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml');
      $xml_code = str_replace ("</url>", "</url><br>", $xml_code);
      echo $xml_code;
   }
      else echo "<h1>Error!</h1>";
?>

« Последнее редактирование: 02.02.2012, 17:09:31 от 2ball » Записан
JoomlaTeacher
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 13



« Ответ #1 : 01.02.2012, 16:36:17 »

Я бы поправил код замечаниями:

<?php
$url="http://".$_SERVER['HTTP_HOST']."/index.php?option=com_xmap&sitemap=1&view=xml"; /* Здесь ввести путь из "Компонеты - Xmap - Настройки - URL карты: - XML карта:*/

$xml_code = file_get_contents($url);

if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code))
   {
      echo "<h1>XML sitemap succefully updated</h1>";
      $xml_code = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml');
      $xml_code = str_replace ("</url>", "</url><br>", $xml_code);
      echo $xml_code;
   }
      else echo "<h1>Error!</h1>";
?>

У меня Joostina и там путь немного не так выглядит, и слеш нужен, а то лепит XML на уровень выше корня сайта и название прикольное - "public_htmlsitemap.xml"

За скрипт - спасибо.
Записан
2ball
Захожу иногда
**

Репутация: +2/-0
Offline Offline

Сообщений: 19


« Ответ #2 : 01.02.2012, 17:04:31 »

Так в принципе там путь разве что Joostina не подходит. Это стандартный Xmap путь к XML карте. Но Вы правы, чем больше комментариев, тем лучше.
Надо будет попозже прикрутить кнопку к админке, на принудительную генерацию файлика. Плагин из скриптика.
Записан
Langoliers
Завсегдатай
*****

Репутация: +67/-2
Offline Offline

Пол: Мужской
Сообщений: 693


Если б Я изучал людей, то был бы паразитологом


« Ответ #3 : 25.04.2012, 12:00:22 »

Добавлю еще то, что если не использовать Cron, то права на скрипт, который мы предварительно сохранили в .php, нужно выставить 705
« Последнее редактирование: 18.07.2012, 10:48:28 от Langoliers » Записан
alexj69
Давно я тут
****

Репутация: +27/-0
Offline Offline

Пол: Мужской
Сообщений: 244


Думать надо!!!


« Ответ #4 : 31.05.2012, 13:06:57 »

В карте сайта, сформированной компонентом Xmap ссылки формируются без www, а после обработки вашим скриптом в файле sitemap.xml ссылки отображаются с www. Как поправить этот глюк?

Решил проблему добавлением в .htaccess следующего кода
Цитировать
RewriteBase /

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
« Последнее редактирование: 31.05.2012, 13:45:54 от alexj69 » Записан
alexj69
Давно я тут
****

Репутация: +27/-0
Offline Offline

Пол: Мужской
Сообщений: 244


Думать надо!!!


« Ответ #5 : 01.06.2012, 12:13:08 »

Подскажите, что нужно добавить в этот код, чтобы на карте сайта отображалось время ее создания?
Записан
dron
Живу я здесь
******

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« Ответ #6 : 28.06.2012, 16:54:40 »

А можно чуть подробнее, пожалуйста!

1. В каком формате сохранять скрипт?
2. Что именно и как настраивать в cron?

Заранее спасибо!
Записан
Marakaya
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 59


« Ответ #7 : 02.07.2012, 08:50:03 »

Вопрос такого характера. На сайте стоит галочка Включить SEO - да. Все ссылки имеют читабильный вид (по синонимам), но вот когда Xmap генерит карту сайта, все ссылки имеют вид без синонимов, а именно - therapy/2011-10-15-08-59-20, но ссылки эти все равно открываются. Как сделать чтобы Xmap генерил карту сайта с нормальными ссылками?
Записан
alexj69
Давно я тут
****

Репутация: +27/-0
Offline Offline

Пол: Мужской
Сообщений: 244


Думать надо!!!


« Ответ #8 : 02.07.2012, 13:32:07 »

А SEO-ссылки каким компонентом формируются? Проверьте, есть ли в Xmap соответствующий плагин.
Записан
ippa
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #9 : 05.07.2012, 14:51:36 »

Добрый день.
Возможно-ли поставить таймаут на выполнение скрипта? Если 1000 товаров - то всё нормально выполняется и сохраняется - и через браузер, и через Cron. Если 5000 товара - то через браузер с натягом (не с помощью скрипта, а ввожу сайт/index.php?option=com_xmap&view=xml&tmpl=component&id=1), если в браузере ввожу сайт/map/automap.php - то через 2 минуты выдает ошибку -

Warning: file_get_contents(http://сайт.ru/index.php?option=com_xmap&view=xml&tmpl=component&id=1): failed to open stream: HTTP request failed! in /var/www/владелец/data/www/сайт/map/automap.php on line 5

А у меня всего 20000....
Манипуляции с увеличением таймаутов, памяти и т.д. ни к чему не привели - даже спец. для этого на выделенный сервер переехал.
Записан
alexfom_16
Давно я тут
****

Репутация: +24/-0
Offline Offline

Сообщений: 257


« Ответ #10 : 21.07.2012, 13:54:31 »

Здравствуйте! Создал файл "sitemap.php", в файл вставил код, который указан выше, закинул на хостинг, выставил файлу права 705, в cron указал путь к файлу "/public_html/sitemap.php".
При выполнении отправляет на почту сообщение:
.../public_html/sitemap.php: line 1: ?php: No such file or directory
.../public_html/sitemap.php: line 2: =http://.[HTTP_HOST]./index.php?option=com_xmap&sitemap=1&view=xml: No such file or directory
.../public_html/sitemap.php: line 2:
: command not found
...public_html/sitemap.php: line 3: syntax error near unexpected token `('
...public_html/sitemap.php: line 3: `$xml_code = file_get_contents($url); '

Вписываю в строку в браузере путь к файлу "http://мой сайт.ru/sitemap.php". Все, файл появился по адресу "http://мой сайт.ru/sitemap.xml".
Подскажите, пожалуйста, что я делаю не так? Как сделать так, чтобы файл создавался (обновлялся) автоматически? Спасибо!
Записан
zloy lamer
Давно я тут
****

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 210



« Ответ #11 : 24.07.2012, 00:28:58 »

сорри за нубский вопрос...
а как добавить в крон? какую команду надо прописать?
или просто /public_html/sitemap.php ?
Записан
Langoliers
Завсегдатай
*****

Репутация: +67/-2
Offline Offline

Пол: Мужской
Сообщений: 693


Если б Я изучал людей, то был бы паразитологом


« Ответ #12 : 24.07.2012, 12:34:19 »

а как добавить в крон? какую команду надо прописать?
Читаем, что такое Cron и ищем такую функцию в панели управления хостингом. Если ее не будет, то в ручную раз в день (или когда хотите) заходите по адресу mysite.com/sitemap.php (права на файл должны стоять 705(!)
Записан
zloy lamer
Давно я тут
****

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 210



« Ответ #13 : 24.07.2012, 14:44:10 »

Читаем, что такое Cron и ищем такую функцию в панели управления хостингом. Если ее не будет, то в ручную раз в день (или когда хотите) заходите по адресу mysite.com/sitemap.php (права на файл должны стоять 705(!)
да читал уже...
надо вставить в командную строку: ./public_html/sitemap.php?
только у меня тоже выдает ошибки при получении письма как в 10 топике...
объясните на пальцах для тех кто в танке и каску не снимает никогда=)
заранее огромное спасибо!
Записан
Langoliers
Завсегдатай
*****

Репутация: +67/-2
Offline Offline

Пол: Мужской
Сообщений: 693


Если б Я изучал людей, то был бы паразитологом


« Ответ #14 : 24.07.2012, 17:08:09 »

В общем смотрите... Есть у меня сайт danceplane.ru, на котором я использую Xmap и выше приведенный скрипт... Я создал задание в Cron'e, но могу так же выполнить ту же самую операцию просто зайдя по адресу danceplane.ru/sitemap.php
Можете попробовать сами...
А как создать задание в кроне зависит от полного(!) пути вашей папки... видимо путь вы указали не верный...
Записан
zloy lamer
Давно я тут
****

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 210



« Ответ #15 : 24.07.2012, 17:37:48 »

файл кинул в корневую папку, т.е. в public_html.
xml файл нормально обновляется и создается в корневой папке при прямом запросе скрипта, т.е. при наборе http://my_site.ru/sitemap.php все получается норм.
в crone прописываю ./public_html/sitemap.php ставлю время на выполнение, после выполнения приходит письмо на почту с ошибкой как в 10 топике...
что не так, не пойму... хотелось бы автоматизировать данный процесс а не пользоваться прямым вызовом скрипта...
вот я и не пойму в чем проблема, вроде все нормально сделал...
может просто я нуб?
если не сложно распишите по полочкам, с кроном не сталкивался раньше...
но как уже понял вещь кульная...
заранее большое спасибо! + не заржавею, не жалко...
Записан
Langoliers
Завсегдатай
*****

Репутация: +67/-2
Offline Offline

Пол: Мужской
Сообщений: 693


Если б Я изучал людей, то был бы паразитологом


« Ответ #16 : 24.07.2012, 18:41:34 »

Что за хостинг?
Если папка у вас только public_html (один сайт) то вы должны написать только ~/public_html/sitemap.php
Если у вас несколько сайтов лежит в соответствующих ссылках то пишите так:
~/название_папки_где_лежит_сайт/public_html/sitemap.php

Знак ~ обязателен, так как он заменяет полный путь до папки...
Записан
zloy lamer
Давно я тут
****

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 210



« Ответ #17 : 24.07.2012, 19:07:12 »

/home/my_site/public_html/sitemap.php: line 1: ?php: No such file or directory
/home/my_site/public_html/sitemap.php: line 2: =http://.[HTTP_HOST]./index.php?option=com_xmap&sitemap=1&view=xml: No such file or directory
/home/my_site/public_html/sitemap.php: line 3: syntax error near unexpected token `('
/home/my_site/public_html/sitemap.php: line 3: `$xml_code = file_get_contents($url);'
вот такой ответ в письме... знак ~ поставил, но без результата, до этого ставил . тот же ответ был...
Записан
zloy lamer
Давно я тут
****

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 210



« Ответ #18 : 24.07.2012, 19:07:32 »

сайт один
Записан
Langoliers
Завсегдатай
*****

Репутация: +67/-2
Offline Offline

Пол: Мужской
Сообщений: 693


Если б Я изучал людей, то был бы паразитологом


« Ответ #19 : 24.07.2012, 19:23:02 »

так.. давайте вы через FileZilla войдете в корень своего сайта (там где лежит файл sitemap.php) и скинете мне путь который будет выводиться в адресной строке клиента (без названия сайта конечно)
Записан
zloy lamer
Давно я тут
****

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 210



« Ответ #20 : 24.07.2012, 19:24:40 »

разобрался... списался с хостером, благо реагируют быстро...
посоветовали прописать такую команду: wget -O /dev/null http://домен/путь_до_скрипта
помогло, все заработало!
спасибо за помощь!
Записан
zloy lamer
Давно я тут
****

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 210



« Ответ #21 : 24.07.2012, 19:27:29 »

в файлзиле так и прописывается: /public_html/
это корень сайта где лежит файл скрипта sitemap.php
Записан
zloy lamer
Давно я тут
****

Репутация: +13/-0
Offline Offline

Пол: Мужской
Сообщений: 210



« Ответ #22 : 24.07.2012, 19:28:17 »

т.е. получается это особенности хостинга....
Записан
accept2008
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 34


« Ответ #23 : 08.05.2014, 10:59:57 »

J 2.5

Файлик (705) выдает Error! http://ipoet.com.ua/sitemap.php

Содержимое:

Код:
<?php
$url="http://".$_SERVER['HTTP_HOST']."/index.php?option=com_xmap&view=xml&tmpl=component&id=1";

$xml_code = file_get_contents($url);

if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code))
   {
      echo "<h1>XML sitemap succefully updated</h1>";
      $xml_code = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml');
      $xml_code = str_replace ("</url>", "</url><br>", $xml_code);
      echo $xml_code;
   }
      else echo "<h1>Error!</h1>";
?>

Файл sitemap.xml создается, но с весом 0Байт.



Заранее спасибо!
« Последнее редактирование: 08.05.2014, 11:05:34 от accept2008 » Записан
suwariwaza
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 90


« Ответ #24 : 18.11.2014, 23:44:18 »

J 2.5

Файлик (705) выдает Error! http://ipoet.com.ua/sitemap.php

Содержимое:

Код:
<?php
$url="http://".$_SERVER['HTTP_HOST']."/index.php?option=com_xmap&view=xml&tmpl=component&id=1";

$xml_code = file_get_contents($url);

if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code))
   {
      echo "<h1>XML sitemap succefully updated</h1>";
      $xml_code = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml');
      $xml_code = str_replace ("</url>", "</url><br>", $xml_code);
      echo $xml_code;
   }
      else echo "<h1>Error!</h1>";
?>

Файл sitemap.xml создается, но с весом 0Байт.



Заранее спасибо!

То-же самое! Нашёл кто нибудь решение?
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3537


« Ответ #25 : 19.11.2014, 10:20:08 »

То-же самое! Нашёл кто нибудь решение?
Что гадаете, читайте лог файлы там ошибки написаны
Записан
suwariwaza
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 90


« Ответ #26 : 20.11.2014, 01:08:23 »

Что гадаете, читайте лог файлы там ошибки написаны
В логах пусто
Записан
alexj69
Давно я тут
****

Репутация: +27/-0
Offline Offline

Пол: Мужской
Сообщений: 244


Думать надо!!!


« Ответ #27 : 20.11.2014, 19:11:33 »

а когда в браузере открываете файл, какой результат отображается?
Записан
diy05
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 22


« Ответ #28 : 03.12.2014, 19:10:30 »

а когда в браузере открываете файл, какой результат отображается?
отображается "Error!"
Записан
alexj69
Давно я тут
****

Репутация: +27/-0
Offline Offline

Пол: Мужской
Сообщений: 244


Думать надо!!!


« Ответ #29 : 03.12.2014, 19:16:54 »

Поэтому файл с картой и пустой. Что-то не так настроили в рнр-файле
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet