Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Trotor

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

Рекомендованные сообщения

Всё равно выпадает в ошибку базы данных: links_categories.php

Поделиться сообщением


Ссылка на сообщение

'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

Поделиться сообщением


Ссылка на сообщение

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

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

 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение

Какбэ не получилось наоборот, начнете осваивать и так втянетесь, что стянете гуру 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' );

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

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

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

 

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

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

 

 

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

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

 

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

news.zip

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

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

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

news.php

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

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

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

Поделиться сообщением


Ссылка на сообщение

Даже с тегом 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? который всё рушит.

Поделиться сообщением


Ссылка на сообщение

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

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

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...