Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » IkonBoard и другие форумы » Invision Board » Хак раздельного скрытия смайлов и графики

Модерирует : Antuan, Dekker

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

theIggs



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемый всемирный разум! Помоги новичку!
Из-за того, что смайлы на нашем форуме слишком пухлого размера, они коробят строчки. Некоторые пользователи предпочли бы отказаться от смайлов, однако в стандарте их можно вырубить только вместе с графикой (теги IMG).
Я написал вот такой вот хак (см. ниже), примерно вроде работает (учитывая, что я даже ХТМЛ не знаю, куда уж там ПХП ). Так вот, проблема в следующем: InvisionBoard хранит смайлы в виде <бла-бла IMG:[<imagefile>] бла-бла>, в результате чего любые действия с IMG-графикой отражаются и на смайлах. Т.е. отрубить смайлы, оставив прочую графику - запросто, а вот наоборот - никак (все смайлы при выводе заменяются на IMG:<url_to_smile>, а хотелось бы вид что-то типа :smilie1.
Помогите поправить! Впрочем, если дадите ссылку на готовый хак - плюну на свои наработки и поставлю его.
Заранее спасибо!
 

Код:
 
 MySQL Database
//add field
view_smi, tinyint(1), NULL, default 1, fulltext
 
!---UserCP.php
//after
$view_img  = "<select name='VIEW_IMG' class='forminput'>";
//add
$view_smi  = "<select name='VIEW_SMI' class='forminput'>";
 
//after
$this->output .= $this->html->settings_end( array ( 'IMG'  => $view_img."</select>",
//add
'SMI'  => $view_smi."</select>",
 
//after
$view_img .= $this->member['view_img'] ? "<option value='1' selected>".$ibforums->lang['yes']."</option>\n<option value='0'>".$ibforums->lang['no']."</option>"
    : "<option value='1'>".$ibforums->lang['yes']."</option>\n<option value='0' selected>".$ibforums->lang['no']."</option>";
//add
$view_smi .= $this->member['view_smi'] ? "<option value='1' selected>".$ibforums->lang['yes']."</option>\n<option value='0'>".$ibforums->lang['no']."</option>"
    : "<option value='1'>".$ibforums->lang['yes']."</option>\n<option value='0' selected>".$ibforums->lang['no']."</option>";
 
!---functions.php
//after
$DB->query("SELECT mod.mid as is_mod, m.id, m.name, m.mgroup, m.password, m.email, m.allow_post, m.view_sigs, m.view_avs, m.view_pop, m.view_img,  
//insert
m.view_smi,  
 
!---Register.php
//after
'view_img'        => 1,
//add
'view_smi'        => 1,
 
!---Topics.php
//replace
if (!$ibforums->member['view_img'])
{
// unconvert smilies first, or it looks a bit crap.
 
$row['post'] = preg_replace( "#<!--emo&(.+?)-->.+?<!--endemo-->#", "\\1" , $row['post'] );
 
$row['post'] = preg_replace( "/<img src=[\"'](.+?)[\"'].+?".">/", "(IMG:<a href='\\1' target='_blank'>\\1</a>)", $row['post'] );
}
//with
if (!$ibforums->member['view_img'])
{
// unconvert smilies first, or it looks a bit crap.
 
$row['post'] = preg_replace( "/<img src=[\"'](.+?)[\"'].+?".">/", "(IMG:<a href='\\1' target='_blank'>\\1</a>)", $row['post'] );
}
 
if (!$ibforums->member['view_smi'])
{
// unconvert smilies first, or it looks a bit crap.
 
$row['post'] = preg_replace( "#<!--emo&(.+?)-->.+?<!--endemo-->#", "\\1" , $row['post'] );
}
 
!---ad_member.php
//after
'view_img'    => 1,
//add
'view_smi'    => 1,
 
!---usercp_functions.php
//after
//+----------------------------------------
if ( ! preg_match( "/^\d+$/", $ibforums->input['VIEW_IMG'] ) )
{
$std->Error( array( 'LEVEL' => 1, 'MSG' => 'poss_hack_attempt' ) );
}
//add
//+----------------------------------------
if ( ! preg_match( "/^\d+$/", $ibforums->input['VIEW_SMI'] ) )
{
$std->Error( array( 'LEVEL' => 1, 'MSG' => 'poss_hack_attempt' ) );
}
//after
'view_img'     => $ibforums->input['VIEW_IMG'],
//add
'view_smi'     => $ibforums->input['VIEW_SMI'],
 
 
!---skin_ucp.php
//after
<tr>
                   <td class='row1' nowrap><b>{$ibforums->lang['settings_viewimg']}</b></td>
                   <td class='row1' width='70%' align='left'>{$data[IMG]}</td>
</tr>
//add
<tr>
                   <td class='row1' nowrap><b>{$ibforums->lang['settings_viewsmi']}</b></td>
                   <td class='row1' width='70%' align='left'>{$data[SMI]}</td>
</tr>
 
!---en\lang_ucp.php
//replace
settings_viewimg=>"Do you wish to view images in posts, such as smilies and posted images?",
//with
settings_viewimg=>"Do you wish to view posted images in posts?",
settings_viewsmi=>"Do you wish to view smilies in posts?",
 
!---2\lang_ucp.php
//replace
settings_viewimg=>"Отображать картинки в сообщениях (например смайлики, изображения)?",
//with
settings_viewimg=>"Отображать изображения в сообщениях?",
settings_viewsmi=>"Отображать смайлики в сообщениях",
 


----------
Русская поддержка по IP.Board на IBResource.ru.
Для счастья нужно: национальный трекер и поисковик!

Всего записей: 1114 | Зарегистр. 13-11-2002 | Отправлено: 23:22 26-01-2003 | Исправлено: theIggs, 23:33 26-01-2003
Igorek



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
theIggs
А не пробовал удалить содержимое папки html/emoticons? Ну и надо удалить таблицу Clickable Smiles, что рядом с формой ответа.  
Или я тебя не так понял ?

Всего записей: 197 | Зарегистр. 21-10-2001 | Отправлено: 00:44 27-01-2003 | Исправлено: Igorek, 00:45 27-01-2003
theIggs



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igorek Да надо не убить смайлы как класс, а сделать их отображение/неотображение настраиваемым по желанию пользователя. Примерно так, как сделано на forums.ag.ru.
А все убивать - не подходит, потому что некоторые пользователи не хотят видеть смайлики, а мне, например, они очень нравятся.


----------
Русская поддержка по IP.Board на IBResource.ru.
Для счастья нужно: национальный трекер и поисковик!

Всего записей: 1114 | Зарегистр. 13-11-2002 | Отправлено: 22:20 31-01-2003
theIggs



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если кому надо будет, я этот хак типа доделал (как всегда некрасиво и неэстетично), и найти его можно на www.invisionboard.ru в разделе "Заявки на создание хаков". Там, правда, на заявку вообще никто не отозвался... :-\

----------
Русская поддержка по IP.Board на IBResource.ru.
Для счастья нужно: национальный трекер и поисковик!

Всего записей: 1114 | Зарегистр. 13-11-2002 | Отправлено: 19:05 02-03-2003
0 0



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 Ну и надо удалить таблицу Clickable Smiles, что рядом с формой ответа.  

а как сделать вот это?

----------
СЕКС! СЕКС! СЕКС! для ежедневного просмотра перед сном.

Всего записей: 13755 | Зарегистр. 11-04-2002 | Отправлено: 13:49 17-12-2004
USER_ATLANT



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ссылки
 
                                                       

Всего записей: 317 | Зарегистр. 16-04-2011 | Отправлено: 20:52 21-11-2011
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » IkonBoard и другие форумы » Invision Board » Хак раздельного скрытия смайлов и графики


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru