1 (edited by PunBB 2019.08.29 08:12)

Topic: AnyCode Hook Manager - Добавление хуков через админку

Расширение AnyCode Hook Manager позволяет добавлять код с помощью хуков прямо через админку. Внимание! Используйте AnyCode только, если у вас уже есть достаточно знаний в PHP.
Версия 1.0.0
Русифицирован (исходник ниже)

Инструкция пользователя:
1. После установки, войти на страницу расширения ANYCODE > Интеграции > Введите имя > Добавить
2. Перейти на страницу хуки. Ввести в первое поле имя идентификатора хука. К примеру если это хук
($hook = get_hook('vt_quickpost_pre_display')) ? eval($hook) : null;
то его идентификатор
vt_quickpost_pre_display
3. В поле код хука ввести свой код. Внимание! Расширение поддерживает PHP скрипты, поэтому будьте внимательны.
Для добавления HTML и JS вставлять следующим образом:

?>
HTML разметка
<?php

4. Нажимаем добавить хук и возвращаемся на страницу Интеграции, чтобы активировать созданное решение.

В отдельной теме будут собраны все хуки ядра punbb, пока что выложил хуки нескольких файлов.
Вы можете внести свой вклад публикуя хуки разных файлов. Это будет большая помощь  PunBB_INFO_ICQ/thumbsup


Ссылка на скачивание удалена по причине погибшего смертью подлых форума punbb.ru, который поддерживал данное расширение...

Для скачивания, пролистайте сообщения ниже.

2

Re: AnyCode Hook Manager - Добавление хуков через админку

Xakker wrote:

Используйте AnyCode только, если у вас уже есть достаточно знаний в PHP.

Я скажу, что ничего страшного не случится, если вы даже ошибетесь. Просто хук перестанет работать и все. Так что можно экспериментировать сколько влезет.  PunBB_INFO_ICQ/bigsmile

Если вам долго не отвечают, пишите автору темы в личку или на Email.

3

Re: AnyCode Hook Manager - Добавление хуков через админку

Xakker wrote:

Скачать расширение AnyCode Hook Manager

"Ошибка - 404
Такой страницы не существует. Возможно вас заинтересуют популярные темы форума."

Очень даже может быть, что заинтересуют... Но мне всё равно интересно, почему такой страницы не существует. : )

4

Re: AnyCode Hook Manager - Добавление хуков через админку

@anastasiya-kais, для начала посмотрите логи PHP,  они подскажу в какую сторону копать.

Если вам долго не отвечают, пишите автору темы в личку или на Email.

5 (edited by anastasiya-kais 2019.08.23 22:57)

Re: AnyCode Hook Manager - Добавление хуков через админку

@PunBB, про логи - это немножко в другую тему, я сейчас туда напишу, что нарыла. А 404 - это не про них, это ссылка на скачивание хук-менеджера не работает.

6

Re: AnyCode Hook Manager - Добавление хуков через админку

@PunBB, наверное стоит поудалять ссылки на старые расширения, толку от них, по большому счету нет, а вот с толку новичков сбивают.  PunBB_INFO_ICQ/whipped


https://punbb.info/uploads/images/2019/08/c268ab525555d2dc4cea5b51e548853f.jpg

7

Re: AnyCode Hook Manager - Добавление хуков через админку

@sempaiPunBB_INFO_ICQ/thumbsup согласен

Если вам долго не отвечают, пишите автору темы в личку или на Email.

8

Re: AnyCode Hook Manager - Добавление хуков через админку

@PunBB, текстовая замена ссылок - огонь!  PunBB_INFO_ICQ/thumbsup

Чуть не лопнул от смеха!!!  PunBB_INFO_ICQ/bigsmile  PunBB_INFO_ICQ/bigsmile  PunBB_INFO_ICQ/bigsmile

9

Re: AnyCode Hook Manager - Добавление хуков через админку

@sempai, хорошее расширение, я пользую. Не подскажете кстати хук как мне автоматом навесить alt на картинки из темы сообщения или как-то иначе?

10

Re: AnyCode Hook Manager - Добавление хуков через админку

