Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Haktar

Проблемы с Sitemap (Карта Сайта)

Recommended Posts

'where'  => 'links_cats',

Это что за дичь? В линков условие используется для выбора одобренных записей link_approved=1, а это здесь зачем?

ТС, ну честное слово, хотябы основы sql выучили что-ли, уже столько времени админите. Вы один из старожил этого форума как никак, можно сказать вместе начинали.

 

О боже, где вы нашли такой чпу темлейт link_cats_view? Я же написал его название showlinkcat. И даже формат ссылки показал app=links&showlinkcat=$id, но вы все равно умудрились какую-то ересь написать app=links&do=cat_view&id=? По моему вы перепутали приложения.

 

Вот вам готовый код, а то еще долго так и будете мучатся то с запросом, то с генерации ссылок.

 

	$query = ipsRegistry::DB()->build( array( 'select' => 'category_id, category_seo_title, category_title',
											  'from'   => 'links_cats',
											  'order'  => 'category_id DESC' ) );
	ipsRegistry::DB()->execute();

	while ( $row = ipsRegistry::DB()->fetch() )
	{
		$url = ipsRegistry::$settings['board_url'] . '/index.php?app=links&showlinkcat=' . $row['category_id'];
		$url = ipsRegistry::getClass( 'output' )->buildSEOUrl( $url, 'none', $row['category_seo_title'], 'showlinkcat' );
		$this->sitemap->addURL( $url, null, '0.6' );
	}

  • Upvote 1

Share this post


Link to post
Share on other sites

Это что за дичь? В линков условие используется для выбора одобренных записей link_approved, а это здесь зачем?

Честно не знал чем заменить запись одобрения link_approved :)

 

ТС, ну честное слово, хотябы основы sql выучили что-ли, уже столько времени админите. Вы один из старожил этого форума как никак, можно сказать вместе начинали.

Стрёмно начинать осваивать, есть боязнь что не усвою и погрязну в sql как в трясине :)

 

Ещё раз спасибо за помощь.

Share this post


Link to post
Share on other sites

Честно не знал чем заменить запись одобрения link_approved

Если нет условий, тогда where нужно убрать. Ключ массива where соответствует условию WHERE в запросе.

 

Стрёмно начинать осваивать, есть боязнь что не усвою и погрязну в sql как в трясине

Какбэ не получилось наоборот, начнете осваивать и так втянетесь, что стянете гуру SQL запросов. На самом деле составлять sql запросы довольно увлекательное и интересное занятие. Особенно на начальном этапе когда придумываешь себе разные условие для отбора записей.

Можно начать с изучением синтаксиса запросов, просто чтобы не тупить на элементарных вещах.

Share this post


Link to post
Share on other sites

Какбэ не получилось наоборот, начнете осваивать и так втянетесь, что стянете гуру SQL запросов. На самом деле составлять sql запросы довольно увлекательное и интересное занятие. Особенно на начальном этапе когда придумываешь себе разные условие для отбора записей.

Можно начать с изучением синтаксиса запросов, просто чтобы не тупить на элементарных вещах.

Вот в этом и получилась загвоздка - хотелось найти инструкцию по составлению на начальном уровне, так сказать для "самых маленьких", но находил только статьи для профи, в них и начинал тонуть как в трясине. Освоить самые простые азы, и постепенно увеличивать знания.

 

На самом деле составлять sql запросы довольно увлекательное и интересное занятие.

Вот с этим я столкнулся пару дней назад - нужны было узнать как это делать. Дело в том что во многих приложениях не было тега canonical (не знаю как в более поздних версиях IPS, возможно разработчики их добавили), поэтому в вебпанелях поисковиков чёрти что - куча дублей и другого мусора.

На днях составил эти теги, и сейчас в вебпанелх всё хорошо отображается.

 

Для приложения Links (разделы), в файл categories.php

/* Add a canonical tag */

$this->registry->output->addCanonicalTag( "links/category/{$category['category_id']}-{$category['category_seo_title']}/".$cats, $category['category_seo_title'], 'cats' );

 

Для приложения Links (страницы), в файл links.php

/* Add a canonical tag */

$this->registry->output->addCanonicalTag( "links/link/{$link['link']['link_id']}-{$link['link']['link_seo_title']}/".$showlink, $link['link']['link_seo_title'], 'showlink' );

 

Для приложения Videos (разделы), в файл index.php

/* Add a canonical tag */

$this->registry->output->addCanonicalTag( "videos/category-{$category['cid']}-{$category['seo_name']}/".$cat, $category['seo_name'], 'cat' );

 

