Alex300 |
|
---|---|
Ок. Задачу то мы полностью не знаем и предлагаем разные варианты решений. Вернемся к изначальному вопросу ). Что такое хуки почитать можно тут. По сути это реализация событийной системы. Нужно сделать обработчик события (хука). Для этого в корень расширения video добавте файл video.urleditor.rewrite.first.php следующего содержания: <?php /* ==================== [BEGIN_COT_EXT] Hooks=urleditor.rewrite.first [END_COT_EXT] ==================== */ /** * @var string[] $path части пути в URL * @var int $count количество частей * @var string $rwr */ if (empty($path)) { return; } if (!in_array($path[0], ['serials', 'films', 'trailer'])) { // Это не наше расширение return; } $_GET['e'] = 'video'; // После выполнения этого обработчика продолжать разбирать URL не надо $rwr_continue = false; if ($count == 1) { // Это категория $_GET['c'] = $path[0]; } else { $last = $count - 1; if ((isset(\Cot::$structure['video'][$path[$last]]))) { // Это категория $_GET['c'] = $path[$last]; } else { $_GET['c'] = $path[$last - 1]; $_GET['al'] = $path[$last]; } } // Тут можно сравнить cot_structure_parents($_GET['c')) и path и в случае несовпадения отдать 404 // Это нужно для того чтобы https://domain.tld/serials/good-omens/postalias/?bar=baz была доступна только по этому адресу, а не // https://domain.tld/good-omens/postalias/?bar=baz и поисковики не индексировали дубли страниц // Ну или можно так if (!isset($_GET['m']) || !in_array($_GET['m'], ['add', 'edit'])) { $tmpUrl = cot_url( 'video', ['c' => $_GET['c'], (!empty($_GET['al']) ? 'al' : 'id') => $path[$last]] ); if ($rwr != $tmpUrl && $rwr != urldecode($tmpUrl)) { cot_url_usertheme_files(); cot_die_message(404, true); } }
Обновите свое расширение в панели администратора.
P.S. код писался навскидку, в качестве примера и может потребоваться отладка Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
|
Bu gönderi Alex300 tarafından düzenlendi (2023-09-20 07:40, 1 yıllar önce) |