Как вставить html код в отдельно взятое сообщение темы?

Board index phpBBex 1.x Поддержка

Description: У вас проблемы с phpBBex 1.x и вам необходима помощь? Спрашивайте здесь!
Forum rules: Одна тема — один вопрос или группа связанных вопросов. Обязательно формируйте внятный заголовок, максимально отражающий суть вопроса. Подробно описывайте проблему. Не забудьте указать версию phpBBex и какие моды установлены, по возможности добавьте скриншоты проблемы или ссылку на страницу с проблемой.
Moderator: Поддержка

Post #1by rvszap » 02.06.2014, 21:29

Собственно вопрос, подскажите как вставить html код в отдельно взятое сообщение темы на форуме. Не в верху форума, не в низу, не на главной, не после первого поста и тд. а именно в 135 пост 45 темы, к примеру :smile: . Спасибо.
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #2by VEG » 02.06.2014, 21:49

Создайте BBCode с нужным содержимым в качестве HTML. Затем вставьте этот BBCode в нужное сообщение.
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Avatar
Age: 32
Location: Минск, Беларусь
Reputation: 1576
With us: 7 years 6 months

Post #3by rvszap » 02.06.2014, 22:01

Ткните носом на тему по созданию bb кодов плиз.

Added after 24 minutes 37 seconds:
Поразмыслив, возник еще один вопрос, если идти по пути ВВкода, тогда этот код будет доступен всем и его смогут использовать и в других постах, а это не нужно. Нужны единоразовые вставки html кода в некоторые посты. Если вставить ВВкод в пост, а потом этот ВВкод удалить из админки, то такая информация лежащая в коде по идее то же перестанет показываться.

Added after 49 minutes 28 seconds:
На некоторых форумах есть BB код [html]вставка[/html], кто знает как его прописать?
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #4by VEG » 03.06.2014, 00:24

rvszap wrote:На некоторых форумах есть BB код [html]вставка[/html], кто знает как его прописать?
Ищите соответствующий мод.

rvszap wrote:Нужны единоразовые вставки html кода в некоторые посты.
Для каждой такой вставки вы в админке создадите отдельный BBCode. Создавать BBCode, который позволит пользователям вставлять любой HTML код, нельзя. Только если через мод и там какой-то системой прав разрешать/запрещать использовать этот BBCode.
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Avatar
Age: 32
Location: Минск, Беларусь
Reputation: 1576
With us: 7 years 6 months

Post #5by rvszap » 03.06.2014, 00:34

Поковырявшись в админке, я понял, что можно просто убрать галочку - "показывать кнопку" и код по сути есть, а в форме ответа кнопки для его использования нет.
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #6by VEG » 03.06.2014, 01:00

Верно. Только ещё учтите, что количество BBCode ограничено (но я не помню точно сколько). Так что сильно не увлекайтесь. Если у вас какие-то похожие конструкции есть, создавайте параметризованные BBCode и используйте их на форуме с параметрами. Там же на странице внизу есть справка по созданию.
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Avatar
Age: 32
Location: Минск, Беларусь
Reputation: 1576
With us: 7 years 6 months

Post #7by rvszap » 03.06.2014, 01:07

Нашел у нас этот мод Enable HTML
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #8by rvszap » 03.06.2014, 11:59

Установил мод
Enable HTML.zip
Enable HTML
(63.7 KiB) Downloaded 357 times
, заработало все после правки 84 строки, как указано в теме в предыдущем посте.
Найти в 84 строке
Code: Select all
$new_auth = new auth();
Заменить на
Code: Select all
$new_auth = new phpbb_auth();
Нашел русификатор
language_RU.rar
Русификатор
(1.04 KiB) Downloaded 291 times
. После установки, нужные файлы нужно просто перенести в нужные папки и все.
Еще один нюанс, на который потратил много времени пока разобрался, кнопка с ББкодом html в панели ответа после установки мода не появляется. Мод начинает работать по умолчанию если в правах доступа либо пользователю, либо группе разрешить им пользоваться. Для того что бы разместить html код в посте необходимо вручную размещать его в контейнере [html]сам код[/html].
Можно добавить этот ББкод в админке, создав новый ББкод и прописав в "Использовании кода" - [html]{INTTEXT}[/html], "Замена HTML" и "Подсказку" не прописывал, оставил пустыми. Если не ставить галочку в окне - "Показывать на странице ответа" то кнопку на панели ответа показывать не будет, если поставить, то кнопка будет присутствовать всегда, но работать будет только у тех пользователей и групп, которым дан доступ на работу с этим ББ кодом.

Рад если помог, вроде информация пустяковая, но никто совокупного ответа не дал, сам потратил много времени, чтобы обобщить все важные моменты в кучу.
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #9by Boroda » 03.06.2014, 17:44

Не забывайте только, что давая возможность пользователям вставлять свой html код вы наносите серьезный удар по безопасности форума.
Boroda M
Мастер
Age: 44
Reputation: 38
With us: 7 years 5 months

Post #10by rvszap » 03.06.2014, 19:39

