|
Поделиться

Карта сайта для ботов (phpBB3 SEO Sitemap)

Начиная с версии 3.1.x, моды были заменены "расширениями", которые выполняют ту же самую функцию, но без изменений в исходном коде движка.

Сообщение ostridm » 18.04.16 21:41

Справочно сообщаю, что версия 1.1.0 исправно работает на пхп 7.0.2 и 5.4.45 с мемори лимит 90 мегабайт на форуме с

Всего тем: 11372
Всего сообщений: 526212

Не считая почих добавок в виде 6000 урлов от других расширений

Всего урлов в карте получается почти 39000
ostridm
Разработчик модов
 
Сообщения: 19
Зарегистрирован: 06.04.16 10:26

Сообщение Shredder » 20.04.16 21:20

ostridm
1) Если делать настройку для встроенных 40000 запросов к БД, то как её назвать и какое объяснение дать?
2) Зачем в core.php два раза используется unset($time);, когда нет переменной с именем $time в core.php? Time есть в appender.php в функции append. Это лишний код или некие заморочки ООП? Аналогично с кодом:
Код: Выделить всё
		global $urls;

		$f_xml = '';
		$urls = 0;

в sitemap.php

3) Зачем убрали мои копирайты в футере? Про авторство я имел в виду указать в composer.json в разделе авторов. Кому мешают копирайты, пусть удаляют самостоятельно.
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 841
Зарегистрирован: 22.08.13 09:05

Сообщение ostridm » 21.04.16 08:04

1) 40000 это лимит для пакетной обработки главного запроса всей карты, который вынимает из базы данных времена всех сообений и др связанную с сообщениями информацию ( например многократно дублирующийся топик тайтл, что и является причиной нехватки памяти) рассматривать этот лимит нужно как оптимизацию по памяти с проигрышем по времени исполнения, у меня на версии 1.0.5 карта генрировалась только на пхп мемори лимит 384 мегабайта потомушто этот запрос вынимал 525K сообщений + имя топика к каждому сообщению

я бы сделал так
использовал селект 5000 | 10000 | 20000 | 30000 | 40000 | 50000 - по умолчанию установив на нем 50000
назвал бы
Preferred batch processing size: - и не понятно и вроде как размер пакета
в пояснении написал бы
Decrease the batch size in case of PHP memory limit errors at sitemap data generation stage. Notice the fact that time required for sitemap data preparation will rise significantly on each decreasing of batch size value.


Предпочтительный размер пакета обработки

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



2) рудименты кода от версии до 1.1.0, 1.1.0 они нужны , нужно удалить, если переменные не использются никгде тем более - удалить

3) не то чтобы специально убрал, я их просо не добавил в свой кодебэйз когда они появились в версии 1.0.5 или 1.0.6 и выдал вам код со своего кодебейза, вот они и исчезли в архиве версии 1.1.0, водится за мной некоторые проявления нетолерантности к копирайтам... на моих сайтах ни одного копирайта на используемые модули нет, ну вот нету и все, ( у вас кстати тоже должно быть две ссылки минимум ) я готов помочь исправить существующие проблемы в модулях, как это происходит сейчас или в случае с галереей даже даром без любиимых коппирайтов, но вот сами изначальные копирайты.... уж извините. Причем хочу заметить что в ваших то модулях самые-по-человечески-сделанные копирайты котолрые мне удавалось вымарывать :) так что вам нужно вернуть в архив файлы в том виде как было, чтобы копирайты появились, а по сути конечно виноват-с... нехорошо с партизанами получилось (с)
ostridm
Разработчик модов
 
Сообщения: 19
Зарегистрирован: 06.04.16 10:26

Сообщение Shredder » 21.04.16 22:53

ostridm
Спасибо. Добавил новую настройку, скоро выложу.

Нашёл ошибку:
При разбиении на индексные файлы "Общее число URL в карте" считается некорректно и равно числу URL в самом последнем индексном файле.

Ещё вопросы:
1) Заметил, что программисты phpBB 3.1 часто используют проверочную конструкцию вида if (null == $var) или if ($var == null), и также заметил, что в таких случаях вылетают "нотисы" при несуществующей переменной $var. В чём сакральный смысл использования именно такой конструкции и почему вместо неё не использовать if (!isset($var)) - вариант, не дающий никаких нотисов?

2) Зачем использовать unset($times);, когда сразу же за ним идёт переопределение переменной на пустой массив?
Код: Выделить всё
		unset($times);
		$times = array();

3) Ваш пример для генерации карты для галереи выкладывать в одном файле с основным расширением или выложить отдельно в виде аддона?
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 841
Зарегистрирован: 22.08.13 09:05

Сообщение Xisp » 21.04.16 23:17

Shredder писал(а):В чём сакральный смысл использования именно такой конструкции


Выпендриваются :mrgreen: Бить за такое надо, или гнать из профессии.
Xisp
 
Сообщения: 196
Зарегистрирован: 05.04.14 18:00

Сообщение ostridm » 22.04.16 08:47

Shredder

добавьте сквозной счетчик или умножте количество индексов на количество URL в индексе + реальное последнее количество урлов :)
где то в меторде get_url


