Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Опубликовано:

На форуме стоит приложение Sitemap 2.0.0 (от IPS Community Project Developers).

Всё отлично работает, файлы карт своевременно обновляют информацию, поисковики вовремя её получают, нареканий на работу этого приложения не было.

 

Но вот в ГуглеВебМастере заметил что множество тем поисковики находят не через Sitemap, а через другие ссылки. То есть темы есть в индексе, но в сайтмапе их нет, и как я заметил, такие темы которые не в сайтмапе имеют намного меньший вес в индексе.

 

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

Хотя конечно немного как то странно - у меня выставлено максимальное значение - 50 000 тем, но всё равно файл тем генерирует не более 20 000 записей. А на форуме у меня как раз где то именно такое и кол-во тем.

 

Ладно, выключаю что бы в файле помещались все страницы тем и иду в Планировщик и запускаю задачу Генератор Sitemap.

И тут первая беда - через несколько минут вот такое в админке показывается (после того как задача завершена):

post-31497-0-30174100-1546895980_thumb.jpg

 

Ладно, смотрю новый файл сайтмапы по темам - всё норм, все темы форума в списке.

 

НО! Если раньше они имели нормальное ЧПУ (к примеру - /topic/255-geraldika-dlya-rus-tw/), то сейчас без ЧПУ, примерно так - /index.php?showtopic=287

Причём не только файл тем, но и остальные файлы.

 

Подскажите советами по этим ошибкам, а то я совсем уже запутался и не знаю с чего начинать и где копать.

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

Опубликовано:

'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' );
	}

Опубликовано:
  • Автор

Это что за дичь? В линков условие используется для выбора одобренных записей 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

Опубликовано:
  • Автор

Генератор для 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' );

Опубликовано:
  • Автор

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

От я тормоз :)

Спасибо.

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.