Как я могу получить номер страницы потока в моем плагине в vbulletin v4? - PullRequest
0 голосов
/ 07 декабря 2018

Мне нужно получить номер потока в моем плагине в vbulletin.мой код плагина:

global $vbulletin, $threadinfo, $bloginfo, $pagetitle;
if (THIS_SCRIPT == 'showthread'){
   $customTitle = $pagetitle.'-'.$pagenumber;
}
$rows = <<<ROW
<meta property="og:title" content="$customTitle" />
ROW;
$template_hook['headinclude_bottom_css'] .= $rows;

как я могу получить pagenumber значения потока для set $ pagenumber?Я знаю, что шаблон выглядит следующим образом:

{vb:rawphrase page_x, {vb:raw pagenumber}}

Но мне нужно это в плагине.

1 Ответ

0 голосов
/ 08 декабря 2018

Вы должны объявить $pagenumber тоже глобальным

global $pagenumber;
if (THIS_SCRIPT == 'showthread'){
    echo '<!-- pageNumber: ' . $pagenumber . ' -->';
}

Помещенным в showthread_start хук, это даст мне следующий вывод: <!-- pageNumber: 9 -->

Но учтите, что если вызагрузите код плагина в некоторый глобальный доступный хук, такой как global_start, эти переменные потока могут быть недоступны, потому что они были инициализированы позже в коде vBulletin.В этом случае попробуйте выбрать другой хук, который запускается раньше.Здесь попробуйте и ошибка помогает.

Я бы порекомендовал попробовать POC-код в showthread_start, чтобы убедиться, что он работает.Затем измените крючки, чтобы узнать, что достаточно рано для запланированного действия, и которое содержит все необходимые переменные.Иногда также полезно видеть код vB вокруг хука.

Вы можете использовать, например, grep в корне установки vBulletin, чтобы найти, где выполняется global_start:

# grep -rn --include \*.php "fetch_hook('global_start')" .
./global.php:29:($hook = vBulletinHook::fetch_hook('global_start')) ? eval($hook) : false;

Поиск в системе Windows также возможен с помощью таких инструментов, как Notepad ++ (поиск по файлам).

...