forum.coppermine-gallery.net
Support => Русский (Russian) => Language Specific Support => cpg1.5.x Русский (Russian) => Topic started by: 6yktonox on July 05, 2010, 09:24:46 am
-
Смысле в следующем.
Главная страница галереи загружается моментально, но стоит щелкнуть по одной из фотографий (которые отоборажаются как lastup) то процесс показа этой самой фотографии занимает около 10 секунд. Причину нашел.
Дело в том, что при выборе фотографии он строит и обрабатывает порядок всех (свыше 16000) фотографий моей галереи.
Каким кодом можно попроваить это? ну к примеру последнии 500 фотографий
-
Нужно найти в коде где строятся запросы к БД и указать LIMIT
-
Нужно найти в коде где строятся запросы к БД и указать LIMIT
вот оригинал
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;
-
а что находится в $RESTRICTEDWHERE?
-
а что находится в $RESTRICTEDWHERE?
если я заменю на ORDER BY r.pid $DESC limit 0,100";
то он отображает посление 100 фотографий, не учитывая что мне нужно всего 2 ряда (lastup,2)
К тому же, при щелчке по любой из фотографий(последние добавления), он мне показывает полноразмерное изображение первой из последних добавленных
-
я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
-
я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
нет. эта переменная пустая. выше я привел оригинальный код из funtions.inc.php
на данный момент я свою проблему не решил. все в оригинале. подскажите куда копать? где установить лимит на выборку последних, к примеру, 300 фотографий?
-
Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
-
Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
прошу прощения, но что в нем нужно изменить? :)
-
Я не знаю, нужно смотреть код и распутывать клубок )
-
Я не знаю, нужно смотреть код и распутывать клубок )
колдовство над кодом никаких результатов мне не дало. помогите?
-
чего только не пытался изменить. все хожу "вокруг да около", приведите пожалуйста готовый кусочек кода
-
неужели ни у кого не было подобной проблемы?
-
неужели ни у кого не было подобной проблемы?
Отключи показ последних фоток на главной и сделай вместо этого показ последних измененных альбомов.
-
В том коде, который Вы приводили, над строкой:
$query = "SELECT COUNT(*)
добавьте строку:
print "---->>> [$RESTRICTEDWHERE] <<<----<br />";
И покажите, что Вам будет выводится на той странице, где происходит долгий вывод.