Ответы пользователя по тегу phpBB
  • Как при входе в аккаунт на моем форуме убрать :80 из URL?

    mizutsune
    @mizutsune
    Frontend Developer
    На официальном сайте phpBB, были похожие вопросы: тык и тык.

    В общем можно попробовать решить проблему через изменение настроек сервера в админке phpBB. Попробуйте установить порт сервера на 443(по умолчанию порт установлен на 80), который обычно используется для HTTPS. Вам также может потребоваться принудительно настроить URL-адрес сервера.

    63dfdd9bc3e0e905813423.png

    Ещё как вариант можно воспользоваться этим вариантом. То есть, нужно отключить функцию: Принудительные настройки URL сервера, после чего добавить в файл .htaccess следующий код:

    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Ответ написан
    Комментировать
  • Можно добавить внутреннюю валюту?

    mizutsune
    @mizutsune
    Frontend Developer
    В phpBB, увы, нет встроенной системы поинтов/репутации или внутренней валюты, а количество расширений можно пересчитать на пальцах одной руки. Поэтому если вам нужно расширение внутренней валюты, тогда будет проще и лучше написать его самостоятельно. Открываем документацию по созданию расширений, читаем и вперёд. Основу такого расширения написать не сложно, но скорее всего будет сложнее добавлять функционал + защиту от накрутки поинтов.

    Однако есть такое расширение Ultimate Points Extension, возможно подойдёт, хотя у него как и многих других расширений для phpBB имеются свои подводные камни, недостатки и отсутствие нужного функционала. Но, для старта думаю подойдёт.

    Ещё есть такое расширение phpBB Reputation System.
    Ответ написан
    Комментировать
  • Надо ли создавать отдельную базу данных для форума phpbb?

    mizutsune
    @mizutsune
    Frontend Developer
    Вообще в данном случае отдельная база данных для форума хорошее решение, потому что будет разделение: основной сайт и форум. Ну и в будущем при необходимости вам не придётся отделять данные основного сайта от форумных, если вдруг захотите разделить основной сайт и форум. Но в целом нужно смотреть по ситуации и по уровню возможностей.
    Ответ написан
    Комментировать
  • Как оптимизировать движок форума?

    mizutsune
    @mizutsune
    Frontend Developer
    Основной проблемой из-за которой в phpBB появляются тормоза, является большое количество установленных модов и/или расширений, которые в свою очередь написаны на коленке. Разумеется пытаться оптимизировать весь этот зоопарк, особого смысла нет. Да и вообще в большинстве плагинов, присутствует куча лишнего функционала, который возможно даже не используется на сайте.

    Для решения задачи по оптимизации, нужно достаточно хорошо изучить документацию, набраться опыта, а дальше лично создавать кастомные расширения под свои нужды, при этом стоит понимать, что некоторые решения можно реализовать без php, то есть средствами JavaScript + CSS.
    Ответ написан
    Комментировать
  • Как на форумном движке добавлять статьи и вести блог?

    mizutsune
    @mizutsune
    Frontend Developer
    Есть конечно всякие расширения и моды в стиле Ultimate Blog для phpBB, но большинство из них либо заброшены, либо вообще написаны на коленке.

    Естественно phpBB является форумным движком и поэтому мало кому нужна реализация блога на этой CMS. Но, если сделать немного манипуляций, вполне возможно превратить форум на phpBB в более менее нормальный блог. Правда не стоит забывать про недостатки CMS, ведь у phpBB они тоже есть.

    Например некоторые из основных минусов:

    1. ЧПУ. Разработчики phpBB считают это абсолютно ненужной фичей, быть может даже вредной.
    2. Отсутствие многих функций из коробки. Например лайк/дизлайк или загрузка картинок.
    3. Неадекватно написанные плагины. А их много, очень даже много...
    4. Отсутствие Ajax там где казалось бы он очень нужен.

    Однако несмотря на множество недостатков, в целом phpBB хорош по своему, так как имеет достаточное количество других полезных функций и создание более менее нормального блога на этом движке, вполне выполнимая задача. Поэтому имея опыт и желание, можно попытаться реализовать задуманное, добавляя нужный функционал, при этом не забывая что всегда будут недостатки движка, от которых будет сложно избавиться.
    Ответ написан
    Комментировать
  • Как создать тему в коде в phpBB?

    mizutsune
    @mizutsune
    Frontend Developer
    Вот так выглядит код для создания темы в phpBB без использования графического интерфейса:

    <?php
    define('IN_PHPBB', true);
    $phpbb_root_path = './';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);
    include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
    
    
    $user_id = 2; // ID пользователя
    $forum_id = 2; // ID форума 
    $subject = 'Welcome to Wonderland'; // Заголовок темы
    $text = 'Lorem ipsum dolor sit amet.'; // Контент темы
    
    $user->session_create($user_id);
    $auth->acl($user->data);
    $user->setup();
    
    $poll = $uid = $bitfield = $flags = '';
    
    generate_text_for_storage($text, $uid, $bitfield, $flags, true, true, true);
    
    $data = array(
        'forum_id'      => $forum_id,
        'topic_id'       => 0,
        'icon_id'       => false,
        'enable_bbcode'     => true,
        'enable_smilies'    => true,
        'enable_urls'       => true,
        'enable_sig'        => true,
        'message'       => $text,
        'message_md5'   => md5($text),
        'bbcode_bitfield'   => $bitfield,
        'bbcode_uid'        => $uid,
        'post_edit_locked'  => 0,
        'topic_title'       => $subject,
        'notify_set'        => false,
        'notify'            => false,
        'post_time'         => 0,
        'forum_name'        => "",
        'enable_indexing'   => true,
        'force_approved_state'    => true,
        'force_visibility'            => true,
    );
    
    $result = submit_post('post', $subject, '', POST_NORMAL, $poll, $data);
    
    if ($result === FALSE) {
        echo "Error sending post";
    } else {
        echo "Post sent successfully, URL is: $result";
    }
    
    $user->session_kill(false);


    При желании и наличии опыта, можете переписать код под свои нужды, плюс улучшив безопасность и прочее.
    Ответ написан
    Комментировать
  • Как установить расширение в phpBB3?

    mizutsune
    @mizutsune
    Frontend Developer
    Читать документацию конечно же мы не любим.

    И в общем-то по дефолту, многие расширения устанавливаются стандартным способом. Распаковываем архив с расширением в папку ext, после чего идём в админку и активируем расширение.
    Ответ написан
    Комментировать
  • Закрытое сообщение для пользователя?

    mizutsune
    @mizutsune
    Frontend Developer
    Можно сделать так:

    <!-- IF S_REGISTERED_USER -->
       <!-- IF S_USERNAME eq "RISARO" -->
          Welcome home, good hunter...
       <!-- ENDIF -->
    <!-- ENDIF -->


    Нужно поместить этот код в то место, где должно выводиться сообщение для определенного пользователя.

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

    1. Если пользователь авторизован и не является "ботом":

    <!-- IF S_REGISTERED_USER --><!-- ENDIF -->

    2. Если имя пользователя === RISARO:

    <!-- IF S_USERNAME eq "RISARO" --><!-- ENDIF -->

    Однако вышеописанный метод, работает только для "имени" пользователя, а вот если нужно сделать проверку по UID, тогда придётся сделать некоторые дополнительные манипуляции. Дело в том что в phpBB нет глобальной переменной шаблона S_USER_ID, с помощью который вы могли бы сделать проверку по UID. Однако вы можете добавить эту переменную, например через расширение.

    Есть конечно и более простой способ.

    1. Открываем: /includes/functions.php
    2. Находим: $template->assign_vars(array(
    3. Добавляем: 'S_USER_ID' => $user->data['user_id'];

    Теперь переменная S_USER_ID доступна для использования в шаблонах. Но, такой способ не рекомендуется использовать по многим причинам. Для подобных модификаций отлично подходят расширения.
    Ответ написан
    Комментировать
  • Как в форуме phpBB3 создать пользователя?

    mizutsune
    @mizutsune
    Frontend Developer
    Для этого можно использовать расширение adduser, которое даёт возможность добавлять пользователей на форум, прямо из админки сайта.

    После установки расширения, в админке во вкладке Пользователи и группы, появится новый пункт: ACP Add User.

    633b1df2dea1d148799986.png

    Правда, для работы расширения придётся добавить свой языковый пакет, потому что расширение доступно по дефолту только на Английском языке.
    Ответ написан
    Комментировать
  • Аналог function.php дочерней темы вордпресс в phpbb3.2?

    mizutsune
    @mizutsune
    Frontend Developer
    В phpBB это работает по другому.

    Для расширения функционала и/или добавления своих функций, рекомендуется использовать расширения, которые основаны на событиях.

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

    Обычно тема содержит JS скрипты, CSS стили, HTML файлы с шаблонами, ну и например какие-нибудь картинки/svg иконки/файл с конфигом/etc. Проще говоря, тема в phpBB это больше Frontend и никаких function.php в папке с темой нет.
    Ответ написан
    1 комментарий