Все правильно вы говорите, поэтому мне, как админу нужно было это как доп инструмент. И ни у кого этих прав нет.

Added after 5 hours 1 minute:
Влезла ошибка при нажатии внизу в статистике на нового пользователя
Fatal error: Call to undefined function enable_html_permission() in /home/eЧЧЧЧЧЧЧЧЧ/public_html/ЧЧЧЧЧЧЧЧЧЧ.com/memberlist.php on line 536

Code: Select all
// START Enable HTML
         include($phpbb_root_path . 'includes/mods/enable_html.' . $phpEx);
         if (enable_html_permission($member['user_id'], $member))
         {
            $member['user_sig'] = enable_html($member['user_sig'], $member['user_sig_bbcode_uid']);
         }
         // END Enable HTML

Added after 17 minutes 35 seconds:
При нажатии в любом месте на какого либо пользователя вылазит эта ошибка
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #11by Sumanai » 04.06.2014, 02:57

Прикольно. Он прямо выше строчкой подключает файл со своими функциями. Чудеса.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1667
With us: 6 years 9 months

Post #12by VEG » 04.06.2014, 10:10

Замените:
Code: Select all
include($phpbb_root_path . 'includes/mods/enable_html.' . $phpEx);
на:
Code: Select all
require($phpbb_root_path . 'includes/mods/enable_html.' . $phpEx);
Если окажется, что файла такого нет, упадёт с ошибкой. Тогда проверьте, есть ли такой файл =)
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Avatar
Age: 32
Location: Минск, Беларусь
Reputation: 1576
With us: 7 years 6 months

Post #13by rvszap » 04.06.2014, 11:02

Проверил файл по такому адресу includes/mods/enable_html.php присутствует, строку заменил - ошибка та же. :sad:

Fatal error: Call to undefined function enable_html_permission() in /home/ччччччч/public_html/чччччччч.com/memberlist.php on line 535

На всякий случай версия ЕХ стоит 1.6
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #14by VEG » 04.06.2014, 14:07

Посмотрите, объявлена ли в файле /includes/mods/enable_html.php функция enable_html_permission.
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Avatar
Age: 32
Location: Минск, Беларусь
Reputation: 1576
With us: 7 years 6 months

Post #15by rvszap » 04.06.2014, 14:15

стоияло 644, поставил 777

Added after 1 minute 23 seconds:
Не работает
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #16by VEG » 04.06.2014, 14:29

rvszap, я имею в виду посмотрите, есть ли в этом файле такая функция. Может быть из-за ошибки при загрузке по FTP файл обрезало.
С наилучшими пожеланиями, Евгений
VEG M
Администратор
Avatar
Age: 32
Location: Минск, Беларусь
Reputation: 1576
With us: 7 years 6 months

Post #17by rvszap » 04.06.2014, 14:53

