Название фото в фотоальбоме

InstantCMS 2.X
#1 22 января 2019 в 23:04
Нашел несколько тем на форуме близких, но они не про то немного.
Смотрите, сейчас при загрузке фоток им автоматически присваиваются названия вида "a496a372".
Это уже как бы странное решение.
Если вручную убирать эти заголовки — то фотки будут иметь названия вида "Фото 34".
Тоже, прямо скажем, не фонтан.
Получается тайтлы страниц с отдельными фото имеют вот такой вид:
a496a372 — Супермегасайт
Фото 34 — Супермегасайт

Заголовки h1 тоже выглядят посредственно.

Как бы настроить вот такую фичу:
Фотки загружаются без предустановленных названий (и их не надо править). Просто загружаем 20 фоток, создается альбом. Нам не надо вообще как-то участвовать в именовании каждой фотки.
А название (все заголовки, например заголовок h1 в левом верхнем углу фотки при ее просмотре, а также тайтл) формирется следующим образом:
Название альбома — Фото №1

Название альбома всегда можно написать, это не затруднительно. А фотки мы получим с нормальными, правильными заголовками/тайтлами.

Искал в настройках, не нашел как можно это сделать. "Шаблон генерации URL фотографии" в настройках есть, вот еще бы добавить title и собственно заголовок — было бы идеально.
#2 15 февраля 2019 в 10:29
вот это нужная тема
#3 15 февраля 2019 в 13:11
Откройте файл system/controllers/photos/actions/upload.php
И в самом конце перед строчкой

  1. return $this->cms_template->renderJSON($result);
добавьте

  1. $result['name'] = $album['title'] . " - Фото №{$result['id']}.jpg";
именно с .jpg на конце, иначе не сработает. Подстановка имени в поле идет на основе имени файла, а оно с расширением должно быть.

Будет так



