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

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

Вернуться   Клуб пользователей портальной системы RUNCMS > Опен Ресурс > Разработчикам > Готовые хаки

Ответ
 
Опции темы Опции просмотра
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #1 05-04-2009, 23:16

Хак, убирающий один запрос к БД для смайлов.
Убирает везде где идет вывод текстовой инфы с форматированием (новости, статьи, форум, файлы и т.п.), как на главной странице модулей так и выбранной статьи/новости/описания/поста и т.п.
Хак основан на отказе хранить инфу о смайлах в БД и перенос хранения в папку "cache" где хранятся другие файлы настроек всего портала.
Работает на любой версии.
Начинаем:
1. Помещаем файл \modules\system\cache\smiles.php в папку \www\modules\system\cache и назначаем права 666
2. Помещаем все смайлы из архива в папку \www\images\smilies
3. Помещаем файл \modules\system\admin\smilies\smilies.php в папку \www\modules\system\admin\smilies
4. В корневом файле misc.php находим конструкцию: case "smilies":
и меняем её на:
PHP код:
case "smilies":
echo 
"
<script type='text/javascript'>
<!--
function doSmilie(addSmilie) {
var currentMessage = window.opener.xoopsGetElementById(\""
.$target."\").value;
window.opener.xoopsGetElementById(\""
.$target."\").value=currentMessage+addSmilie;
return;
}
//-->
</script>
</head><body>
<table width='100%'><tr>
<td colspan='3'><big><b>"
._SMILIES."</b></big><br />"._CLICKASMILIE."</td>
</tr><tr class='bg2'>
<td><b>"
._CODE."</b></td>
<td><b>"
._IMAGE."</b></td>
</tr>"
;
$file_smiles_arr file(XOOPS_ROOT_PATH."/modules/system/cache/smiles.php");
if (
is_array($file_smiles_arr)) {
$rcolor 'bg1';
for (
$i=0;$i<count($file_smiles_arr); $i++) {
$data explode("|",$file_smiles_arr[$i]);
if (
trim($data) != "") {
echo 
"<tr class='$rcolor'><td>".$data[0]."</td><td><a href='javascript: justReturn()' onclick='doSmilie(\" ".$data[0]." \");'><img src='".formatURL(XOOPS_URL."/images/smilies/"rtrim($data[1]))."' alt='' /></a></td></tr>";
if ( 
$rcolor == 'bg1' ) {
$rcolor 'bg2';
} else {
$rcolor 'bg1';
}
}
}
} else {
echo 
"Could not retrieve data from the database.";
}
echo 
"</table>";
break; 
5. В файле \www\class\module.textsanitizer.php находим функции:
smiley($message)
desmile($message)
и в новых версиях рони есть такая:
getAllSmilesFromDB()
нам нужно заменить код функиции: smiley($message)
другие функции не трогаем низависимо от версии портала.
Новый код функции:
PHP код:
function smiley($message) {
$file_smiles_arr file(XOOPS_ROOT_PATH."/modules/system/cache/smiles.php");
if (
is_array($file_smiles_arr)) {
for (
$i=0;$i<count($file_smiles_arr); $i++) {
$data explode("|",$file_smiles_arr[$i]);
$message str_replace($data[0], '<img src="'.formatURL(XOOPS_URL.'/images/smilies/'rtrim($data[1])).'" alt="'.$data[0].'" />'$message);
}
}
return 
$message;

6. Меняем вывод смайлов под формой ответа:
Открываем файл \www\class\xoopsform\formdhtmltextarea.php
и находим функцию renderSmileys()
меняем её на:
PHP код:
function renderSmileys() {
$smileyPath "images/smilies/";
$file_smiles_arr file(XOOPS_ROOT_PATH."/modules/system/cache/smiles.php");
if (
is_array($file_smiles_arr)) {
$ret  "";
for (
$i=0;$i<count($file_smiles_arr); $i++) {
$data explode("|",$file_smiles_arr[$i]);
$ret .= "<a href='javascript:justReturn()' onclick='xoopsCodeSmilie(\"".$this->getName()."\", \" ".$data[0]." \");'><img src='".XOOPS_URL."/".$smileyPath.rtrim($data[1])."' border='0' alt='".$data[0]."' /></a>";
if (
$i 19) {
$ret .= " [<a href='javascript:openWithSelfMain(\"".XOOPS_URL."/misc.php?action=showpopups&amp;type=smilies&amp;target=".$this->getName()."\",\"smilies\", 300, 475);'>"._MORE."</a>]";
break;
}
}
}
return 
$ret;

P.S. Хак конечно убирает один всего лишь запрос, но если портал имеет тысячи страниц то прогресс налицо.
В базе останется таблица смайлов, что мы больше не используем. Можете не трогать, места она не отъедает.
Хак by Zormax
Вложения
Тип файла: zip smiles_hak.zip (19.9 Кбайт, 6 просмотров)
Оценка сообщения (репутация)
+3 Jurist положительно: молодца

Последний раз редактировалось Zormax, 05-04-2009 в 23:31


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
Jurist вне форума Jurist
Жизнь хороша!

Аватар для Jurist

| Цитировать Старый #2 05-05-2009, 13:29

Есть старая идея еще заменить смайлы портала на смайлики.. ну даже колобков из того же qip, там они в гифах, можно сделать патч на портал, чтобы смайлы были нормальные...


Белорусский правовой независимый информационно-аналитический портал
-----
"Помогать людям в беде - наш профессиональный долг. Помогать им зарабатывать деньги - наш бизнес."(c) Jurist
Посетить домашнюю страницу Jurist
  Сообщения: 648 c 06.02.2005 | Репутация: 24
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #3 05-05-2009, 13:44

ну собственно я не предлагаю вам те страшные смайлы что в дистрах.
я от них отказался много лет назад.


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
Jurist вне форума Jurist
Жизнь хороша!

Аватар для Jurist

| Цитировать Старый #4 05-05-2009, 20:24

так может в дистрибутив уже нормальные впихнуть пора?


Белорусский правовой независимый информационно-аналитический портал
-----
"Помогать людям в беде - наш профессиональный долг. Помогать им зарабатывать деньги - наш бизнес."(c) Jurist
Посетить домашнюю страницу Jurist
  Сообщения: 648 c 06.02.2005 | Репутация: 24
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #5 05-05-2009, 21:47

Jurist ты это... дистр скачай, посмотри что в нем лежит


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
Jurist вне форума Jurist
Жизнь хороша!

Аватар для Jurist

| Цитировать Старый #6 05-07-2009, 15:17

уел........)))


Белорусский правовой независимый информационно-аналитический портал
-----
"Помогать людям в беде - наш профессиональный долг. Помогать им зарабатывать деньги - наш бизнес."(c) Jurist
Посетить домашнюю страницу Jurist
  Сообщения: 648 c 06.02.2005 | Репутация: 24
Ответ

Опции темы
Опции просмотра

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

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


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