Искать  
 
   
2 из 2
2
Карта сайта
Отправлено: 23 Сентябрь 2009 12:44 P.M.   [ Игнорировать ]   [ # 16 ]
Администратор
Avatar
RankRankRankRank
Всего сообщений:  1423
Зарегистрирован  2007-12-27
Sezarin - 04 Сентябрь 2009 07:29 P.M.

Второй год пользуюсь бесплатным десктопным приложением - генератором sitemaps
http://gsitecrawler.com/
Альтернативы не искал - незачем.
К XML цепляет XSL, поэтому в браузере карта имеет весьма приличный табличный вид...

есть проблемы с русскими символами в URL, например страницы тэгов опять же таки не распознает.

 Подпись 

ExpressionEngine - SEO-ориентированный движок

Профиль
 
 
Отправлено: 23 Сентябрь 2009 02:48 P.M.   [ Игнорировать ]   [ # 17 ]
Студент
RankRank
Всего сообщений:  73
Зарегистрирован  2008-05-21

Да, верно, проблем с русскими символами в URL много, и не только у отдельно взятых программ.  Например, далеко не у всех онлайн-сервисах, да даже и - браузерах, работает кодировка адреса в utf-8.  Во многих случаях страницы с русскими символами не находятся!  Теперь представим саму проблему детальнее:  1. Источник проблемы конвертирует при помощи urlencode() ру-символы,  в результате чего строка получается в три раза длинее.  2. Получатель (это может быть тот же источник, сохраняющий результат конвертации) обрезает строку по заданной макс. длине.  3. Пользователь получает битую ссылку, у него проблема! Но даже, если uri и не зацепила обрезка - в адресной строке браузера пользователя в подавляющем большинстве случаев  это выглядит довольно таки уродливо...

Профиль
 
 
Отправлено: 23 Май 2010 12:23 A.M.   [ Игнорировать ]   [ # 18 ]
Студент
RankRank
Всего сообщений:  91
Зарегистрирован  2008-01-02

А вот че за модуль http://www.putyourlightson.net/projects/sitemap и есть ли нулл версия?

Профиль
 
 
Отправлено: 23 Май 2010 10:13 A.M.   [ Игнорировать ]   [ # 19 ]
Member
Avatar
RankRankRank
Всего сообщений:  363
Зарегистрирован  2009-01-02

Я не пойму, зачем вам эти плагины и сервисы? В ручную же легко делается. Создаете шаблон в xml формате и вставляете туда:

<?xml version="1.0" encoding="UTF-8"?>
<urlset >
    <
url>
      <
loc>{homepage}</loc>
      <
lastmod>{current_time format="%Y-%m-%d"}</lastmod>
      <
changefreq>hourly</changefreq>
      <
priority>1.0</priority>
   </
url>
    
{exp:weblog:entries limit="100" weblog="news" disable="categories|trackbacks|pagination|member_data|category_fields" dynamic="off"}
  
<url>
      <
loc>{title_permalink="view"}</loc>
      <
lastmod>{entry_date format="%Y-%m-%d"}</lastmod>
      <
changefreq>daily</changefreq>
      <
priority>0.5</priority>
   </
url>
   
{/exp:weblog:entries}
</urlset

Ваша карта сайта для поисковиков готова

 Подпись 

Я в космосе

Профиль
 
 
Отправлено: 25 Май 2010 08:08 A.M.   [ Игнорировать ]   [ # 20 ]
Студент
RankRank
Всего сообщений:  100
Зарегистрирован  2009-05-13
Stop-TussiN - 23 Май 2010 10:13 A.M.

Я не пойму, зачем вам эти плагины и сервисы? В ручную же легко делается.

Полностью согласен. Приведу пример как у меня работает на сайте http://ProWedding.com.ua (в карту включены стартовая страница, статич. страницы, новости, статьи, галерея изображений, видеогалерея):

<?xml version="1.0" encoding="UTF-8"?> 
<urlset >

<
url
<
loc>{homepage}</loc
<
lastmod>{exp:stats}{last_entry_date format="{DATE_W3C}"}{/exp:stats}</lastmod
<
changefreq>always</changefreq
<
priority>1.0</priority
</
url>

{exp:weblog:entries weblog="site_pages" limit="500" disable="categories|custom_fields|member_data|pagination|trackbacks" rdf="off" dynamic="off" status="Open" orderby="uri_title" sort="asc"}
{if page_url
!="http://prowedding.com.ua/"}
<url
<
loc>{page_url}</loc
<
lastmod>{gmt_edit_date format="{DATE_W3C}"}</lastmod
<
changefreq>weekly</changefreq
<
priority>0.8</priority
</
url>
{/if}
{
/exp:weblog:entries}

{exp
:weblog:entries weblog="news" limit="500" disable="categories|custom_fields|member_data|pagination|trackbacks" rdf="off" dynamic="off" status="Open" orderby="date" sort="desc"
<url
<
loc>{title_permalink="news/view"}</loc
<
lastmod>{gmt_edit_date format="{DATE_W3C}"}</lastmod
<
changefreq>weekly</changefreq
<
priority>0.5</priority
</
url
{/exp:weblog:entries}

{exp
:weblog:entries weblog="articles" limit="500" disable="categories|custom_fields|member_data|pagination|trackbacks" rdf="off" dynamic="off" status="Open" orderby="date" sort="desc"
<url
<
loc>{title_permalink="articles/view"}</loc
<
lastmod>{gmt_edit_date format="{DATE_W3C}"}</lastmod
<
changefreq>weekly</changefreq
<
priority>0.5</priority
</
url
{/exp:weblog:entries}

{exp
:weblog:entries weblog="video" limit="500" disable="categories|custom_fields|member_data|pagination|trackbacks" rdf="off" dynamic="off" status="Open" orderby="date" sort="desc"
<url
<
loc>{title_permalink="video/watch"}</loc
<
lastmod>{gmt_edit_date format="{DATE_W3C}"}</lastmod
<
changefreq>weekly</changefreq
<
priority>0.5</priority
</
url
{/exp:weblog:entries}

{exp
:gallery:entries gallery="photo" limit="500" disable="categories|custom_fields|member_data|pagination|trackbacks" rdf="off" dynamic="off" status="Open" orderby="date" sort="desc"}
{entries}
{row}
<url
<
loc>{id_path=gallery/view}</loc
<
lastmod>{entry_date format="{DATE_W3C}"}</lastmod
<
changefreq>weekly</changefreq
<
priority>0.5</priority
</
url>
{/row}
{
/entries}
{
/exp:gallery:entries}    
</urlset

Ну и карту сайта для людей в HTML тоже вывести не сложно:

<h1>Карта сайта</h1>
      <
h3><a href="{homepage}">Главная</a></h3>
      <
div class="sitemap_block">
      
{exp:weblog:entries weblog="site_pages" limit="1"}<h2>{blog_title}</h2>{/exp:weblog:entries}
      {exp
:weblog:entries weblog="site_pages" style="nested" sort="asc" orderby="entry_id"}
      {if url_title
!="start"}<h3><a href="{page_url}">{title}</a></h3>{/if}
      {
/exp:weblog:entries}
      
</div>
      <
div class="sitemap_block">
      
{exp:weblog:entries weblog="articles" limit="1"}<h2>{blog_title}</h2>{/exp:weblog:entries}
      {exp
:weblog:categories weblog="articles" style="linear" sort="asc"}
      
<h3><a href="{path=articles/index}">{category_name}</a></h3>
      
{/exp:weblog:categories}
      
</div>
      <
div class="sitemap_block">
      
{exp:weblog:entries weblog="news" limit="1"}<h2>{blog_title}</h2>{/exp:weblog:entries}
      {exp
:weblog:categories weblog="news" style="linear" sort="asc"}
      
<h3><a href="{path=news/index}">{category_name}</a></h3>
      
{/exp:weblog:categories}
      
</div>
      <
div class="sitemap_block">
      
{exp:gallery:categories gallery="photo"}
      
<h2>Фотогалерея</h2>
      
{category_row}
      {row}{if total_files 
0}
      
<h3>{exp:query sql=" SELECT cat_folder FROM exp_gallery_categories WHERE  cat_id = '{category_id}' "}<a href="/gallery/category/{cat_folder}/">{category}</a>{/exp:query}</h3>
      
{/if}{/row}
      {
/category_row}
      {
/exp:gallery:categories}
      
</div>
      <
div class="sitemap_block">
      
{exp:weblog:entries weblog="video" limit="1"}<h2>{blog_title}</h2>{/exp:weblog:entries}
      {exp
:weblog:categories weblog="video"  show_empty="no" style="linear" sort="asc"}
      
<h3><a href="{path=video/index}">{category_name}</a></h3>
      
{/exp:weblog:categories}
      
</div
Профиль
 
 
Отправлено: 25 Май 2010 11:00 A.M.   [ Игнорировать ]   [ # 21 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

Я делаю еще более компактно:

{exp:query sql="SELECT weblog_id, blog_url, blog_name, blog_title FROM exp_weblogs WHERE weblog_id != 4"}
<ul class="sitemap_list"><a href="{if weblog_id != 2}{blog_url}{if:else}#{/if}">{blog_title}</a>
{exp:weblog:entries weblog="{blog_name}" status="open|Person of week|Interest people" limit="1000" cache="yes" refresh="60" disable="member_data|trackbacks|category_fields|pagination"}
<li><a href="{if weblog_id == 5}{comment_entry_id_auto_path}{if:else}{comment_url_title_auto_path}{/if}">{title}</a></li>{/exp:weblog:entries}
</ul>
{/exp:query} 

Тут есть некотоыре условия - специфика проекта

Профиль
 
 
Отправлено: 25 Май 2010 02:15 P.M.   [ Игнорировать ]   [ # 22 ]
Студент
Avatar
RankRank
Всего сообщений:  142
Зарегистрирован  2008-01-02

Если выводится более 10к записей и у вас тайм-ауты или белый лист. Ну и плюс кастом филд вместо урлов.

<?php
    
global $DB$PREFS;
    
$airport $DB->query("SELECT exp_weblog_titles.entry_id, exp_weblog_titles.url_title, exp_weblog_titles.edit_date, exp_weblog_data.field_id_67
                        FROM exp_weblog_titles
                        LEFT JOIN exp_weblog_data
                        ON exp_weblog_titles.entry_id = exp_weblog_data.entry_id
                        WHERE exp_weblog_titles.weblog_id='24' AND status='open' ORDER BY edit_date DESC"
);
?>

<?xml version
="1.0" encoding="utf-8"?>
<urlset >

    <
url>
        <
loc>{homepage}</loc>
        <
lastmod>{current_time format="{DATE_W3C}"}</lastmod>
        <
changefreq>always</changefreq>
        <
priority>1.0</priority>
    </
url>

    
<?php
        
if($airport->num_rows 0{
            
foreach($airport->result AS $iata{
                
print "<url>\n\t\t";
                print 
"<loc>{$PREFS->ini('site_url')}airports/{$iata['field_id_67']}</loc>\n\t\t";
                print 
"<priority>0.7</priority>\n\t\t";
                print 
"<lastmod>" date("c"strtotime($iata['edit_date'])) . "</lastmod>\n\t";
                print 
"</url>\n\t";
            
}
        }
    ?> 
Профиль
 
 
Отправлено: 13 Июль 2010 01:43 A.M.   [ Игнорировать ]   [ # 23 ]
Администратор
Avatar
RankRank
Всего сообщений:  81
Зарегистрирован  2008-04-09

Как бы есть ограничение на вывод больше 1000 или 10000 (не помню) записей на одной странице. Думаю оптимальный вариант - это использовать РНР в шаблоне карты сайта

Профиль
 
 
   
2 из 2
2