Advanced search  

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Pages: [1]   Go Down

Author Topic: уменьшить запрос на показ последних фотоk  (Read 6522 times)

0 Members and 1 Guest are viewing this topic.

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

Смысле в следующем.
Главная страница галереи загружается моментально, но стоит щелкнуть по одной из фотографий (которые отоборажаются как lastup) то процесс показа этой самой фотографии занимает около 10 секунд. Причину нашел.
Дело в том, что при выборе фотографии он строит и обрабатывает порядок всех (свыше 16000) фотографий моей галереи.
Каким кодом можно попроваить это? ну к примеру последнии 500 фотографий
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

Нужно найти в коде где строятся запросы к БД и указать LIMIT
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

Нужно найти в коде где строятся запросы к БД и указать LIMIT

вот оригинал
Code: [Select]
case 'lastup': // Latest (most recent) uploads

        if ($cat && $CURRENT_CAT_NAME) {
            $album_name = cpg_fetch_icon('last_uploads', 2) . $lang_meta_album_names['lastup'] . ' - ' . $CURRENT_CAT_NAME;
        } else {
            $album_name = cpg_fetch_icon('last_uploads', 2) . $lang_meta_album_names['lastup'];
        }

        $query = "SELECT COUNT(*)
                FROM {$CONFIG['TABLE_PICTURES']} AS r
                INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON a.aid = r.aid
                $RESTRICTEDWHERE
                AND approved = 'YES'";

        $result = cpg_db_query($query);

        list($count) = mysql_fetch_row($result);
        mysql_free_result($result);

        list($ASC, $DESC, $limit, $flipped) = get_pic_data_ordering($count, $limit1, $limit2);

        $select_columns = implode(', ', $select_column_list);

        $query = "SELECT $select_columns
                FROM {$CONFIG['TABLE_PICTURES']} AS r
                INNER JOIN {$CONFIG['TABLE_ALBUMS']} AS a ON a.aid = r.aid
                $RESTRICTEDWHERE
                AND approved = 'YES'
                ORDER BY r.pid $DESC $limit";

        $result = cpg_db_query($query);
        $rowset = cpg_db_fetch_rowset($result);
        mysql_free_result($result);

        if ($flipped) {
            $rowset = array_reverse($rowset);
        }
       
        if ($set_caption) {
            build_caption($rowset, array('ctime'));
        }

        $rowset = CPGPluginAPI::filter('thumb_caption_lastup', $rowset);

        return $rowset;
        break;
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

а что находится в $RESTRICTEDWHERE?
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

а что находится в $RESTRICTEDWHERE?
если я заменю на
Code: [Select]
ORDER BY r.pid $DESC limit 0,100";то он отображает посление 100 фотографий, не учитывая что мне нужно всего 2 ряда (lastup,2)
К тому же, при щелчке по любой из фотографий(последние добавления), он мне показывает полноразмерное изображение первой из последних добавленных
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
нет. эта переменная пустая. выше я привел оригинальный код из funtions.inc.php
на данный момент я свою проблему не решил. все в оригинале. подскажите куда копать? где установить лимит на выборку последних, к примеру, 300 фотографий?
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
прошу прощения, но что в нем нужно изменить? :)
Logged

Alex Revo

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Posts: 637
  • Инженер человеческих душ
    • Фото Ростова-на-Дону

Я не знаю, нужно смотреть код и распутывать клубок )
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

Я не знаю, нужно смотреть код и распутывать клубок )
колдовство над кодом никаких результатов мне не дало. помогите?
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

чего только не пытался изменить. все хожу "вокруг да около", приведите пожалуйста готовый кусочек кода
Logged

6yktonox

  • Coppermine newbie
  • Offline Offline
  • Posts: 8

неужели ни у кого не было подобной проблемы?
Logged

Plazik

  • Coppermine regular visitor
  • **
  • Offline Offline
  • Gender: Male
  • Posts: 99
  • Rihanna fan
    • Фотографии Рианны - Rihanna Photos

неужели ни у кого не было подобной проблемы?
Отключи показ последних фоток на главной и сделай вместо этого показ последних измененных альбомов.
Logged

Makc666

  • Moderator
  • Coppermine addict
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 1614
  • Русский (ISO-8859-1) - Russian - Русский (Windows)
    • Makc's home page

В том коде, который Вы приводили, над строкой:
Code: [Select]
$query = "SELECT COUNT(*)добавьте строку:
Code: [Select]
print "---->>> [$RESTRICTEDWHERE] <<<----<br />";
И покажите, что Вам будет выводится на той странице, где происходит долгий вывод.
Logged
Pages: [1]   Go Up
 

Page created in 0.022 seconds with 21 queries.