Код: Выделить всё
    public function getUrlCount()
    {
        return $this->urls + ($this->index - 1) * $this->limit;
    



на счет
if (null == $var)
if ($var == null)
первый намного лучше потому что С, С++ а так же PHP разрешают присваивание в IF, отсутсвие одного знака равно приводит нервным поискам граблей, поэтому тот кто уже ходил по граблям использует первый способ автоматически, по привычке

по поводу isset
если это оператор то мы имеем два оператора, !isset а если функция тогда оператор и функцию, в обоих случаях один оператор выгоднее, а что до нотисов так их не должно быть вовсе...
ostridm
Разработчик модов
 
Сообщения: 19
Зарегистрирован: 06.04.16 10:26

Сообщение Shredder » 22.04.16 10:47

И всё же, нотис бывает. В этом легко убедиться, включив дебаг и поставив в appender.php unset($this->fp); перед:
Код: Выделить всё
		if (null != $this->fp)
		{

Столкнулся уже с этим в другом моде, когда переменная не существовала и шёл нотис.
А карта, вдобавок, ещё и разрушается, когда на её странице бывают нотисы. Показывает ошибку в XML вместо карты. :)

Я так понял, что смысл замены isset на null == $var исключительно в оптимизации? Если да, то оптимизация в этом случае сомнительная.
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 841
Зарегистрирован: 22.08.13 09:05

Сообщение ostridm » 22.04.16 11:00

Сделайте как нравится, насколько я помню на fp unset не было.
ostridm
Разработчик модов
 
Сообщения: 19
Зарегистрирован: 06.04.16 10:26

Сообщение Shredder » 22.04.16 12:27

Выложил вторую бету, исправил там несколько ошибок и сделал пару дополнений, включая выбор величины пакета обработки.

ostridm
Добавил вас в группу разработчиков, если не возражаете.

Добавлено спустя 14 часов 22 минуты 35 секунд:
Насчёт пакета обработки данных SQL-запросом: может, для выбора стоит добавить неограниченный размер пакета?
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 841
Зарегистрирован: 22.08.13 09:05

Сообщение Shredder » 01.05.16 15:28

Отправил на валидацию версию 1.1.0, выложу её только после окончания валидации (если таковая будет :D ). Среди значимых изменений пришлось внести следующее: заменил событие

Код: Выделить всё
		$vars = array();
		extract($phpbb_dispatcher->trigger_event('ext.shredder.sitemap.extra_sitemap_content', compact($vars)));

на:
Код: Выделить всё
		/**
		* Event to allow other extensions append links to sitemap
		*
		* @event shredder.sitemap.extra_sitemap_content
		* @since 1.1.0
		*/
		$phpbb_dispatcher->dispatch('shredder.sitemap.extra_sitemap_content');

Это было необходимо сделать в соответствии с правилами разработчиков, иначе выдавало ошибки на стадии превалидации (кучу раз правил одно и то же событие, пока их все не убрал :D ). Работоспособность проверена.

Обратите внимание на новое имя события, в адд-оне его тоже потом надо будет поменять.
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 841
Зарегистрирован: 22.08.13 09:05

Сообщение webecom » 06.05.16 19:03

Здравствуйте, уважаемые форумчане.

Сам мод работает кажется без нареканий, а вот с включенным дополнением phpbb3-gallery-add-on-for-seo-sitemap выдает вот что:
"Unable to generate a URL for the named route "phpbbgallery_core_album" as such route does not exist."

Что-то где-то надо включить, а вот где... Расширение "Галерея" установлено и включено.
webecom
 
Сообщения: 1
Зарегистрирован: 06.05.16 18:54

Сообщение ikar » 17.05.16 11:49

Здравствуйте!

Не подскажите по поводу совместимости с phpbbex 2.0.4(phpBB 3.1.9)? Cкрипт активировался без ошибок, появилась форма настройки, но вот карта не создалась. Дело в настройках или...?

Добавлено спустя 1 час 41 минуту 30 секунд:
Все, разобрался. Оказывается, что в доменах 4 уровня (пробный сайт) некорректно формируется ссылка на сайтмеп. В обычном сайте все заработало согласно инструкции. :)
Спасибо, за хорошее расширение.
ikar
 
Сообщения: 1
Зарегистрирован: 17.05.16 11:30

Сообщение Kuskow » 25.05.16 11:48

Установил. Настроил (настройки не менял, просто нажал "отправить"). При переходе на страницу *.com/sitemap.xml появляется главная страница форума (список форумов). Файл .htaccess уже содержит всё то, что тут написано.
Как быть?
Аватара пользователя
Kuskow
 
Сообщения: 10
Зарегистрирован: 25.05.16 11:46

Сообщение Shredder » 25.05.16 13:57

Kuskow
Возможно, в качестве сервера у вас установлен не апач, тогда посмотрите конфиги для других серверов.
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Shredder
Администратор
 
Сообщения: 841
Зарегистрирован: 22.08.13 09:05

Сообщение Kuskow » 25.05.16 14:05

Совершенно точно Apache на HostMonster
Аватара пользователя
Kuskow
 
Сообщения: 10
Зарегистрирован: 25.05.16 11:46

Пред.След.

Вернуться в Скрипты и расширения для phpBB 3.1.x

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron