1 (edited by PunBB 2018.03.02 09:29)

Topic: Pan Framework - дополнительные функции для расширений

Pan Framework это расширение содержащее в себе часто повторяющиеся функции, которые не реализованы в ядре punbb. Например, чтобы обновить настройки на отдельной странице каждый раз приходилось дублировать для этого код.

Будьте внимательны, каждый раз когда вы обновляете какое либо расширение зависящее от фреймворка, вначале обновите сам фреймвор, а затем уже обновляйте расширение.

Скачать Pan Framework

2

Re: Pan Framework - дополнительные функции для расширений

Fatal error: Cannot redeclare pan_get_all_files() in C:\Netserver\www\extensions\pan_framework\functions.php on line 59
Что делать?

3

Re: Pan Framework - дополнительные функции для расширений

Sternel wrote:

Fatal error: Cannot redeclare pan_get_all_files() in C:\Netserver\www\extensions\pan_framework\functions.php on line 59
Что делать?

версия Framework ?
список расширений ?

4

Re: Pan Framework - дополнительные функции для расширений

Версия 0.1.4
Расширения:

Spoiler

Admin add user
Admin Clear Cache
Attachment
BBCode buttons
Colored usergroups
Delete user
Fancy Image Box
Fancy jQuery Addons
Fancy Private Message Notification
Fancy Video Tag
Forum news
Foto
Friends
Google Translate
Hide
jQuery
jQuery UI
KushiThemes mobile
MarkItUp editor
Pan Beautiful Notices
Pan eXtplorer
Pan More Options
Pan Output Info
Pan Time On The Line
Period Of Time
Private Messaging
Pun Admin Manage Extensions Improved
Pun Move Posts
Pun poll
Pun tags
PunBB Repository
Quadric Image Assistant
Spoiler BBcode
Stop spam from bots
Topic Description
Widgets For PunBB
WysiBB
Статистика форума

5

Re: Pan Framework - дополнительные функции для расширений

Обновите
Pan Time On The Line
а расширение
Period Of Time
советую удалить, т.к. оно больше поддерживаться не будет

6 (edited by Sternel 2016.07.05 00:36)

Re: Pan Framework - дополнительные функции для расширений

PunBB wrote:

Обновите
Pan Time On The Line
а расширение
Period Of Time
советую удалить, т.к. оно больше поддерживаться не будет

Удалил Pan Time On The Line, все хорошо установилось

7

Re: Pan Framework - дополнительные функции для расширений

Обновлена библиотека Pan Framework до 0.1.7. Добавлена возможность синхронизации опций PHP в скриптах JavaScript & jQuery.

Как это работает?

Например, есть опция позволяющая отвечать в темах определенной группе пользователей.
И есть задача: разрешить выполнение определенной обрасти JS скрипта этой группе. Для этого необходимо в manifest.xml (своего расширения) навесить хук :

      <hook id="pan_framework_new_js_config"><![CDATA[
if (isset($pan_javascript_config_common))
{
   $pan_quote_javascript_config = array(
      'g_post_replies: "'.forum_htmlencode($forum_user['g_post_replies']).'"',
   );
   
   $pan_javascript_config_common = array_merge($pan_javascript_config_common, $pan_quote_javascript_config);
}
      ]]></hook>

Далее, в самом файле JavaScript

//определяем переменную
var gPoRe = PANBB.config.g_post_replies;

//Выполняем скрипт только для определенной группы пользователей
if (gPoRe == '1')
{
    //здесь код который должен выполнится для данной группы
}

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

8

Re: Pan Framework - дополнительные функции для расширений

Обновлено расширение до 0.1.8
+ добавлена функция упрощающая написание расширений и работу с ланг файлами.

Сама функция:

function pan_get_lang_ext($ext_id) 
{
   global $forum_user;
   
   if (empty($ext_id))
      return false;
   
   $path_lang_user = FORUM_ROOT.'extensions/'.$ext_id.'/lang/'.$forum_user['language'].'.php';
   $path_lang_english = FORUM_ROOT.'extensions/'.$ext_id.'/lang/English.php';
   
   if (file_exists($path_lang_user))
      return require($path_lang_user);
   else
      return require($path_lang_english);
}

Использование:
При написании нового расширения создайте ланг файлы по пути

/punbb/extensions/your_new_extension/lang/Russian.php

с содержимым ланг файла Russian.php

