Смысле в следующем.
Главная страница галереи загружается моментально, но стоит щелкнуть по одной из фотографий (которые отоборажаются как lastup) то процесс показа этой самой фотографии занимает около 10 секунд. Причину нашел.
Дело в том, что при выборе фотографии он строит и обрабатывает порядок всех (свыше 16000) фотографий моей галереи.
Каким кодом можно попроваить это? ну к примеру последнии 500 фотографий
Нужно найти в коде где строятся запросы к БД и указать LIMIT
Quote from: Alex Revo on July 05, 2010, 09:45:35 AM
Нужно найти в коде где строятся запросы к БД и указать 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?
Quote from: Alex Revo on July 05, 2010, 11:40:24 AM
а что находится в $RESTRICTEDWHERE?
если я заменю на
ORDER BY r.pid $DESC limit 0,100";
то он отображает посление 100 фотографий, не учитывая что мне нужно всего 2 ряда (lastup,2)
К тому же, при щелчке по любой из фотографий(последние добавления), он мне показывает полноразмерное изображение первой из последних добавленных
я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
Quote from: Alex Revo on July 05, 2010, 11:57:33 AM
я потому и спросил что в этой переменной, может там как раз были какие-то условия выборки
нет. эта переменная пустая. выше я привел оригинальный код из funtions.inc.php
на данный момент я свою проблему не решил. все в оригинале. подскажите куда копать? где установить лимит на выборку последних, к примеру, 300 фотографий?
Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
Quote from: Alex Revo on July 05, 2010, 12:31:01 PM
Вы правильно привели код изменения, нужно смотреть там и дальше в CPGPluginAPI::filter('thumb_caption_lastup', $rowset)
прошу прощения, но что в нем нужно изменить? :)
Я не знаю, нужно смотреть код и распутывать клубок )
Quote from: Alex Revo on July 05, 2010, 02:40:57 PM
Я не знаю, нужно смотреть код и распутывать клубок )
колдовство над кодом никаких результатов мне не дало. помогите?
чего только не пытался изменить. все хожу "вокруг да около", приведите пожалуйста готовый кусочек кода
неужели ни у кого не было подобной проблемы?
Quote from: 6yktonox on July 30, 2010, 04:14:52 PM
неужели ни у кого не было подобной проблемы?
Отключи показ последних фоток на главной и сделай вместо этого показ последних измененных альбомов.
В том коде, который Вы приводили, над строкой:
$query = "SELECT COUNT(*)
добавьте строку:
print "---->>> [$RESTRICTEDWHERE] <<<----<br />";
И покажите, что Вам будет выводится на той странице, где происходит долгий вывод.