X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Карта сайта, создание карты для своих модулей
Maximkaboom
сообщение 2010-05-04, 17:30
Сообщение #1
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 766
Регистрация: 2010-04-08
Версия системы: RC5

Репутация:   нет  
Всего: 1


Ну, продолжая тему, интеграции сторонних модулей в CMS. Подскажите, как сделать так, чтобы создавалась карта сайта моего модуля:

Цитата
<url>
<loc>
http://dream-cs.ru/
</loc>
<lastmod>
2010-03-20
</lastmod>
<changefreq>
daily
</changefreq>
<priority>
1.0
</priority>
</url>
<url>
<loc>
http://dream-cs.ru/server-1
</loc>
<changefreq>
never
</changefreq>
<priority>
0.5
</priority>
</url>
<url>
<loc>
http://dream-cs.ru/cs
</loc>
<changefreq>
always
</changefreq>
<priority>
0.7
</priority>
</url>





Как я понял, это нужно описать в plugins.php, но сам допереть не могу

Сообщение отредактировал Maximkaboom - 2010-05-04, 17:31
Перейти в начало страницы
+Цитировать сообщение
Alexander
сообщение 2010-05-04, 23:19
Сообщение #2
Eleanor developer
Иконка группы

Группа: Администраторы
Сообщений: 5 261
Регистрация: 2008-11-11
Из: Николаев
Версия системы: RC5

Репутация:   нет  
Всего: 67


Все достаточно прозрачно. Для примера возьмем файл plugins.php от модуля static. (Сам файл plugins.php необходимо подключить в интерфейсе управления модулем Админка -> Управление модулями -> Правка модуля -> файл плагина).

Интересующие нас строки:

		static $abilities=array(
									&#039;sitemap&#039;,
		);

