Добрый день! Подскажите как в данном фотоальбоме http://fastfood2.oc-dev.ru/gallery/ можно отсортировать фотографии по дате добавления? Спасибо!
ну если в модули нет данного функционала, - то только самому дописать. Сделать на пхп(по образцу категорий в ОС) или js написать и динамикой сделать
Я так думаю надо изменить запрос в модели. Скорее всего там по порядку сортировки, нужно поставить по дате добавления. Чтобы сказать точнее, надо смотреть код.
Если данные в формате json сохраняются, тогда только заносить дату создания каждой картинки в массив и потом уже сортировать. Тип того
Код: <?php class ModelCatalogGallery extends Model { public function getGallerys() { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "gallery gi WHERE gi.status = 1"); return $query->rows; } public function getGallery($gallery_id) { //$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "gallery_image gi LEFT JOIN " . DB_PREFIX . "gallery_image_description gid ON (gi.gallery_image_id = gid.gallery_image_id) AND gid.language_id = '" . (int)$this->config->get('config_language_id') . "'"); $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "gallery_image gi LEFT JOIN " . DB_PREFIX . "gallery_image_description gid ON (gi.gallery_image_id = gid.gallery_image_id) WHERE gi.gallery_id = '" . (int)$gallery_id . "' AND gid.language_id = '" . (int)$this->config->get('config_language_id') . "'"); return $query->rows; } } ?> Вот код из модели.
Еще б структуру таблиц DB_PREFIX . gallery и DB_PREFIX . gallery_image увидеть. Если в них есть поле типа DATE_ADDED, то к запросу нужно дописать ORDER BY DATE_ADDED. Если такого поля нет, значит модуль не фиксирует дату добавления. В таком случае остается обратиться к файлу изображения, выяснить его дату создания и создать массив с этим датами, и уж потом его сортировать. Что-то типа того...
Вот что в структуре этих таблиц status name gallery_id gallery_image_id gallery_id name link image Получается простого варианта нет, нужно искать другой выход?
Да уж... Придется повыкаблучиваться... Полагаю, в контроллере ищете место где вызывается функция getGallery($gallery_id). По идее она должна вернуть массив картинок, допустим $gallery_images. Далее, что в таком роде: PHP: $gallery_sorted = array();foreach ($gallery_images as $gallery_image) { if (filemtime($gallery_image['image'])) { $gallery_sorted[filemtime($gallery_image['image'])] = $gallery_image; }}ksort($gallery_sorted); В результате получаете сортированный массив $gallery_sorted. P.S. Местным Гуру, просьба камнями не кидаться - я не волшебник, я только учусь. Если есть ошибки - исправьте.
Самое простое, на мой взгляд. Это в цыкле галереи добавить счетчик (какой-то $m), а во вьюхе в блок каждой галереи выводить в id-шник этот $m и дальше js-ом по кнопке отсортировывать (возростание/убывания масива с $m-id-шников). И не надо с датами и тд запариватся. Ну а если для клиента, то тогда добавлять поле календарь в админке + таблицу дат в бд ну и допиливать модель и контролер)) - тогда уж легче/быстрее другой модуль взять