Вроде на месте.
Code: Select all
<?php
/**
*
* @package Enable HTML
* @copyright (c) 2008 EXreaction
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
   exit;
}

function enable_html_permission_self($forum_id = false)
{
   global $auth;

   if ($forum_id)
   {
      return ($auth->acl_get('u_html') || $auth->acl_get('f_html', $forum_id)) ? true : false;
   }
   else
   {
      return ($auth->acl_get('u_html')) ? true : false;
   }
}

function enable_html_permission($user_id, $user_row = false, $forum_id = false)
{
   static $html_permissions = array();
   global $user;

   if (!isset($user_row['user_id']))
   {
      $user_row['user_id'] = $user_id = (int) $user_id;
   }
   else
   {
      $user_id = $user_row['user_id'] = (int) $user_row['user_id'];
   }

   if ($user_id == ANONYMOUS)
   {
      return false;
   }
   else if ($user_id == $user->data['user_id'])
   {
      return enable_html_permission_self($forum_id);
   }

   if (!isset($html_permissions[$user_id]))
   {
      $html_permissions[$user_id] = array();
   }

   if ($forum_id && isset($html_permissions[$user_id][$forum_id]))
   {
      return $html_permissions[$user_id][$forum_id];
   }
   else if (!$forum_id && isset($html_permissions[$user_id][0]))
   {
      return $html_permissions[$user_id][0];
   }

   if ($user_row === false || !isset($user_row['user_type']) || !isset($user_row['user_permissions']))
   {
      global $db;
      $result = $db->sql_query('SELECT user_type, user_permissions, user_id FROM ' . USERS_TABLE . ' WHERE user_id = ' . $user_id);
      $user_row = $db->sql_fetchrow($result);
      $db->sql_freeresult($result);

      if (!$user_row)
      {
         return false;
      }
   }

   if ($forum_id)
   {
        $new_auth = new phpbb_auth();
      $new_auth->acl($user_row);
      $html_permissions[$user_id][$forum_id] = ($new_auth->acl_get('u_html') || $new_auth->acl_get('f_html', $forum_id)) ? true : false;
      unset($new_auth);

      return $html_permissions[$user_id][$forum_id];
   }
   else
   {
        $new_auth = new auth();
      $new_auth->acl($user_row);
      $html_permissions[$user_id][0] = ($new_auth->acl_get('u_html')) ? true : false;
      unset($new_auth);

      return $html_permissions[$user_id][0];
   }
}

function enable_html($text, $uid)
{
   if (strpos($text, '[html') === false)
   {
      return $text;
   }

   $text = str_replace(array('[html:' . $uid . ']', '[/html:' . $uid . ']'), array('[html]', '[/html]'), $text);

   $text_ary = explode('[html]', $text);
   $text = '';
   foreach ($text_ary as $tmp)
   {
      if (strpos($tmp, '[/html]'))
      {
         $tmp = explode('[/html]', $tmp, 2);
         $text .= htmlspecialchars_decode(str_replace(array("\r\n", "\n"), ' ', $tmp[0])) . $tmp[1];
      }
      else
      {
         $text .= $tmp;
      }
   }

   return str_replace(array('[html]', '[/html]'), '', $text);
}

?>
rvszap
Topic author, Мастер
Reputation: 6
With us: 6 years 8 months

Post #18by vbnm » 21.07.2014, 05:06

на версии 1.8.0 ЕХ все работает :smoke:
речь идет в отношении мода:
rvszap wrote:Установил мод
Enable HTML.zip
,
пару раз ругнулся на ошибку входа
как тут
rvszap wrote:Найти в 84 строке
КОД: ВЫДЕЛИТЬ ВСЁ
$new_auth = new auth();
Заменить на
КОД: ВЫДЕЛИТЬ ВСЁ
$new_auth = new phpbb_auth();
Нашел русификатор
language_RU.rar
. После установки, нужные файлы нужно просто перенести в нужные папки и все.
пару, потому что там то же самое прописано в елсе, ниже по коду, строка кажись 93 уже будет, менять нужно в обоих случаях.
форум на локалке

Added after 1 minute 27 seconds:
if ($forum_id)
{
$new_auth = new phpbb_auth();
$new_auth->acl($user_row);
$html_permissions[$user_id][$forum_id] = ($new_auth->acl_get('u_html') || $new_auth->acl_get('f_html', $forum_id)) ? true : false;
unset($new_auth);

return $html_permissions[$user_id][$forum_id];
}
else
{
$new_auth = new phpbb_auth();
$new_auth->acl($user_row);
$html_permissions[$user_id][0] = ($new_auth->acl_get('u_html')) ? true : false;
unset($new_auth);
vbnm
Гуру
Reputation: 100
With us: 6 years 8 months

Post #19by ЖЪРЧИК » 27.10.2014, 03:53

У меня на 1540 строку жаловался (3 ошибки вылезло про инклуд) во вьютопик.пхп

Code: Select all
   $poster_id = $row['user_id'];
   // START Enable HTML
   if (!function_exists('enable_html'))
   {
      include($phpbb_root_path . 'includes/mods/enable_html.' . $phpEx);
   }
   if (enable_html_permission($poster_id, $user_cache[$poster_id], $forum_id))
   {
      $row['post_text'] = enable_html($row['post_text'], $row['bbcode_uid']);

      if ($user_cache[$poster_id]['sig'] && $row['enable_sig'] && empty($user_cache[$poster_id]['sig_parsed']))
      {
         $user_cache[$poster_id]['sig'] = enable_html($user_cache[$poster_id]['sig'], $user_cache[$poster_id]['sig_bbcode_uid']);
      }
   }
   // END Enable HTML
   // End signature parsing, only if needed

Все вышеописанные мероприятия сделал. Файлы копировал из root в корень форума.
Единственное, что не сделал. Это пытался запустить через строку браузера enable_html.php
Image
Там 404 выпадает, но работать (отображение html) не начинает тег. Ошибка 1540 строки пропала, но до нее и с ней код не работает.
Image

Может ли быть дело в php на стороне сервера, который по каким-либо причинам отказывается выполнять enable_html.php и выдает 404?
плешивый кот
ЖЪРЧИК
Гуру
Avatar
Reputation: 174
With us: 5 years 3 months

Post #20by Sumanai » 27.10.2014, 04:07

ЖЪРЧИК wrote:У меня на 1540 строку жаловался (3 ошибки вылезло про инклуд) во вьютопик.пхп

Какая жалоба и где в вышепредставленном коде строка 1540?

ЖЪРЧИК wrote:Там 404 выпадает

Ошибка "Не найдено". Проверьте наличие файла в корне.

ЖЪРЧИК wrote:Может ли быть дело в php на стороне сервера, который по каким-либо причинам отказывается выполнять enable_html.php и выдает 404?

Может. Некоторые хостеры врубают всякие скрипты и расширения вебвера, якобы для защиты от вирусов и дырок, которые блокируют что попало, кроме вирусов и прочих дырок.
Использование поиска продлевает жизнь.
Это форум поддержки форка phpBBex. Поддержка по phpBB осуществляется в других местах.
Sumanai M
Гуру
Avatar
Reputation: 1667
With us: 6 years 9 months

Next

Return to Поддержка



cron