Для приложения Videos (страницы), в файл index.php

/* Add a canonical tag */

$this->registry->output->addCanonicalTag( "videos/view-{$video['tid']}-{$video['seo_title']}/".$cat, $video['seo_title'], 'cat' );

 

И для событий Календаря нужно было, в файл calendars.php

/* Add a canonical tag */

$this->registry->output->addCanonicalTag( "/calendar/1/event-{$event['event_id']}".$calendar, $event['event_id'], 'calendar' );

 

Естественно составил я их так сказать не по правилам судя по всему - но они работают и поисковики их корректно воспринимают.

Share this post


Link to post
Share on other sites

Да пожалуйста. Имя файла, например, links_category.php должно быть в название класса sitemap_sitemap_links_category

Список категорий запрашиваете из таблицы links_cats. В таблице смотрите название полей.

Шаблон для чпу указываете showlinkcat, а ссылку app=links&showlinkcat=ИД

Ну а дальше разберетесь. Считай, тут весь генератор почти написан.

Хотел по этому принципу сделать карту и для событиев Календаря, но в нём совершенно другой принцип, да и сео-титле в нём нету (почему то). Не подскажите?

Share this post


Link to post
Share on other sites

Мы календарь запрещаем к индексации, там много мусорных страниц и абсолютно нечего индексировать, никакой полезный траффик эти страницы дать не могут. Только лишняя нагрузка на сервер от ботов.

Share this post


Link to post
Share on other sites

Мы календарь запрещаем к индексации, там много мусорных страниц и абсолютно нечего индексировать, никакой полезный траффик эти страницы дать не могут. Только лишняя нагрузка на сервер от ботов.

У меня тоже всё что связано с календарём запрещено к индексации, окромя событиев к календарю. Создал на основе этого этакую ленту новостей.

Share this post


Link to post
Share on other sites

@Haktar, а что за ужасные рекламные попандеры появились на форуме?

 

С евентами в каледнаре делайте также, по аналогии с остальными плагинами. Опыт у вас уже имеется. Второй уже будет проще сделать. Хотя, я бы не стал делайть для них сайтмэп, они все равно пустые.

Share this post


Link to post
Share on other sites

а что за ужасные рекламные попандеры появились на форуме?

Временные. Тестирую.

 

С евентами в каледнаре делайте также, по аналогии с остальными плагинами. Опыт у вас уже имеется. Второй уже будет проще сделать.

У эвентом нет seo, поэтому по примеру не получается.

 

 

Хотя я бы не стал делайть для них сайтмэп, они все равно пустые.

Вообще то это верно. Мне бы важнее сделать сайт-мап для приложения News System, бог с ним с этим календарём, однако не получается с News System. Даже с тегом canonical не получается - хотя с остальными приложениями (как показал выше) всё прошло без проблем.

 

Само приложение:

news.zip

Share this post


Link to post
Share on other sites

Генерируйте тогда обычные ссылки, в чем проблема то. Для файла sitemap не играет роли какой формат ссылки, главное чтобы он соответствовал тому что на форуме.

Share this post


Link to post
Share on other sites

Генератор для news

Положить файл в /sitemap/extensions/sitemapPlugins/

news.php

  • Upvote 1

Share this post


Link to post
Share on other sites

Генератор для news

Положить файл в /sitemap/extensions/sitemapPlugins/

Большое спасибо ещё раз!

Share this post


Link to post
Share on other sites

Даже с тегом canonical не получается - хотя с остальными приложениями (как показал выше) всё прошло без проблем.

Удалось.

Нужно было разкоментировать вот это:

///$news = $this->DB->buildAndFetch( array( 'select' => 'id,seo_title', 'from' => 'news', 'where' => "id={$news_id}" ) );

 

Однако всё равно не то.

Ставлю вот это:

/* Add a canonical tag */

$this->registry->output->addCanonicalTag( "news/view-{$news['id']}-{$news['seo_title']}/".$view, $news['seo_title'], 'view' );

 

Получаю вот это:

<link rel="canonical" href="http://адрес сайта/index.php?news/view-300-total-war-warhammer-ii-beta-obnovleniya-festag/" />

 

То есть откуда то берётся index.php? который всё рушит.

Share this post


Link to post
Share on other sites

А открыть furlTemplates.php и посмотреть?

$this->registry->output->addCanonicalTag( "app=news&do=view&id={$news['id']}", $news['seo_title'], 'viewnews' );

  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...