1 (edited by PunBB 2016.04.11 14:13)

Topic: Как формировать ссылки для УРЛ схемы

How to reference for expansion PunBB

Если вы решили написать свое расширение для форума PunBB, то возможно потребуется сделать ссылки, чтобы
Как правильно делать ссылки на форуме punbb?

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

Итак, мы создали свое расширение, и назвали его к примеру my_links, с тем условием, что в нем уже есть заготовка, т.е. основная структура файла manifest.xml для установки расширения.

Как сделать/написать расширение, смотрите создание расширений.

Далее создаем внутри директорию с именем url
Внутри созданной папки, создаем файл Default.php

<?php

$forum_url['my_links_home'] = 'extensions/'.$ext_info['id'].'/index.php';
$forum_url['my_links_options'] = 'extensions/'.$ext_info['id'].'/all_posts.php';
$forum_url['my_links_edit_post'] = 'extensions/'.$ext_info['id'].'/edit_post.php?pid=$1';

таким образом в массиве у нас получилось 3 ссылки. Каждая ссылка ведет к каждому файлу.

Как составлять ссылки?

Составлять ссылки из массива совсем несложно. Для этого используем функцию forum_link()

К примеру так:

<a class="newpost" href="'.forum_link($forum_url['my_links_options']).'"><span>Настройки</span></a>

Если же нужно обратиться к файлу по какому либо GET запросу используя ID, то на примере третьей ссылки можно сделать так:
К примеру так:

<a class="newpost" href="'.forum_link($forum_url['my_links_edit_post'], $id).'"><span>Редактировать сообщение</span></a>

Это был пример показанный на УРЛ схеме Default. Так же можно составлять и другие УРЛ схемы, если вы немного разбираетесь в регулярных выражения.

2

Re: Как формировать ссылки для УРЛ схемы

Чтобы подключить свою, только что созданную УРЛ схему, достаточно вставить в расширение следующий код.

Этот хук универсален, и следуя рекомендации составления своих URL ссылок, они автоматически будут активированы при добавлении следующего кода:

    <!--Подключение URL схемы -->
    <hook id="co_modify_url_scheme"><![CDATA[
      if ($forum_config['o_sef'] != 'Default' && file_exists($ext_info['path'].'/url/'.$forum_config['o_sef'].'.php'))
        require $ext_info['path'].'/url/'.$forum_config['o_sef'].'.php';
      else
        require $ext_info['path'].'/url/Default.php';
    ]]></hook>