Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Последние сообщения
Ответить
1 2

Есть 2 вопроса по полям загрузки изображений к новости

RadCor

  • Заглянувший
  • Юзер
  • 14
  • Репутация:1 
  • Предупреждения: 0 
  • Регистрация:
    31 Мая 2014
#1
Слушай, ещё 2 вопроса есть.

1) как на странице редактирования новости, получить полную ссылку на загруженное изображение?
Я думал так {{ context.atom.attach1 }} но так не проканало)


2) В общем первое поле для загрузки изображения я использую для обложки новости, а все остальные для скриншотов к новости.
Обложки есть у каждой новости, не у всех.
По этому я решил разделить эти поля.
По этому на странице добавление в одно место я вставил такой код
1
<input class="attachField" type="file" id="attach1" name="attach1" onchange="getFile(1)">
А ниже, где скриншоты при надобности загружать такой код.

1
2
3
<input class="attachField_s" type="file" id="attach2" name="attach2" onchange="getFile(2)"><br>
<input class="attachField_s" type="file" id="attach3" name="attach3" onchange="getFile(3)"><br>
<input class="attachField_s" type="file" id="attach4" name="attach4" onchange="getFile(4)"><br>
Всё хорошо. Но при верстке страницы РЕДАКТИРОВАНИЯ новости, я запутался с этими полями.
Там есть цикл, который выводит все поля в которые были загружены изображения.
А мне этот цикл нужно как бы на два разных разделить.

Что бы в одном цикле показывалось только поле с первой картинкой (обложкой новости которая есть у каждой новости)
А во втором цикле показывались все остальные изображения, все кроме первого.

Вот код стандартный


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{% if checkAccess([module,'upload_files']) and context.locked_attaches == 0 %}
          <li>
            <span class="siu_title"><strong>Загрузить изображения:</strong></span>
            <span class="siu_data">
                       <div id="attachments">
                    {% if context.attaches_list %}
                        {% for at in context.attaches_list %}
                        <div>
                            <input class="attachField" type="file" id="attach{{ at.id }}" 
name="attach{{ at.id }}" onchange="getFile({{ at.id }})">
                            <span id="attachMeta{{ at.id }}">
                                {% if at.is_img %}
                                    <input type="text" readonly="" value="{IMAGE{{ at.id }}}" 
title="Вставьте этот код в любое место сообщения" size="8" 
style="font-family:monospace;color:#FF8E00;">
                                {% endif %}
                            </span>
                            <label style="vertical-align:top"><input type="checkbox" 
name="unlink{{ at.id }}" value="1">Удалить ({{ at.name 
}})?</label>
                        </div>
                        {% endfor %}
                    {% else %}
                    <div>
                        <input class="attachField" type="file" id="attach1" name="attach1" 
onchange="getFile(1)"><span id="attachMeta1"></span>
                    </div>
                    {% endif %}
                    </div>
                    <input type="button" name="addInput" value="Прикрепить еще файл" 
onClick="addFileField('attachments');" />
          </span>
           </li>
           {% endif %}

Вроде бы вопрос описал понятно. Для наглядности, что бы понятно было как я разделил поля изображений, прикладываю скриншот страницы добавления новости.



Повторюсь, суть второго вопроса в том, как разделить поля на странице редактирования.
Что бы один цикл на странице редактирования выводил только первое поле.
А второй цикл выводил все остальные поля, все кроме первого, которое уже выведено первым циклом.

Сашка_из_Шебекино

  • Заклинатель Атома
  • Пользователь
  • 1803
  • Репутация:87 
  • Предупреждения: 0 
  • Регистрация:
    27 Мар 2011
#2
1. wiki/Изображения_к_материалу
{{ entity.atom.img_url_N }}

Mishka

  • Свой человек
  • Юзер
  • 90
  • Репутация:9 
  • Предупреждения: 0 
  • Регистрация:
    24 Дек 2011
#3
Сашка_из_Шебекино пишет:
{{ entity.atom.img_url_N }}
Саш, ему нужно в странице редактирования материала, данная метка там не работает

Сашка_из_Шебекино

  • Заклинатель Атома
  • Пользователь
  • 1803
  • Репутация:87 
  • Предупреждения: 0 
  • Регистрация:
    27 Мар 2011
#4
Mishka, а, понял. Тогда пока что нет такой функции

RadCor

  • Заглянувший
  • Юзер
  • 14
  • Репутация:1 
  • Предупреждения: 0 
  • Регистрация:
    31 Мая 2014
#5
Сашка_из_Шебекино, да можно сделать. Смотри.
Код стандартный, который на странице редактирования стоят я кинул.

Делаем так, ставим этот код где нужно вывести поле с одним изображением, с самым первым.
И переделываем условие с циклом
1
2
{% if context.attaches_list %}                      
  {% for at in context.attaches_list %}
Тут вместо attaches_list  ставим что-то типа atom.img_url_N

Что бы выводилось только поле для первого изображения.

Дальше, где нужно вывести все остальные поля для картинок, просто копируем тот же код что и был (ну стандартный код)
И там в условии пишем, что бы выводило список полей все которые  больше единицы => 1. Получится что цикл будет все поля для картинок выводить кроме первого. А первое нам не нужно, так как уже выведено пред идущим кодом)


Разве так нельзя сделать? Просто я PHP нуб, да и всех переменных которые можно испольховать для условий на Atom ещё не знаю

boriska

  • Атом-мозг
  • Пользователь
  • 846
  • Репутация:65 
  • Предупреждения: 0 
  • Регистрация:
    29 Янв 2013
#6
RadCor, подожди немного, сейчас добавим нужные метки. Предлагаю сделать это в такой форме:

Тогда вот так можно будет вывести все изображения:

1
2
3
4
5
6
7
8
{% if context.attaches_list %}
 {% for at in context.attaches_list %}
  {% if at.is_img %}
    <img src="{{ at.url }}" title="Оригинальное изображение"/>
    <img src="{{ at.url_small }}" title="Миниатюра"/>
  {% endif %}
 {% endfor %}
{% endif %}


Ну а так, к примеру, только первое изображение.

1
2
3
4
5
6
7
8
9
10
{% if context.attaches_list %}
 {% var n = 0 %}
 {% for at in context.attaches_list %}
  {% if at.is_img and n < 1 %}
    <img src="{{ at.url }}" title="Оригинальное изображение"/>
    <img src="{{ at.url_small }}" title="Миниатюра"/>
    {% var n = 1 %}
  {% endif %}
 {% endfor %}
{% endif %}

Можно было бы, конечно, добавить такую же систему, как и на странице материала. Но нужно ли? По моему достаточно добавить в вышеизложенный массив поля для получения ссылок на миниатюру и на полное изображение.(если файл не изображение, эти ссылки будут совпадать)

И вообще) Присоединяйся в нашу jabber конференцию. [email protected]

Добавлено2014.06.03 12-58

Готово.

Соразработчик Atom-M CMS

RadCor

  • Заглянувший
  • Юзер
  • 14
  • Репутация:1 
  • Предупреждения: 0 
  • Регистрация:
    31 Мая 2014
#7
boriska, что-то не работает у меня это.
Первый код, который выводит ссылки на все изображения, не выводит ссылки.
Второй код когда вставляю (который должен к примеру первую картинку выводить) тогда вообще сайт не загружается, как буд-то бы условие не закрыто или ещё что-то. Хотя всё вроде закрыто, всё норм.

Просто ты писал, что создаешь дополнительные метки. Получается, что бы у меня этот код заработал, мн нужно какой-то файл в движке обновить, в котором будут новые метки?

И по этой же теме, это мы сейчас пытаемся решить первый вопрос "как на странице редактирования новости получить ссылки на загруженные картинки".
А второй вопрос остаётся открытым.

2) как разделить вывод полей для загрузки/обновления/удаления картинок на странице редактирования.


Вот стандартный код, который на странице редактирования новости выводит все поля в которые были загружены изображения



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{% if checkAccess([module,'upload_files']) and context.locked_attaches == 0 %}
          <li>
            <span class="siu_title"><strong>Загрузить изображения:</strong></span>
            <span class="siu_data">
                       <div id="attachments">
                    {% if context.attaches_list %}
                        {% for at in context.attaches_list %}
                        <div>
                            <input class="attachField" type="file" id="attach{{ at.id }}" name="attach{{ at.id }}" onchange="getFile({{ at.id }})">
                            <span id="attachMeta{{ at.id }}">
                                {% if at.is_img %}
                                    <input type="text" readonly="" value="{IMAGE{{ at.id }}}" title="Вставьте этот код в любое место сообщения" size="8" style="font-family:monospace;color:#FF8E00;">
                                {% endif %}
                            </span>
                            <label style="vertical-align:top"><input type="checkbox" name="unlink{{ at.id }}" value="1">Удалить ({{ at.name }})?</label>
                        </div>
                        {% endfor %}
                    {% else %}
                    <div>
                        <input class="attachField" type="file" id="attach1" name="attach1" onchange="getFile(1)"><span id="attachMeta1"></span>
                    </div>
                    {% endif %}
                    </div>
                    <input type="button" name="addInput" value="Прикрепить еще файл" onClick="addFileField('attachments');" />
          </span>
           </li>
 {% endif %}

Я этот код на странице редактирования дублирую. Получается у меня он как бы 2 раза на странице.
Но мне его нужно править. Что бы первый код который первый раз встречается на странице, выводил не все поля и чекбоксы для удаления картинки а только первое поле.
А второй код, который идёт ниже, что бы выводил все остальные поля в которых есть картинки и чекбоксы для удаления этих картинок. Что бы все выводил кроме первого.