Это ознчает, что модуль может генерировать карту сайта.

		public function DoSitemap($per_time,$sdata)
		{
			if(!$sdata)
				$sdata=array(&#039;offset&#039;=>0);
			$this->Mainclass->LoadOptions(&#039;module_static&#039;,false);
			$result=$this->Mainclass->Db->Query(&#039;SELECT `url` FROM `f_static` LIMIT &#039;.$sdata[&#039;offset&#039;].&#039;,&#039;.$per_time,__file__,__line__);
			$sdata[&#039;offset&#039;]+=$this->Mainclass->Db->Num_rows();
			$this->Url=&$this->Mainclass->SUrl;
			while($arr=$this->Mainclass->Db->Fetch_assoc($result))
				Sitemap($this->Mainclass->SUrl->ConstructUrl(array(&#039;doc&#039;=>$arr[&#039;url&#039;])),&#039;&#039;,&#039;monthly&#039;,0.5);
			return $sdata;
		}

Сама функция генерации карты сайта. Поясню детали. Функция получает на входе два параметра: $per_time - сколько ссылок разрешено сгенерировать за один вызов функции (после того, скрипт самоперезагружается и функция вызывается еще раз). $sdata - данные, возвращенные этой же функцией прошлый раз (зачем это надо, лучше всего посмотреть в модулях новости и файлы). Функция должна вызвать Sitemap() с тремя параметрами: ссылка, скорость обновления информации поисковиками, приоритет. Если функция ни раз не вызывала Sitemap(), считается, что все возможные URL уже сгенерированы и управление передается следующему модулю.
Перейти в начало страницы
+Цитировать сообщение
Maximkaboom
сообщение 2010-05-05, 1:44
Сообщение #3
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 766
Регистрация: 2010-04-08
Версия системы: RC5

Репутация:   нет  
Всего: 1


Alexander, сделал так:

   
Цитата
 static $abilities=array(
                                    'sitemap',
        );
        
        public function DoSitemap($per_time,$sdata)
        {
            if(!$sdata)
                $sdata=array('offset'=>0);
            $this->Mainclass->LoadOptions('module_server',false);
            $result=$this->Mainclass->Db->Query('SELECT `server_id` FROM `f_servers` LIMIT '.$sdata['offset'].','.$per_time,__file__,__line__);
            $sdata['offset']+=$this->Mainclass->Db->Num_rows();
            $this->Url=&$this->Mainclass->SUrl;
            while($arr=$this->Mainclass->Db->Fetch_assoc($result))
                Sitemap($this->Mainclass->SUrl->ConstructUrl(array('doc'=>$arr['server_id'])),'','monthly',0.5);
            return $sdata;
        }

В админке получаю:
Parse error: syntax error, unexpected T_PUBLIC in /home/xxxxxxxxx/public_html/modules/monitoring/plugins.php on line 10

Сообщение отредактировал Maximkaboom - 2010-05-05, 9:22
Перейти в начало страницы
+Цитировать сообщение
Maximkaboom
сообщение 2010-05-05, 9:25
Сообщение #4
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 766
Регистрация: 2010-04-08
Версия системы: RC5

Репутация:   нет  
Всего: 1


 C этим отбой=) догадался сам=)




Но вот проблема:

При добавлении в файле sitemap получаються вот такие ссылки:

[url]http://dream-cs.ru/server/425.php[/url]


Как сделать, чтобы ссылки были такого вида:

[url]http://dream-cs.ru/server-425[/url]
Перейти в начало страницы
+Цитировать сообщение
Maximkaboom
сообщение 2010-05-06, 21:02
Сообщение #5
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 766
Регистрация: 2010-04-08
Версия системы: RC5

Репутация:   нет  
Всего: 1


 Сделал вот так:

public function DoSitemap($per_time,$sdata)
		{
		global $Mainclass;
			if(!$sdata)
				$sdata=array(&#039;offset&#039;=>0);
			$this->Mainclass->LoadOptions(&#039;module_server&#039;,false);
			$result=$this->Mainclass->Db->Query(&#039;SELECT `server_id` FROM `f_servers` LIMIT &#039;.$sdata[&#039;offset&#039;].&#039;,&#039;.$per_time,__file__,__line__);
			$sdata[&#039;offset&#039;]+=$this->Mainclass->Db->Num_rows();
			$this->Url=$this->Mainclass->SUrl;
			while($arr=$this->Mainclass->Db->Fetch_assoc($result))
				Sitemap($Mainclass->Url->ConstructUrl(array(&#039;doc&#039;=>&#039;server-&#039;.$arr[&#039;server_id&#039;])),&#039;&#039;,&#039;always&#039;,0.5);
			return $sdata;
}





Начал делать ссылки вида:

[url]http://dream-cs.ru/admin.php?section=management&key=0262a6e2e717e0716d4fd6b35ed6472c&module=sitemap&doc=server-291[/url]
 

Сообщение отредактировал Maximkaboom - 2010-05-06, 21:04
Перейти в начало страницы
+Цитировать сообщение
Maximkaboom
сообщение 2010-05-07, 13:46
Сообщение #6
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 766
Регистрация: 2010-04-08
Версия системы: RC5

Репутация:   нет  
Всего: 1


 Все, справился сам=) сделал проще:





public function DoSitemap($per_time,$sdata)
		{
		global $Mainclass;
			if(!$sdata)
				$sdata=array(&#039;offset&#039;=>0);
			$this->Mainclass->LoadOptions(&#039;module_server&#039;,false);
			$result=$this->Mainclass->Db->Query(&#039;SELECT `server_id` FROM `f_servers` LIMIT &#039;.$sdata[&#039;offset&#039;].&#039;,&#039;.$per_time,__file__,__line__);
			$sdata[&#039;offset&#039;]+=$this->Mainclass->Db->Num_rows();
			$this->Url=$this->Mainclass->SUrl;
			while($arr=$this->Mainclass->Db->Fetch_assoc($result))
				Sitemap(&#039;server-&#039;.$arr[&#039;server_id&#039;],&#039;&#039;,&#039;always&#039;,0.5);
			return $sdata;
		}



Alexander, спасибо за подсказку=)
Перейти в начало страницы
+Цитировать сообщение
Гость_dimavsr_*
сообщение 2010-09-11, 12:32
Сообщение #7



Гости





Добрый день. Подскажите, как сделать карту сайта на самом сайте (например, в виде модуля) или создать его в файле sitemap.xml ?
P.S. При создании карты сайта с помощью генератора карты сайта через админку система пишет "Ошибка! Ошибка открытия файла!"

Сообщение отредактировал dimavsr - 2010-09-11, 12:33
Перейти в начало страницы
+Цитировать сообщение
Skyff
сообщение 2010-09-11, 12:48
Сообщение #8
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


dimavsr, Права на запись есть у файла карты сайта?
Перейти в начало страницы
+Цитировать сообщение
Гость_dimavsr_*
сообщение 2010-09-11, 13:01
Сообщение #9



Гости





Цитата (Skyff @ 2020-12-03 20:50)
Права на запись есть у файла карты сайта?

спс, работает. забыл права выставить.
еще вопрос не совсем в тему: урлы на моем сайте на русском. в только что созданной карте сайта, а также в ПС Яндекс они видны в виде крякозябров. Есть ли возможность это исправить?
Перейти в начало страницы
+Цитировать сообщение
Skyff
сообщение 2010-09-11, 13:07
Сообщение #10
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


dimavsr, А это не вредит индексации. Исправить если только переименовать в англ, так вроде нельзя. При поиске они выводятся в нормальном виде.
Перейти в начало страницы
+Цитировать сообщение
Гость_dimavsr_*
сообщение 2010-09-12, 5:49
Сообщение #11



Гости





Вот именно, что при поиске они в виде крякозябров и выводятся

http://yandex.ru/yandsearch?text=%22%D0%BD%D0%B5+%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%B0%D1%8F+%D0%B8%D0%B7-%D0%B7%D0%B0+%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0+%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE+%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C+%D0%B2+%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%22&clid=9582&lr=38

хотя в гугле нормально

http://www.google.ru/search?hl=ru&newwindow=1&q=%22%D0%BD%D0%B5+%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%B0%D1%8F+%D0%B8%D0%B7-%D0%B7%D0%B0+%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0+%D0%BC%D0%BE%D0%B6%D0%BD%D0%BE+%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C+%D0%B2+%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%22&aq=f&aqi=&aql=&oq=&gs_rfai=
Перейти в начало страницы
+Цитировать сообщение
Skyff
сообщение 2010-09-12, 12:23
Сообщение #12
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


У меня все нормально выдаёт.
Перейти в начало страницы
+Цитировать сообщение
Гость_dimavsr_*
сообщение 2010-09-12, 13:52
Сообщение #13



Гости





а браузер какой? у меня опера
Перейти в начало страницы
+Цитировать сообщение
Loader
сообщение 2010-09-12, 14:05
Сообщение #14
Профессионал
Иконка группы

Группа: Eleanor user
Сообщений: 1 161
Регистрация: 2010-04-19

Репутация:   нет  
Всего: нет


Цитата (dimavsr @ 2010-09-12, 13:52)
а браузер какой? у меня опера


У меня Опера. Выдаёт вот так:



И так:

Перейти в начало страницы
+Цитировать сообщение
Skyff
сообщение 2010-09-12, 14:36
Сообщение #15
Опытный
Иконка группы

Группа: Eleanor user
Сообщений: 928
Регистрация: 2009-02-08
Из: Литва

Репутация:   нет  
Всего: 4


dimavsr, а ты конкурентов по запросам не учитываешь, за это время по запросом конкурентов появилось, а чей запрос первый тот и выше. Продвигай лучше сайт по запросом а не плачь. Все нормально индексируется, дело в конкурентах и обращений к сайту по запросам.
Ты же мне когда то писал что 2 года СЕО занимаешься , что за вопросы у тебя как у новичка...


dimavsr, Посты свои не красиво удалять...

Сообщение отредактировал Skyff - 2010-09-12, 17:03
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0395 сек.    11 запросов    GZIP включен    Сейчас: 2020-12-03, 19:50