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

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

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

Ответ
 
Опции темы Опции просмотра
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #1 04-23-2005, 10:40

В классе XoopsBlock есть достаточно неприятная ошибка. Как известно можно выбирать, в рамках, каких модулей показывать тот или иной блок. Но проверка показывать блок или нет, происходит уже после того, как контент блока был загнан в массив методом buildBlock(). Другими словами, сначала блок формируется, а потом уже проверяется, выводить его или нет. Таким образом, мы получаем совершенно ненужные запросы к DB необходимые для построения конкретного блока. Плюс достаточно объемные и ненужные массивы с контентом блоков.

Лекарство:

Берем файл class/xoopsblock.php (RUNCMS 1.1A)

Находим метод getAllBlocksByGroup() – это 438 строка

Находим фрагмент, начинающийся на 505 строке

PHP код:
while ( $myrow = @$db->fetch_array($result) ) {
           if ( !
in_array($myrow['bid'], $added) ) {
               if (!
$asobject) {
                     
$ret[] = $myrow['bid'];
                     } else {
                      
$ret[] = new XoopsBlock($myrow);
                     }
         
array_push($added$myrow['bid']);
         }
 } 
И заменяем его на:

PHP код:
while ($myrow = @$db->fetch_array($result)) {
       if (
$myrow['show_mid'] != '0') {
           if (!empty(
$show_mid)) {
             if (!
in_array($show_midexplode('|'$myrow['show_mid']))) continue;
           } else {
             if (!
in_array('-1'explode('|'$myrow['show_mid']))) continue;
           }
       } 
         if (!
in_array($myrow['bid'], $added)) {
           if (!
$asobject) {
               
$ret[] = $myrow['bid'];
           } else {
               
$ret[] = new XoopsBlock($myrow);
           } 
           
array_push($added$myrow['bid']);
       } 
     } 
Таким образом, мы отсекаем блоки, которые не должны выводится в рамках данного модуля.

В прикрепленном файле вы найдете xoopsblock.php с вышеописанным изменением.

По идее из метода showBlock() аналогичною проверку можно вырезать.
Вложения
Тип файла: zip xoopsblock.zip (4.1 Кбайт, 31 просмотров)

Последний раз редактировалось LARK, 04-23-2005 в 10:42


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

Аватар для Zormax

| Цитировать Старый #2 04-23-2005, 11:16

Заодно может посмотришь, почему динамически титлы у блоков не меняются?


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

Аватар для LARK

| Цитировать Старый #3 04-24-2005, 09:12

К слову, статистика по запросам к DB, после установки данного хака на этом сайте (в режиме админа, понятно, что для незарегистрированных пользователей, мало что изменилось)

Главная страница было: 35/стало: 34
Архив файлов было: 35/стало: 25
Статьи было: 35/стало: 26
Партнеры было: 33/стало: 23

Это просто все к тому, что с этой ошибкой, если, допустим, на сайте (на главной странице) стоит какой-нибудь блок "мутант" вроде WhatNews с его лавинообразными запросами, то эти запросики будут отображаться и на всех других страницах, на которых этот блок не показывается.

Последний раз редактировалось LARK, 04-24-2005 в 09:46


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

Аватар для Zormax

| Цитировать Старый #4 04-24-2005, 17:48

Не одного запроса не увидим уменьшенного, все как было...
С чем связано?


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

Аватар для LARK

| Цитировать Старый #5 04-24-2005, 18:23

Цитата:
Zormax:
Не одного запроса не увидим уменьшенного, все как было...
В смысле? Где не увидим? Ведь все зависит от каждого конкретного случая. И от настроек блоков - группа, модуль, тип страницы, что это за блок.

Речь же идет о том, что если мы показывали блок только в рамках одного модуля, то на страницах других модулей, где он не показывался, все равно присутствовали запросы от этого блока (если эти запросы имелись).


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

Аватар для Zormax

| Цитировать Старый #6 04-24-2005, 22:16

LARK*Я не досказал свою мысль:
Небыло уменьшений на главной, на странице Файлы реальное уменьшение до 8 запросов.
На остальных не смотрел...


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
clog вне форума clog
Зам старшего участника

Аватар для clog

| Цитировать Старый #7 04-25-2005, 18:41

В довнлоадс было 46 стало 28
В новостях было 51 стало 31
На форуме было 68 стало 54
В ссылках было 51 стало 25
В статьях было 43 стало 17
В FAQе было 43 стало 16
Просто на "самописанноый" странице без правого блока было 18 стало 14
Просто на "самописанноый" странице с правым блоком было 46 стало 19



Хух....+)

И еще раз!РЕСПЕКТ!!!

СУПЕР!

  Сообщения: 470 c 01.10.2004 | Репутация: 3
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #8 04-25-2005, 19:40

clog Это в режиме администратора, или незарегистрированного пользователя?


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

Аватар для clog

| Цитировать Старый #9 04-25-2005, 21:59

В незарегестрированном.

Но скажу что и под админом тоже много запросов снизилось.

  Сообщения: 470 c 01.10.2004 | Репутация: 3
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #10 04-29-2005, 22:57

В прикрепленном файле исправление бага, из за которого сбрасывались галки доступа к блокам в настройках групп. Подробнее тут
Вложения
Тип файла: zip xoopsblock.zip (4.2 Кбайт, 38 просмотров)

Последний раз редактировалось LARK, 04-30-2005 в 10:23
Причина: Новый архив


Правила нашего Форума :: О клубе пользователей 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: 93.53 Kb. compressed to 86.03 Kb. by saving 7.50 Kb. (8.02%)
Page generated in 0.08300 seconds with 13 queries