1

(2 ответов, оставленных в Общие вопросы 1.4)

create_function
используется всего в двух файлах

\admin\index.php

и в основном это парсер bbcode

\include\parser.php

не так уж и много править

Добавлено спустя 49 секунд:

заодно может заменить парсер на какойто посовременнее и получше

2

(3 ответов, оставленных в Общие вопросы 1.4)

lifedrift пишет:

что проще сделать, первичную регистрацию и авторизацию на стороне MODx с последующим созданием пользователя в базе форума, или наоборот...

да лучше делать на стороне CMS, а авторизацию и добавления пользователя в форуме навесить на обработчики.

lifedrift пишет:

Есть простое API форума для принудительной авторизации пользователя?
Может есть примеры, которые легко будет переписать?

апи как такового нет. примеры как это делается:

- можно посмотреть punbb login.php
https://github.com/punbb/punbb/blob/master/login.php

- пример плагина для Joomla
https://github.com/rivetweb/punbb-ext-s … /punbb.php
но возможно там чтото изменилось уже

есть настройка прав на форумы - это ок.

но не нашел в функционале форума возможность настройки прав на топики.

есть ли какое то расширение?

downgrade до php 5.5
т.к. это пока последняя максимальная версия для resin

кстати punbb запускается под resin java server (если есть ценители).

5

(7 ответов, оставленных в Расширения v1.4)

раз уж вы разбирались с bbcode парсером - можно его в punbb отключить везде и совсем?

Добавлено спустя 1 минуту 29 секунд:

т.е. чтобы он не обрабатывал bbcode и не расходовал ресурсы.
у меня идея - сделать wisywig на базе contenteditable="true" или просто текст вводить для тех кто не поддерживает эту фичу

Добавлено спустя 8 минут 39 секунд:

отключить через расширения имеется ввиду а не модификацией кода punbb

добавил инструкцию по поднятию локального окружения - может комуто пригодится

https://github.com/rivetweb/punbb-ext-h … разработки

Добавлено спустя 12 минут 53 секунды:

репозитарий переименовал

https://github.com/rivetweb/punbb-ext-devtools

вешаете хук на оба расширения

- можно флаг устанавливать в коде обработчика - чтобы код выполнялся только 1 раз

или

- можно динамически добавить обработчик сделав поиск по $forum_hooks чтобы проверить установлено расширение или нет

Добавлено спустя 1 минуту 46 секунд:

https://github.com/rivetweb/punbb-ext-h … t.php#L190

Добавлено спустя 3 минуты 22 секунды:

таблица хуков это обыкновенный массив с кодом - так то как угодно можно менять.

Добавлена отладачная инфа
https://github.com/rivetweb/punbb-ext-h … информация

Добавлено спустя 5 минут 25 секунд:

Xakker пишет:

Otto.Zukamoto, хотел спросить, раз уж вы спец в этом деле. Можно ли как либо проверять хуки на существование?
Например код навешен на определенный хук. Но если его не существует, то вывести код через другой хук.
Или это хакки?


Можно сделать таким же образом
как сделано тут
https://github.com/rivetweb/punbb-ext-h … t.php#L172

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

Можно веть просто на несколько хуков навесить одинаковый код - это будет правильнее и проще.

9

(5 ответов, оставленных в Общие вопросы 1.4)

Bogdan.Bersenev пишет:

Приветики всем.
Такой вот вопросец, а как их убрать то?

в config.php

ini_set('display_errors', 0);

10

(152 ответов, оставленных в Новости и релизы)

дополнение по рефаткорингу глобальных переменных

https://github.com/punbb/punbb/issues/143

в итоге перенос переменных форума в класс выглядит наиболее простым с тем же результатом

11

(152 ответов, оставленных в Новости и релизы)

https://github.com/punbb/punbb/issues/146

Перенести вывод всей отладочной информации в расширение

в punbb оставить только сбор информации а вывод оставить разработчикам в каком им надо виде

например https://github.com/rivetweb/punbb-ext-hooks-dev - может сделать официальным

добавлены возможностьи

- вывод хуков (после того как примут пулреквест)
- вывод подключаемых файлов
- хуки инициализируются только заданные в файлах расширения в папке .hooks

13

(152 ответов, оставленных в Новости и релизы)

потестил eval include с opcache - разницы нет
eval даже оказался быстрее на малых кусках кода.
https://github.com/punbb/punbb/issues/131
так что да смысла нет переписывать на include

Добавлено спустя 1 час 15 минут 34 секунды:

https://github.com/punbb/punbb/pull/145
сделал сбор вызываемы хуков

Просто собирает список вызываемых хуков страницы.
Использовать этот список хуков и выводить как удобнее (в консоль или на страниц) - можно уже в расширении.

14

(152 ответов, оставленных в Новости и релизы)

https://github.com/punbb/punbb/issues/143

надо?

15

(152 ответов, оставленных в Новости и релизы)

hcs пишет:

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

По поводу переопределения функций предложенный вариант мне не кажется продуманным. К примеру как будет развиваться ситуация при наличии 2 расширений желающих переопределить функции? Если речь сугубо о действиях вебмастера, то ему ничто не мешает тупо вписать свой код. Т.е. тут пока не просматривается потребность в такой универсальности. Может быть ты пояснишь живым примером, продиктовавшим тебе это решение?

