Перейти к содержимому


Фотография
* * * - - 2 Голосов

Как дописать свои значения в поля при сохранении подачи?


Лучший Ответ SmetDenis , 07 December 2013 - 17:57

Я написал php-скрипт который выбирает все item'ы, и анализируя шаги с пом json-выборок (классная вещь кстати!) проставляет заглушки.  
 

Я бы не прочь посмотреть, а может даже в виде рецепта :)

 

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

 

Можно воспользоваться одним из событий

\media\zoo\applications\jbuniversal\framework\events\jbevent.item.php (например saved)

 

Последнее сообщение будет полезно

http://forum.jbzoo.c...-jbzoo/?p=29090

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 9

#1 Akela

Akela

Отправлено 21 November 2013 - 00:27

Есть такая подача, где пользователи могут грузить фотографии к описанию, а могут не грузить

вставка фото заглушки.jpg

 

Как можно сделать, что если описание заполнено, а фото нет, то в процессе сохранения дописывался адрес заглушки изображения?


  • 0

#2 .polega.

.polega.

Отправлено 21 November 2013 - 07:10

так вроде есть возможность указать фото по умолчанию, если нет ничего

Без имени-1.jpg


  • 0

#3 Akela

Akela

Отправлено 21 November 2013 - 08:08

Тут задача анализировать условие - если есть соответствующее описание, то грузить умолчание, а если нет описания, то ничего не грузить.

Это в коде надо где-то ковырять


Сообщение отредактировал Akela: 21 November 2013 - 08:08

  • 0

#4 Cheren-dow

Cheren-dow

Отправлено 21 November 2013 - 09:15

Я так думаю что без JS не обойтись. Проверяйте с помощью JS пустоту инпута если он пустой подставляйте что.....


  • 0
Изображение
 

#5 Akela

Akela

Отправлено 21 November 2013 - 10:41

Это надо делать в момент сохранения данных. В каком месте (файле) эту проверку делать?


  • 0

#6 Cheren-dow

Cheren-dow

Отправлено 21 November 2013 - 10:53

В шаблоне формы подачи JBZoo - тот который вы используете. Или же прям в шаблоне сайта. Подставляйте по умолчанию сразу нужно вам значение например. Если пользователю его нужно будет сменить он напишет свое.


Или при клике на кнопку выводите alert - мол вы не заполнили нужные поля и будут установлены значения по умолчанию и подставляете их.


  • 0
Изображение
 

#7 Akela

Akela

Отправлено 30 November 2013 - 13:51

Не получается что-то.

 

Если файл не выбран, то для этого элемента надо вписать путь к картинке по-умолчанию.

 

Image 2.jpg

 

Вот код для подчёркнутого поля

<div class="element element-jbimage first">
    <strong>1 шаг - Фото</strong>
<div class="21f786d6-dee9-4cd8-bf94-08259f5ae135 jbimage-submission">
    <div class="image-select">
        <div class="upload">
            <input type="text" name="elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][0][filename]" class="filename" readonly="readonly">
            <div class="button-container">
                <button class="button-grey search" type="button">Выбрать</button>
                <input type="file" name="elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][0][file]" class="file-select">
            </div>
        </div>

                <input type="hidden" class="image" name="elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][0][image]" value="">
        
    </div>

    <div class="image-preview hidden">
        <img src="/" alt="preview">
        <span class="image-cancel" title=""></span>
    </div>

    
</div>
</div>

Вот этим jQuery-кодом я пытаюсь присваивать картинку по умолчанию, если файл не выбран

jQuery('#item-submission').submit(function(){
            
      if (jQuery("input[name='elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][0][filename]']").val() == ""){
              
          jQuery("input[name='elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][0][filename]']").val("http://<?php echo $_SERVER['SERVER_NAME']; ?>/images/thumbnail.jpg");
          jQuery("input[name='elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][0][image]']").val("http://<?php echo $_SERVER['SERVER_NAME']; ?>/images/thumbnail.jpg");
      }
      if (jQuery("input[name='elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][1][filename]']").val() == ""){
              
          jQuery("input[name='elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][1][filename]']").val("http://<?php echo $_SERVER['SERVER_NAME']; ?>/images/thumbnail.jpg");
          jQuery("input[name='elements[21f786d6-dee9-4cd8-bf94-08259f5ae135][1][image]']").val("http://<?php echo $_SERVER['SERVER_NAME']; ?>/images/thumbnail.jpg");
      }
});

Но всё равно не сохраняется. Может быть не тем инпутам прописываю значение?

И индекс меняется по какой-то причине - иногда [0], иногда [1] в имени фигурирует

 

 

Вживую этот код здесь - http://ilgusto.dev.w...u/podat-retsept


Сообщение отредактировал Akela: 30 November 2013 - 13:52

  • 0

#8 SmetDenis

SmetDenis

Отправлено 05 December 2013 - 19:06

Akela, попробуйте упростить селекторы с помощью обрамляющего класса

 

Например так

jQuery('.21f786d6-dee9-4cd8-bf94-08259f5ae135 input[type=file]');

 

vyf_200x0.png

tlj_200x0.png

 

И индекс меняется по какой-то причине - иногда [0], иногда [1] в имени фигурирует

Это порядковый номер во множественном поле.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#9 Akela

Akela

Отправлено 06 December 2013 - 12:25

Всё равно не получается таким макаром. Да и задача уже расширилась.

 

Кроме первого шага есть ещё девять, к которым надо заглушки ставить, если пользователь описание ввёл, а фото не поставил.

 

Я написал php-скрипт который выбирает все item'ы, и анализируя шаги с пом json-выборок (классная вещь кстати!) проставляет заглушки.

 

Но его приходится запускать вручную, что не есть хорошо.

 

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

 

 


  • 0

#10 SmetDenis

SmetDenis

Отправлено 07 December 2013 - 17:57   Лучший Ответ

Я написал php-скрипт который выбирает все item'ы, и анализируя шаги с пом json-выборок (классная вещь кстати!) проставляет заглушки.  
 

Я бы не прочь посмотреть, а может даже в виде рецепта :)

 

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

 

Можно воспользоваться одним из событий

\media\zoo\applications\jbuniversal\framework\events\jbevent.item.php (например saved)

 

Последнее сообщение будет полезно

http://forum.jbzoo.c...-jbzoo/?p=29090


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!