@kirpich, посмотри в Pan Seo как там сделано. Сам айди хука уже не помню PunBB_INFO_ICQ/no

---------------------------------

Еще раз посмотрел, нету у нас на сервере этого расширения  PunBB_INFO_ICQ/pardon
Если у кого есть архив, приложите аттач, пусть люди балуются


---------------------------------

@kirpich, если не ошибаюсь хук:

vt_row_pre_display

Этот код из расширения Pan Seo, мож чем то поможет

<?php

if (!defined('FORUM')) die();

if ($forum_config['o_pan_seo_keywords_strong_msg'] == '1' && $forum_page['item_count'] == '1')
{
   
   if(!preg_match_all('/<img[^>]+>/i', $forum_page['message']['message'], $search_img) )
   {

      require_once (FORUM_ROOT.'include/search_idx.php');

      $keywords = implode(' ', array_map('forum_trim', array_unique(split_words($cur_topic['subject']))));
      $topic_subject = explode(" ", $keywords);

      foreach($topic_subject as $key => $value) {
         $forum_page['message']['message'] = str_ireplace($value, '<strong>'.$value.'</strong>', $forum_page['message']['message']);
      }
   }
   
} else if ($forum_config['o_pan_seo_collocations_links'] != '0' && $forum_page['item_count'] > '1') {
   
   //Delkete Tags In Content
   $words = preg_replace("'<(code|blockquote)[^>]*?>.*?</(code|blockquote)>'si", "", $forum_page['message']['message']);
   //Delete Tags
   $words = preg_replace('/(<([^>]+)>)/U', '', $words);
   //Delete Punctuation Simbols
   $words = preg_replace('/[[:punct:]]/', ' ', $words);
   
   $arr_words = explode(' ', $words);
   $arr_words = array_diff($arr_words, array(''));
   $arr_words = array_values($arr_words);
   
   $w_two = 1;
   $w_tree = 2;
   
   $collocations = array();
   foreach($arr_words as $key => $value)
   {
      if (array_key_exists($w_two, $arr_words) && array_key_exists($w_tree, $arr_words) ) 
      {
         $collocations[] = $arr_words[$key].' '.$arr_words[$w_two].' '.$arr_words[$w_tree];
      }
      $w_two++;
      $w_tree++;
   }
   
   $ref_count = 0;
   $reference_link = array();
   foreach($collocations as $p_key => $p_value) 
   {
      if(isset($arr_all_subject) ) 
      {
         foreach($arr_all_subject as $t_id => $t_subject) 
         {
            if(stripos($t_subject, ' '.$p_value) && $id != $t_id)  
            {
               $reference_link[$p_key] = forum_link($forum_url['topic'], array($t_id, sef_friendly($t_subject)));
            }
         }
         
         if(isset($reference_link[$p_key]) && $ref_count < $forum_config['o_pan_seo_collocations_links'])
         {
            $forum_page['message']['message'] = str_replace(' '.$p_value.' ', ' <a href="'.$reference_link[$p_key].'">'.$p_value.'</a> ', $forum_page['message']['message']);
            $ref_count++;
         }
      }
   }
}


if ($forum_config['o_pan_seo_img_title'] == '1') {
   if (!strpos($forum_page['message']['message'], "title="))
      $forum_page['message']['message'] = str_replace('<img', '<img title="'.forum_htmlencode($cur_topic['subject']).'"' , $forum_page['message']['message']);
}
Если вам долго не отвечают, пишите автору темы в личку или на Email.

1

11 (edited by kirpich 2019.08.28 13:29)

Re: AnyCode Hook Manager - Добавление хуков через админку

@PunBB, благодарю! Вроде крайняя и единственная версия эта, разработчику было наверное не выгодно ее развивать, так как готовые  расширения писать за деньги выгодней. А тут такое.. Если развить, можно сразу список хуков к ней навесить и включай что хочешь на выбор.
This content is available only to registered users.

2

12

Re: AnyCode Hook Manager - Добавление хуков через админку

kirpich wrote:

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

Кстати, а это мысль. В принципе, список хуков есть, остается загнать в массив и в опшн вывести выпадающий список  PunBB_INFO_ICQ/dance

---------------------------------

Ага, список есть, но не полный, только три файла.

https://punbb.info/t-569.html
У кого есть возможность и желание можете помочь в пополнении списка хуков, я думаю, что сами еще не раз будете обращаться к тому списку  PunBB_INFO_ICQ/wink

Если вам долго не отвечают, пишите автору темы в личку или на Email.

1

13

Re: AnyCode Hook Manager - Добавление хуков через админку

Что-то я определённо не так делаю. : ( Добавила скрипт на jQuery в хук hd_end, но оказался он в итоге в самом начале кода страницы, выше <head>. Подскажите, пожалуйста, как сделать так, чтобы он именно в конце хедера выводился?

В данный момент он выглядит так
?><script>
  $('#navprofile').add('#subscript').add('#navregister').add('#navlogin').add('#navlogout').insertAfter('#visit-links span:last-child');
  var mnlst = $('#visit-links li');
  for (x=0; x<mnlst.length; x++) {
    $(mnlst[x]).replaceWith($('<span>').html($(mnlst[x]).html()));
  }
</script><?php

14 (edited by PunBB 2019.09.08 17:53)

Re: AnyCode Hook Manager - Добавление хуков через админку

Для подключения скриптов и стилей в punbb существуют специальные функции.
Спрячьте ваш js код в файл,а файл в корень форума, а затем подключите в хуке следующим образом:

$forum_loader->add_js($base_url.'/jquery.js', array('type' => 'url', 'group' => FORUM_JS_GROUP_COUNTER));

---------------------------------

Либо запишите ваш скрипт в переменную, чтобы не создавать файл:

  $my_variable = "$('#navprofile').add('#subscript').add('#navregister').add('#navlogin').add('#navlogout').insertAfter('#visit-links span:last-child');
  var mnlst = $('#visit-links li');
  for (x=0; x<mnlst.length; x++) {
    $(mnlst[x]).replaceWith($('<span>').html($(mnlst[x]).html()));
  }";

$forum_loader->add_js($my_variable, array('type' => 'inline', 'weight' => 50, 'group' => FORUM_JS_GROUP_SYSTEM));
Если вам долго не отвечают, пишите автору темы в личку или на Email.

15 (edited by anastasiya-kais 2019.09.09 15:37)

Re: AnyCode Hook Manager - Добавление хуков через админку

PunBB wrote:

в punbb существуют специальные функции

Можно где-то почитать про них?

PunBB wrote:

подключите в хуке следующим образом

Подключила. Подключилось в конце страницы... И что ещё хуже - jQuery, оказывается, подключен ещё ниже, так что его синтаксис в скрипте не распознаётся. : (( Вопрос с возможностью подключения (и срабатывания!) скриптов на jQuery в произвольных местах страницы пока отпадает...
Upd: Ну или совсем отпадает. Ага, я двоечница, привыкшая видеть jQuery в хедере, буду исправляться. : )
Upd2: Завернула код в функцию, повесила её на событие DOMContentLoaded. Работает.

16

Re: AnyCode Hook Manager - Добавление хуков через админку

Да, для использования скриптов jQuery вначале следует установить расширение Pun jQuery, оно подключает библиотеку jQuery.

Также следите, чтобы подключаемые скрипты были после подключенной библиотеки. Это настраивается параметром:

'weight' => 50,
Если вам долго не отвечают, пишите автору темы в личку или на Email.

17

Re: AnyCode Hook Manager - Добавление хуков через админку

PunBB wrote:

Это настраивается параметром 'weight' => 50

И каким он должен быть, чтобы скрипт оказался ниже jQuery? 50 явно маловато для этого...
P.S. Вопрос про "почитать про специальные функции punbb" всё ещё актуален.

18

Re: AnyCode Hook Manager - Добавление хуков через админку

anastasiya-kais wrote:

почитать про специальные функции punbb" всё ещё актуален.

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

Если вам долго не отвечают, пишите автору темы в личку или на Email.

1

19

Re: AnyCode Hook Manager - Добавление хуков через админку

@PunBB, это было бы шикарно!