это не для расширений. нужно по быстрому менять код некоторых функций без изменения кода движка.
т.е. через расширения такие системные функции никак не изменить.
такая возможность реализована в темах Wordpress.
ладно - код вроде не такой сложный. можно и сразу в файле поменять.

Добавлено спустя 2 минуты 51 секунду:

hcs пишет:

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

По поводу переопределения функций предложенный вариант мне не кажется продуманным. К примеру как будет развиваться ситуация при наличии 2 расширений желающих переопределить функции? Если речь сугубо о действиях вебмастера, то ему ничто не мешает тупо вписать свой код. Т.е. тут пока не просматривается потребность в такой универсальности. Может быть ты пояснишь живым примером, продиктовавшим тебе это решение?

xml парсер работает быстрее и имеет валидацию структуры кода.
легко применить для внедрения новых html снипетов.
что как мне каждется намного упрощает реализацию bbcode парсера.

Добавлено спустя 21 минуту 13 секунд:

hcs, а тогда как насчет добавления в функцию get_hook

https://github.com/punbb/punbb/blob/mas … s.php#L787

строку

($hook = get_hook('get_hook')) ? eval($hook) : null;

?

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

https://github.com/rivetweb/punbb-ext-h … v/issues/3

Добавлено спустя 23 минуты 34 секунды:

написал бред - там получится рекурсивный вывод

Добавлено спустя 29 минут 29 секунд:

может флаг тогда сделать и в коде прописать дебаг инструкцию?

https://github.com/punbb/punbb/blob/mas … s.php#L787

if (defined("FORUM_DEBUG")) {
  echo "<script>console.log(HOOK: " . $hook_id . ");</script>"; // выводить отладочную инфу
}

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

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

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

выбор за разработчиком - то как он привык писать расширения.

Добавлено спустя 57 секунд:

Visman пишет:

Otto.Zukamoto, утилита .update-manifest.php копирует код из каждого файла в хук манифеста? В итоге файлы из папки hooks не нужны становятся?

именно. при сборке архива расширения их можно удалить или оставить.

Добавлено спустя 9 минут 12 секунд:

вот пример расширение редактирования статических разделов - страниц сайта (пока в разработке)

чтобы было более понятно
https://github.com/rivetweb/punbb-ext-s … nifest.xml

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

Добавлено спустя 20 минут 5 секунд:

еще 1 момент - сейчас перезаписываются обработчики хуков
но это потом исправлю потом
https://github.com/rivetweb/punbb-ext-h … v/issues/2
т.к. идея в том чтобы сторониие расширения работали как есть. а менять нужно было только свои.

https://github.com/rivetweb/punbb-ext-hooks-dev

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

Так же запилена утлилита .update-manifest.php которая автоматически заполняет раздел

<hooks>...</hooks>

по содержимому в папке расширения .hooks/

Вобщем раскидываем код хуков по файлам и получаем подсветку и проверку синтаксиса в редакторе кода и ускоряем процесс разработки.

18

(152 ответов, оставленных в Новости и релизы)

идея была - bbcode parser делать на базе xml.

Добавлено спустя 7 минут 14 секунд:

нужен механизм для переопределения функций punbb

добавляем в essentials.php

if (is_readable(FORUM_ROOT.'include/user/functions.php')) {
 require FORUM_ROOT.'include/user/functions.php'
}
require FORUM_ROOT.'include/functions.php';

пример для get_hook в include/user/functions.php

function get_hook($hook_id)
{
    global $forum_hooks;

// тут чтото делаем
    return !defined('FORUM_DISABLE_HOOKS') && isset($forum_hooks[$hook_id]) ? implode("\n", $forum_hooks[$hook_id]) : false;
}

конечно для каждой функции в include/functions.php придется добавить проверку
if (!function_exists("get_hook")) {
//...
}

но это можно делать постепенно

hcs,
что думаешь?

Добавлено спустя 8 минут 2 секунды:

примеш такой пулреквест?

пофиксили
https://github.com/punbb/punbb/pull/132

20

(152 ответов, оставленных в Новости и релизы)

если переделывать парсер - может на xml или html?

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

Добавлено спустя 1 минуту:

есть либа для фильтрования http://htmlpurifier.org/

21

(152 ответов, оставленных в Новости и релизы)

hcs пишет:

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

Добавлено спустя 1 минуту 16 секунд:

Visman,  я правильно понимаю, что для quote preg_replace_callback не нужен?

я пока добавил issue = сделаю как будет время

22

(152 ответов, оставленных в Новости и релизы)

https://github.com/punbb/punbb/pull/139

23

(152 ответов, оставленных в Новости и релизы)

ок. понятно.

24

(152 ответов, оставленных в Новости и релизы)

понятно

я сделал пул реквест с комментами - до сих пор висит вроде.

просто как мне тогда по следующей фиче делать?
если я закомичу новые изменения - они появятся в том же пул реквесте?

25

(9 ответов, оставленных в Торговая площадка)

способ на самом деле не очень то и дейсвенный

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