<?php
return array(
   'settings'    =>  'Настройки',
   'save'        =>   'Сохранить',
   'create'      =>   'Создать',
   'delete'      =>   'Удалить',
);
?>

При создании нового расширения достаточно будет просто скопировать папку с ланг файлами и подкорректировать сами ланг файлы. Не придется переназывать файлы.

Далее используем так:

//получаем массив
$lang_id_of_extension = get_language('id_of_extension');

//выводим на экран
echo $lang_id_of_extension['settings'];

//выводит
Настройки

Так образом можно уменьшить большие куски кода в расширениях с подключением ланг файлов.

9

Re: Pan Framework - дополнительные функции для расширений

Hello,

Just looking at the extensions code to see if it is safe to install. There is a vague formatting in `admin_functions.php` that looks like a bug.

Original code:

         // Regenerate the config cache
         if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
            require FORUM_ROOT.'include/cache.php';

            generate_config_cache();

Is it:

         // Regenerate the config cache
         if (!defined('FORUM_CACHE_FUNCTIONS_LOADED'))
            require FORUM_ROOT.'include/cache.php';

         generate_config_cache();

Or there are missing braces:

         // Regenerate the config cache
         if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) {
            require FORUM_ROOT.'include/cache.php';

            generate_config_cache();
         }

2

10

Re: Pan Framework - дополнительные функции для расширений

@Popov, ok. I will check it then fix and update. Thx so mch for your report  PunBB_INFO_ICQ/thumbsup

$matches[2]

The extension has been updated. Just download it and update it in the list of extensions.

1

11

Re: Pan Framework - дополнительные функции для расширений

@PunBB, Не вкурю, это критично?

12

Re: Pan Framework - дополнительные функции для расширений

Перестраховка.
Суть:

         // Если константа FORUM_CACHE_FUNCTIONS_LOADED НЕ определена
         if (!defined('FORUM_CACHE_FUNCTIONS_LOADED')) {
            // то подключаем файл кэша
            require FORUM_ROOT.'include/cache.php';
            // генерируем кэш конфигурации
            generate_config_cache();
         }

По сути, добавленные скобки разрешают выполнять функцию генерации кэша только в том случае, если константа НЕ определена.  До этого функция выполнялась в любом случае.
Экономия ресурсов PunBB_INFO_ICQ/pardon

13 (edited by belelectroteam 2020.10.01 11:10)

Re: Pan Framework - дополнительные функции для расширений

Здравствуйте.
Поставил движок 1.4.5 и PHP7.3. Установил единственное расширение Pan Framework 0.1.8.
Получаю ошибку каждый раз при отрисовке любой страницы:

Notice: Undefined variable: main_tpl in /.../footer.php(44) : eval()'d code on line 10

Если расширение отключить, то ошибка пропадает.
В файле footer.php в строке 10 ничего нету... Вот первые строки файла:

Spoiler
<?php
/**
 * Outputs the footer used by most forum pages.
 *
 * @copyright (C) 2008-2012 PunBB, partially based on code (C) 2008-2009 FluxBB.org
 * @license http://www.gnu.org/licenses/gpl.html GPL version 2 or higher
 * @package PunBB
 */


// Make sure no one attempts to run this script "directly"
if (!defined('FORUM'))
   exit;

// START SUBST - <!-- forum_about -->
ob_start();
($hook = get_hook('ft_about_output_start')) ? eval($hook) : null;
...
...
...

Думаю - это работа хуков (ну если не видно в файловой строке 10, но неуверен.)

https://punbb.softplaza.net/uploads/images/2020/10/319cc78dcd1b9b98b4a2824b28293b30.png

$matches[2]

В этом расширении (версия 0.1.8) есть ошибка!
В файле manifest.xml в конце устанавливаются хуки (3 штуки). Так вот третий хук имеет переменную main_tpl, а должно быть наоборот - tpl_main. Там в третьем хуке надо исправить название переменной в двух местах.
Вот этот кусок кода (с исправленной ошибкой):

Spoiler
<hook id="ft_about_end" priority="10"><![CDATA[if(!defined('COPY_PUNBB_INFO')){$tpl_main=str_replace('<a href="http://punbb.informer.com/">PunBB</a>','<a href="https://punbb.softplaza.net">PunBB</a>',$tpl_main);define('COPY_PUNBB_INFO', 1);}]]></hook>

Наверное, надо сделать версию 0.1.9.

И будет вам чистый лог ошибок!  PunBB_INFO_ICQ/blum

2