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

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

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

Ответ
 
Опции темы Опции просмотра
nifus вне форума nifus
меня здесь нет

Аватар для nifus

| Цитировать Старый #1 11-10-2005, 10:39

хочу поделится своим опытом в вопросе оптимизации runcms.
для начала убьём 1 запрос к б.д. который считывает список смайликов.
ВНИМАНИЕ: не рекомендуется делать тем, кто нехочет растаться с функцией легкого добавления смайликов через админку(/modules/system/admin.php?fct=smilies).
находим файл
/class/module.textsanitizer.php
и меняем
PHP код:
function smiley($message) {
global 
$db;


if (
count($this->smileys) == 0) {
        if ( 
$getsmiles $db->query("SELECT code, smile_url FROM ".$db->prefix("smiles")) ) {
                while (
$smiles $db->fetch_array($getsmiles)) {
                        
$message str_replace($smiles['code'], '<img src="'.formatURL(XOOPS_URL.'/images/smilies/'$smiles['smile_url']).'" alt="'.$smiles['code'].'" />'$message);
                        
array_push($this->smileys$smiles);
                }
        }
        } else {
                foreach (
$this->smileys as $smiles) {
                        
$message str_replace($smiles['code'], '<img src="'.formatURL(XOOPS_URL.'/images/smilies/'$smiles['smile_url']).'" alt="'.$smiles['code'].'" />'$message);
                }
        }

return 
$message;

на
PHP код:
function smiley($message) {
global 
$db;
$this->smileys=array
(
array(
"code"=>":-D","smile_url"=>"icon_biggrin.gif","emotion"=>"Куда еще лучше"),
array(
"code"=>":-)","smile_url"=>"icon_smile.gif","emotion"=>"Улыба"),
array(
"code"=>":-(","smile_url"=>"icon_frown.gif","emotion"=>"Грустно господа"),
array(
"code"=>":-o","smile_url"=>"icon_eek.gif","emotion"=>"Удивительно"),
array(
"code"=>":-?","smile_url"=>"icon_confused.gif","emotion"=>"Ничего не понял!"),
array(
"code"=>"8-)","smile_url"=>"icon_cool.gif","emotion"=>"Холосо"),
array(
"code"=>":lol:","smile_url"=>"icon_lol.gif","emotion"=>"Смеюсь"),
array(
"code"=>":-x","smile_url"=>"icon_mad.gif","emotion"=>"Безумный"),
array(
"code"=>":-P","smile_url"=>"icon_razz.gif","emotion"=>"Наверно непристойно"),
array(
"code"=>":cry:","smile_url"=>"icon_cry.gif","emotion"=>"Грущу (очень)"),
array(
"code"=>":evil:","smile_url"=>"icon_evil.gif","emotion"=>"И злой и противный"),
array(
"code"=>":roll:","smile_url"=>"icon_rolleyes.gif","emotion"=>"После сеанса NLP"),
array(
"code"=>";-)","smile_url"=>"icon_wink.gif","emotion"=>"Мигаю"),
array(
"code"=>":pint:","smile_url"=>"icon_drink.gif","emotion"=>"Пью пиво"),
array(
"code"=>":hammer:","smile_url"=>"icon_hammer.gif","emotion"=>"Трудоголик"),
array(
"code"=>":pint:","smile_url"=>"icon_drink.gif","emotion"=>"Пью пиво"),
array(
"code"=>":idea:","smile_url"=>"icon_idea.gif","emotion"=>"А у меня идея!")
);
    if (
count($this->smileys) == 0) :
        if ( 
$getsmiles $db->query("SELECT code, smile_url FROM ".$db->prefix("smiles")) ):
            while (
$smiles $db->fetch_array($getsmiles)):
            
$message str_replace($smiles['code'], 
            
'<img src="'.formatURL(XOOPS_URL.'/images/smilies/'$smiles['smile_url']).'" alt="'.$smiles['code'].'" />'
            
$message);
            
array_push($this->smileys$smiles);
            endwhile;
        endif;
    else:
        foreach (
$this->smileys as $smiles
        
$message str_replace($smiles['code'], '<img src="'.formatURL(XOOPS_URL.'/images/smilies/'$smiles['smile_url']).'" alt="'.$smiles['code'].'" />'$message);
    endif;
return 
$message;



http://cyclenews.ru
  Сообщения: 385 c 07.04.2005 | Репутация: 42
LaRok вне форума LaRok
攻殻機動隊


| Цитировать Старый #2 11-10-2005, 11:06

Гм. А если смайлы другие уже стоят?

Посетить домашнюю страницу LaRok
  Сообщения: 2,045 c 13.09.2003 | Репутация: 25
nifus вне форума nifus
меня здесь нет

Аватар для nifus

| Цитировать Старый #3 11-10-2005, 11:10

тогда мона сделать так для каждого смайлика который должен быть добавлен
array(
"code"=>":-D",
тут всё просто это код смайлика, который будет появлятся в текстовом поле
"smile_url"=>"icon_biggrin.gif"
это адрес смайлика
,"emotion"=>"Куда еще лучше"
это описание
),


http://cyclenews.ru
  Сообщения: 385 c 07.04.2005 | Репутация: 42
LaRok вне форума LaRok
攻殻機動隊


| Цитировать Старый #4 11-10-2005, 12:08

А можно сделать так: писать данные по смайлам в файл по типу кеша и потом оттуда дёргать смайлы.
По реализации сложнее, зато минусов нет.
Просто кумекаю идею дальше.

Последний раз редактировалось LaRok, 11-10-2005 в 12:11

Посетить домашнюю страницу LaRok
  Сообщения: 2,045 c 13.09.2003 | Репутация: 25
nifus вне форума nifus
меня здесь нет

Аватар для nifus

| Цитировать Старый #5 11-10-2005, 12:27

кстати на счёт подобного кеша, у меня много таких оптимизаций валяется


http://cyclenews.ru
  Сообщения: 385 c 07.04.2005 | Репутация: 42
nifus вне форума nifus
меня здесь нет

Аватар для nifus

| Цитировать Старый #6 11-10-2005, 13:29

так таперь убьём ещё пару запросов
для формирования центральных блоков используется 2 запроса
1 для формирования верхне-центральных блоков и 1 для нижне-центральных, но если у вас нет центральных блоков, то эти запросы являются абсалютно бесполезными поэтому будем их удалять
1. для верних файл
header.php
и удаляем
PHP код:
make_cblock(XOOPS_CENTERBLOCK_TOPALL); 
2. для нижних - файл
footer.php
и удаляем
PHP код:
make_cblock(XOOPS_CENTERBLOCK_BOTTOMALL); 


http://cyclenews.ru
  Сообщения: 385 c 07.04.2005 | Репутация: 42
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #7 11-11-2005, 20:20

Цитата:
Сообщение от nifus
кстати на счёт подобного кеша, у меня много таких оптимизаций валяется
Если валяются, то в студию - многим полезно будет.

Цитата:
Сообщение от nifus
для начала убьём 1 запрос к б.д. который считывает список смайликов.
Цитата:
Сообщение от LaRok
А можно сделать так: писать данные по смайлам в файл по типу кеша и потом оттуда дёргать смайлы.
По реализации сложнее, зато минусов нет.
Кеш, точнее предгенерация все таки лучше, да и реализация элементарна. Где то у меня был древний хак, еще для первых версий E-xoops делал, если найду выложу. Хотя и написать недолго.


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

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

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

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


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