То есть, сейчас этот код выводит в двух местах на странице все поля с загруженными картинками. А мне нужно что бы один выводил только первое поле, а второй выводил все остальные кроме первого.
Прикладываю скрин страницы редактирования, что бы было наглядно понятно что нужно)





По поводу jabber.ru
Я честно говоря в первые слышу об этом сервисе, и не совсем понимаю для чего он и как им пользоваться)
Я зарегился там, но как присоединится к вашей конференции не могу понять) По ходу прогу нужно какую-то скачать?


И там, через в jabber можно сообщать о найденных багах движка? А то я нашёл уже несколько штук, хотелось бы в новых версиях что бы их исправили)

boriska

  • Атом-мозг
  • Пользователь
  • 846
  • Репутация:65 
  • Предупреждения: 0 
  • Регистрация:
    29 Янв 2013
#8
RadCor пишет:
Просто ты писал, что создаешь дополнительные метки. Получается, что бы у меня этот код заработал, мн нужно какой-то файл в движке обновить, в котором будут новые метки?

Следи за нашим репозиторием. Там наглядно видно что, зачем и где мы меняем. Там же можно сообщить о багах.

RadCor пишет:
По поводу jabber.ru
Я честно говоря в первые слышу об этом сервисе, и не совсем понимаю для чего он и как им пользоваться)
Я зарегился там, но как присоединится к вашей конференции не могу понять) По ходу прогу нужно какую-то скачать?


И там, через в jabber можно сообщать о найденных багах движка? А то я нашёл уже несколько штук, хотелось бы в новых версиях что бы их исправили)

Просто мы там все вечно тусим) И, конечно, нас там можно доставать всяческими багами...

upd:
Jabber это аналог аськи) Просто есть сервера. К ним через специальную программу подключаются. И вуаля) Забалтывай всех кого хочешь.

RadCor пишет:
2) как разделить вывод полей для загрузки/обновления/удаления картинок на странице редактирования.

Подожди некоторое время, я тебе напишу код. Там все просто. Есть такой фильтр shift называется. Он вытаскивает первый элемент в переменную, удаляя его из исходного массива. Таким образом можно вытащить из массива context.attaсhes_list первое прикрепление, вывести его отдельно. А потом, как ни в чем нибывало, стандартным образом показать на странице остальные прикрепления. Но тут может подвести клиентская часть, которая добавляет формы добавления файла, кроме тех, что уже есть. В прочем, может я зря волнуюсь, но проверить надо.

Соразработчик Atom-M CMS

RadCor

  • Заглянувший
  • Юзер
  • 14
  • Репутация:1 
  • Предупреждения: 0 
  • Регистрация:
    31 Мая 2014
#9
boriska пишет:
Подожди некоторое время, я тебе напишу код. Там все просто. Есть такой фильтр shift называется. Он вытаскивает первый элемент в переменную, удаляя его из исходного массива. Таким образом можно вытащить из массива context.attaсhes_list первое прикрепление, вывести его
отдельно. А потом, как ни в чем нибывало, стандартным образом показать на странице остальные прикрепления. Но тут может подвести клиентская часть, которая добавляет формы добавления файла, кроме тех, что уже есть. В прочем, может я зря волнуюсь, но проверить надо.
Всё понял. Ок.

boriska пишет:
Следи за нашим репозиторием. Там наглядно видно что, зачем и где мы меняем. Там же можно сообщить о багах.
Буду ждать, недеюсь не забудешь.

Добавлено2014.06.03 19-15

boriska пишет:
подожди немного, сейчас добавим нужные метки.
этот код, на вывод всех изображений работает отлично

1
2
3
4
5
6
7
{% if context.attaches_list %} 
{% for at in context.attaches_list %}
  {% if at.is_img %}
    <img src="{{ at.url }}" title="Оригинальное изображение"/>  
  {% endif %}
 {% endfor %}
{% endif %}
А вот этот, для вывода одного, первого изображения не работает. (

1
2
3
4
5
6
7
8
{% if context.attaches_list %} {% var n = 0 %}
 {% for at in context.attaches_list %}
  {% if at.is_img and n < 1 %}   
 <img src="{{ at.url }}" title="Оригинальное изображение"/>   
    {% var n = 1 %}
  {% endif %}
 {% endfor %}
{% endif %}

boriska

  • Атом-мозг
  • Пользователь
  • 846
  • Репутация:65 
  • Предупреждения: 0 
  • Регистрация:
    29 Янв 2013
#10
Ну попробуй вот так. Хотя недавно это обновляли...

1
2
3
4
5
6
7
8
9
{% if context.attaches_list %} 
{% var n = 0 %}
 {% for at in context.attaches_list %}
  {% if at.is_img and n <= 0 %}
      <img src="{{ at.url }}" title="Оригинальное изображение"/>       
      {% var n = 1 %}
  {% endif %}
 {% endfor %}
{% endif %}

Отредактировано автором 3 Июн 2014
Соразработчик Atom-M CMS
1 2
Сейчас online: 185. Зарегистрированных: 1. Гостей: 184.