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

Список разделов phpBBex 1.x (поддерживается) Поддержка 1.x

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

Сообщение #1 rvszap » 02.06.2014, 21:29

Собственно вопрос, подскажите как вставить html код в отдельно взятое сообщение темы на форуме. Не в верху форума, не в низу, не на главной, не после первого поста и тд. а именно в 135 пост 45 темы, к примеру :smile: . Спасибо.
rvszap
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #2 VEG » 02.06.2014, 21:49

Создайте BBCode с нужным содержимым в качестве HTML. Затем вставьте этот BBCode в нужное сообщение.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #3 rvszap » 02.06.2014, 22:01

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

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

Добавлено спустя 49 минут 28 секунд:
На некоторых форумах есть BB код [html]вставка[/html], кто знает как его прописать?
rvszap
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #4 VEG » 03.06.2014, 00:24

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

rvszap:Нужны единоразовые вставки html кода в некоторые посты.
Для каждой такой вставки вы в админке создадите отдельный BBCode. Создавать BBCode, который позволит пользователям вставлять любой HTML код, нельзя. Только если через мод и там какой-то системой прав разрешать/запрещать использовать этот BBCode.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #5 rvszap » 03.06.2014, 00:34

Поковырявшись в админке, я понял, что можно просто убрать галочку - "показывать кнопку" и код по сути есть, а в форме ответа кнопки для его использования нет.
rvszap
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #6 VEG » 03.06.2014, 01:00

Верно. Только ещё учтите, что количество BBCode ограничено (но я не помню точно сколько). Так что сильно не увлекайтесь. Если у вас какие-то похожие конструкции есть, создавайте параметризованные BBCode и используйте их на форуме с параметрами. Там же на странице внизу есть справка по созданию.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #7 rvszap » 03.06.2014, 01:07

Нашел у нас этот мод Enable HTML
rvszap
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #8 rvszap » 03.06.2014, 11:59

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

Рад если помог, вроде информация пустяковая, но никто совокупного ответа не дал, сам потратил много времени, чтобы обобщить все важные моменты в кучу.
rvszap
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #9 Boroda » 03.06.2014, 17:44

Не забывайте только, что давая возможность пользователям вставлять свой html код вы наносите серьезный удар по безопасности форума.
Boroda M
Репутация: 38
С нами: 11 лет 10 месяцев

Сообщение #10 rvszap » 03.06.2014, 19:39

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

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

Код: Выделить всё
// 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

Добавлено спустя 17 минут 35 секунд:
При нажатии в любом месте на какого либо пользователя вылазит эта ошибка
rvszap
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #11 Sumanai » 04.06.2014, 02:57

Прикольно. Он прямо выше строчкой подключает файл со своими функциями. Чудеса.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

Сообщение #12 VEG » 04.06.2014, 10:10

Замените:
Код: Выделить всё
include($phpbb_root_path . 'includes/mods/enable_html.' . $phpEx);
на:
Код: Выделить всё
require($phpbb_root_path . 'includes/mods/enable_html.' . $phpEx);
Если окажется, что файла такого нет, упадёт с ошибкой. Тогда проверьте, есть ли такой файл =)
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #13 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
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #14 VEG » 04.06.2014, 14:07

Посмотрите, объявлена ли в файле /includes/mods/enable_html.php функция enable_html_permission.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #15 rvszap » 04.06.2014, 14:15

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

Добавлено спустя 1 минуту 23 секунды:
Не работает
rvszap
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #16 VEG » 04.06.2014, 14:29

rvszap, я имею в виду посмотрите, есть ли в этом файле такая функция. Может быть из-за ошибки при загрузке по FTP файл обрезало.
VEG M
Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #17 rvszap » 04.06.2014, 14:53

Вроде на месте.
Код: Выделить всё
<?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
Автор темы
Репутация: 6
С нами: 11 лет

Сообщение #18 vbnm » 21.07.2014, 05:06

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

Добавлено спустя 1 минуту 27 секунд:
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
Репутация: 108
С нами: 11 лет

Сообщение #19 ЖЪРЧИК » 27.10.2014, 03:53

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

Код: Выделить всё
   $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
Изображение
Там 404 выпадает, но работать (отображение html) не начинает тег. Ошибка 1540 строки пропала, но до нее и с ней код не работает.
Изображение

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

Сообщение #20 Sumanai » 27.10.2014, 04:07

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

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

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

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

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

Может. Некоторые хостеры врубают всякие скрипты и расширения вебвера, якобы для защиты от вирусов и дырок, которые блокируют что попало, кроме вирусов и прочих дырок.
Sumanai M
Аватара
Репутация: 1677
С нами: 11 лет 2 месяца

След.

Вернуться в Поддержка 1.x