Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Портал > Модули и блоки > Myarticles

Ответ
 
Опции темы Опции просмотра
ZlydenGL вне форума ZlydenGL
Напильникъ - наше все

Аватар для ZlydenGL

| Цитировать Старый #1 02-16-2010, 23:26

Давно уже замечал, что в комментариях пользователей к статьям смайлы выводились довольно забавно: прямоугольник типа "изображение недоступно" с нормальной подписью смайла в alt-теге, при этом путь к изображению задавался пустой.

Начал ковырять и выяснил, что из-за того, что класс textsanitizer'а в myarticles подключается мягко говоря криво (а точнее - через расширение этого класса), то не отрабатывает процедура задания стандартного пути для смайлов.

Решил проблему очень просто: в процедуре class/module.textsanitizer.php функцию

PHP код:
    function smiley($message)
    {
        if(!
$this->smileys)
            
$this->getAllSmilesFromDB();
        foreach (
$this->smileys as $s)
        {
            
$message str_replace($s['code'], '<img src="'.formatURL($this->smilies_path$s['smile_url']).'" alt="'.$s['code'].'" align="middle" />'$message);
        }
        return 
$message;
    } 
заменил на

PHP код:
    function smiley($message)
    {
        if(!
$this->smileys)
            
$this->getAllSmilesFromDB();
        foreach (
$this->smileys as $s)
        {
            if (!
$this->smilies_path$this->smilies_path XOOPS_IMG_URL.'/smilies/';
            
$message str_replace($s['code'], '<img src="'.formatURL($this->smilies_path$s['smile_url']).'" alt="'.$s['code'].'" align="middle" />'$message);
        }
        return 
$message;
    } 
(т.е. просто добавил проверку на существование переменной; если она не задана - задаем ее вручную).

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

Наверняка можно ту же задачу сделать, отредактировав только класс-расширение санитайзера от модуля MyArticles (т.е. файл myarticles/class/textsanitizer.class.php), но как это сделать пока не знаю.
Оценка сообщения (репутация)
+1 iltmpz положительно: спасибо, работает

Последний раз редактировалось ZlydenGL, 02-16-2010 в 23:28


Не ошибается только тот, кто ничего не делает. Ковчег построил любитель. Профессионалы строили Титаник.
  Сообщения: 777 c 22.09.2008 | Репутация: 92
Michael-XIII вне форума Michael-XIII
Стар я для всего этого

Аватар для Michael-XIII

| Цитировать Старый #2 02-18-2010, 09:22

Хак

Как-бы бага тут


PHP код:
class ArtTextSanitizer extends MyTextSanitizer {
    function 
ArtTextSanitizer()
    {
        global 
$xoopsConfig;

        
$this->setAllowImage($xoopsConfig['allow_image']);
        
$this->setAllowLibrary($xoopsConfig['allow_library']);
    } 
Заменить на что-то типа

[php]
PHP код:
class ArtTextSanitizer extends MyTextSanitizer {
    function 
ArtTextSanitizer()
    {
        global 
$xoopsConfig;
                
parent::MyTextSanitizer();

        
$this->setAllowImage($xoopsConfig['allow_image']);
        
$this->setAllowLibrary($xoopsConfig['allow_library']);
    } 
или для php 5 (что более правильно)

parent::__construct();

Не проверял ибо проект не поднят сейчас

Последний раз редактировалось Michael-XIII, 02-18-2010 в 09:28


"А почему в RunCMS глючит ... ?"
"Глупые винят других. Умные – себя. А мудрые идут вперед". (С)
Посетить домашнюю страницу Michael-XIII
  Сообщения: 1,313 c 18.07.2005 | Репутация: 93
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #3 02-18-2010, 13:58

Цитата:
Сообщение от ZlydenGL Посмотреть сообщение
textsanitizer'а в myarticles подключается мягко говоря криво (а точнее - через расширение этого класса)
он не криво подключается, а расширяется с переопределением метода.

Цитата:
Сообщение от Michael-XIII Посмотреть сообщение
Хак

Как-бы бага тут
сенкс.

Баг характерен для старших версий. Последняя версия MyArticles писалась под RUNCMS 1.4, там не было свойства устанавливающего путь к смайлам, да и конструктора у MyTextSanitizer не было. Баг появляется в линейке 1.6

Последний раз редактировалось LARK, 02-18-2010 в 14:01


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
Michael-XIII вне форума Michael-XIII
Стар я для всего этого

Аватар для Michael-XIII

| Цитировать Старый #4 02-18-2010, 14:05

>Баг характерен для старших версий. Последняя версия MyArticles писалась под RUNCMS 1.4, там не было свойства устанавливающего путь к смайлам, да и конструктора у MyTextSanitizer не было. Баг появляется в линейке 1.6

Ларк, не юли ;-) Если наследуешься от базового класса - делай это правильно ;-) ;-) ;-)


"А почему в RunCMS глючит ... ?"
"Глупые винят других. Умные – себя. А мудрые идут вперед". (С)
Посетить домашнюю страницу Michael-XIII
  Сообщения: 1,313 c 18.07.2005 | Репутация: 93
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #5 02-18-2010, 14:14

Цитата:
Сообщение от Michael-XIII Посмотреть сообщение
Ларк, не юли ;-) Если наследуешься от базового класса - делай это правильно ;-) ;-) ;-)
Так я о чем - не было в 1.4 для которой писался модуль в MyTextSanitizer конструктора и вызов несуществующей функции приведет к фатальной ошибке. А для версии 1.6 я модуль не писал. Мы вообще о PHP говорим или о каком другом языке?

Последний раз редактировалось LARK, 02-18-2010 в 14:17


Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском
-------------------------------------------------------------------
Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
iltmpz вне форума iltmpz
Младший участник


| Цитировать Старый #6 09-09-2010, 12:20

Спасибо, оба варианта для комментариев работают.
А что делать с самим текстом статьи?
Там смайлик выглядит вот так: <img src="" alt=":-)" />

Последний раз редактировалось iltmpz, 09-09-2010 в 12:27

  Сообщения: 50 c 02.08.2010 | Репутация: 14
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 78.46 Kb. compressed to 73.29 Kb. by saving 5.17 Kb. (6.59%)
Page generated in 0.07072 seconds with 9 queries