Хуков в месте загрузки нет, подцепиться негде, поэтому только так, с изменением системного файла :(
#4 15 февраля 2019 в 16:27

добавьте

Zau4man
Может добавите предложение на гит?
Имхо, существенно.
Спасибо!
#5 15 февраля 2019 в 16:34

именно с .jpg

Zau4man
А если .png загрузится в общей массе? Что делать?
#6 15 февраля 2019 в 16:51
Loadырь, а там без разницы.
Мы этой строкой подменяем result['name'], который возвращается в результате загрузки фото и содержит имя файла.
Если имя возвращать без .jpg, то 191 строчка файла templates/default/js/photos.js не найдет в ней имя и оставит пустое значение.
Ну или править еще и этот файл, заменив

  1.  
  2. if(result.name){
  3. var pos, p = result.name.indexOf('.');
  4. while (pos != -1) { pos = result.name.indexOf('.',pos+1); if(pos != -1){ p = pos; } }
  5. $('.title input', preview_block).val(result.name.substring(0, p));
  6. }
  7.  
на
  1.  
  2. if(result.name){
  3. $('.title input', preview_block).val(result.name);
  4. }
  5.  
#7 15 февраля 2019 в 16:58

Может добавите предложение на гит?

Олег Васильевич я
Не, такое решение не всех устроит.
Возможно, стоит в настройки компонента Фотоальбомы рядом с шаблоном url фото добавить шаблон title фото.



И дать там доступ к переменным {id}, {album_title}, чтобы можно было сконструировать там свое название. Может быть, даже дать там доступ к никнейму, дате...

Обсуждаем. А потом можно и сформулировать хотелку на гит…
#8 15 февраля 2019 в 18:26
Zau4man, спасибо за решение, будет полезно кому-нибудь!
Сам я посидел, поковырял наконец компонент Альбомы серьезно, в очередной раз убедился, что для 95% задач он не нужен.
Проще делать через новый тип контента и поле Набор изображений. Проще, лучше, удобней, юзабельней. Для пользователей — вообще ракетно: выделил фотки, отправил, всё. Всё нормально размечено, нормально всплывает.
В Альбомах же столько нюансов, что реальная необходимость именно в таком компоненте, без переделок, возникнет наверное у пары процентов.
Зачем отдельные страницы для фотки? Непонятно. Такое можно использовать только если делаешь фотохостинг. Ну или сильно нишевый сайт.
Стоит только чуть изменить стандартный Нормальный формат фоток при загрузке — и все, приплыли, обложки альбомов жестко прибиты к 170 по ширине и где это меняется — фиг найдешь.

зы. Кстати, я потом проверил: если так делать имена фоток, то в хлебных крошках получится жестко, повторяться будет название альбома.
#9 15 февраля 2019 в 19:08

Проще делать через новый тип контента и поле Набор изображений.

alkokrolik
Пропадут функции: наборы, просмотры, рейтинг, доступ (только друзьям и тд)
Можно будет ограничить количество фото
Экономить место на хостинге можно не сохраняя Оригинал изображений (ужимается ~ в 10 раз)

В "Фотоальбомы" можно было бы сделать отключаемыми Наборы: Все изображения, Любая ориентация, Размер
Отключаемым окно "Скачать", размещение "Рейтинг", "Количество просмотров" и тд лучше под Фото .
Ограничить количество фото в Альбоме не помешало бы.

Чем больше страниц на сайте — тем лучше для поисковиков, но и все фото на одной странице не плохо для юзабельности…
#10 16 февраля 2019 в 18:07
Может кто-нибудь может грамотно поковыряться в \ШАБЛОН\controllers\photos\view.tpl.php чтобы убрать "Скачать", Детали и под Фото оставить лайки, автора, дату? Лишнее в "Наборы", в Альбомах можно убрать templates/default/controllers/photos/filter-panel.tpl.php
#11 25 февраля 2019 в 20:23

чтобы убрать "Скачать"

@elv

  1.  
  2. <?php if (!empty($downloads)){ ?>
  3. <!-- <div class="download_menu">
  4. <span id="download-button" class="download-button"><i class="photo_icon icon_download"></i> <?php echo LANG_DOWNLOAD; ?></span>
  5. <div id="bubble">
  6. <table>
  7. <tbody>
  8. <?php foreach ($downloads as $download) { ?>
  9. <tr class="<?php echo $download['preset']; ?>_download_preset <?php echo (!$download['link'] ? 'disable_download' : ''); ?>">
  10. <td>
  11. <label><input <?php echo ($download['select'] ? 'checked=""' : ''); ?> type="radio" name="download" <?php echo (!$download['link'] ? 'disabled=""' : ''); ?> value="<?php echo $download['link']; ?>"> <?php echo $download['name']; ?> </label>
  12. </td>
  13. <td>
  14. <?php echo $download['size']; ?>
  15. </td>
  16. </tr>
  17. <?php } ?>
  18. </tbody>
  19. </table>
  20. <a class="download-button process_download" href=""><?php echo LANG_DOWNLOAD; ?></a>
  21. </div>
  22. </div> -->
  23. <?php } ?>
  24.  
#12 4 февраля 2020 в 18:01

Не, такое решение не всех устроит.
Возможно, стоит в настройки компонента Фотоальбомы рядом с шаблоном url фото добавить шаблон title фото.

Zau4man
Отличная была бы опция/

Сделал все по вашему совету
  1. $result['name'] = $album['title'] . " - Фото №{$result['id']}.jpg";
Решение подходит. Спасибо.
#13 2 апреля 2023 в 15:09

Случайно не знаете как сделать что бы было не просто фото № ***, а название альбома — фото № *** Перепробовал кучу вариантов. Всё не работает

#14 2 апреля 2023 в 16:54

А где что вырезать, чтоб убрать  при просмотре альбома: по дате добавления, по возрастанию, любая ориентация, размер? Ну и под самим альбомом голосования тоже...

Изображение

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.