Ru-Board.club
← Вернуться в раздел «Invision Board»

» Хак раздельного скрытия смайлов и графики

Автор: theIggs
Дата сообщения: 26.01.2003 22:22
Уважаемый всемирный разум! Помоги новичку!
Из-за того, что смайлы на нашем форуме слишком пухлого размера, они коробят строчки. Некоторые пользователи предпочли бы отказаться от смайлов, однако в стандарте их можно вырубить только вместе с графикой (теги 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=>"Отображать смайлики в сообщениях",
Автор: Igorek
Дата сообщения: 26.01.2003 23:44
theIggs
А не пробовал удалить содержимое папки html/emoticons? Ну и надо удалить таблицу Clickable Smiles, что рядом с формой ответа.
Или я тебя не так понял ?
Автор: theIggs
Дата сообщения: 31.01.2003 21:20
Igorek Да надо не убить смайлы как класс, а сделать их отображение/неотображение настраиваемым по желанию пользователя. Примерно так, как сделано на forums.ag.ru.
А все убивать - не подходит, потому что некоторые пользователи не хотят видеть смайлики, а мне, например, они очень нравятся.
Автор: theIggs
Дата сообщения: 02.03.2003 18:05
Если кому надо будет, я этот хак типа доделал (как всегда некрасиво и неэстетично), и найти его можно на www.invisionboard.ru в разделе "Заявки на создание хаков". Там, правда, на заявку вообще никто не отозвался... :-\
Автор: 0 0
Дата сообщения: 17.12.2004 12:49

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

а как сделать вот это?
Автор: USER_ATLANT
Дата сообщения: 21.11.2011 18:52
Ссылки

Страницы: 1

Предыдущая тема: Система предупреждений в IPB 1.1


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.