0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 1106 Просмотров
*

Risenab

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
День добрый. Имею простенький сайт анкет на Ads с тонной категорий и полей.

Было решено сразу - в категориях копаться пользователю нельзя. Это и дискомфорт, и "мало ли"... Так что немного пошаманил в файле jquerty.doubleselect.js (com_adsmanager/js/jquerty.doubleselect.js) и сделал автозаполнение категорией по умолчанию для любой анкеты. То есть, при добавлении анкеты та сразу летит в нужную мне категорию. Имеет это вот такой вид, если кому интересно.

Код
		$('<div id="'+container+'" class="doubleselect_container row-fluid row"> \
   <div class="doubleselect_notselected span5 col-md-5"> \
    <select multiple="multiple" id="'+not_selected_list+'" name="'+not_selected_list+'" size="'+size+'" /> \
   </div> \
   <div class="doubleselect_action span2 col-md-2"> \
    <div> \
    <input id="'+add_button+'" name="'+add_button+'" value="'+options.add_button+'" type="button" class="button " /> \
    <input id="'+remove_button+'" name="'+remove_button+'" value="'+options.remove_button+'" type="button" class="button " /> \
    </div> \
   </div> \
   <div class="doubleselect_selected span5 col-md-5"> \
    <select multiple="multiple" id="'+selected_list+'" name="'+selected_list+'" size="'+size+'"> <option price="0" value="1">Анкеты (по умолчанию)</option> </select> \
   </div> \
   <div class="doubleselect_hidden"> \
   </div> \
   </div>').insertAfter(this);
           
not_selected_list = "#"+not_selected_list;
selected_list = "#"+selected_list;
add_button = "#"+add_button;
remove_button = "#"+remove_button;
container = "#"+container;
$("option",this).each(function(){
$(this).appendTo($(not_selected_list));
});

+ блок вывода категорий при добавлении закомментировал, чтобы пользователю тот глаза не мозолил.

Однако, база анкет растет. Вручную уже не могу справляться с присвоением категорий на основе многочисленных полей и было решено сделать автоматизацию - автоматическое присвоение категории если поле имеет значение X (и автоматическое удаление категории, если это значение меняется или удаляется вовсе) либо создать фильтрацию по полям. И тут проблема - что к чему черт его знает. Знаний php и jquerty не хватает (сделал 1 решение, но оно не работает; решение ниже).

Код
			   <div class="doubleselect_selected span5 col-md-5"> \
    <select multiple="multiple" id="'+selected_list+'" name="'+selected_list+'" size="'+size+'"> <option price="0" value="1">Анкеты (по умолчанию)</option> <?php if (isset($content->ad_rf[0])) {echo '<option price="0" value="11">123</option>';}?> </select> \
   </div> \

Может кто готов за плату реализовать задумку или уже имеет готовое решение данной проблемы?  *DRINK*

P.S.> Путем проб и ошибок выяснил, что последний код (выше) работает, но требует безопасной интеграции в общий скрипт. А вот с интеграцией проблемы, тут то знаний уже маловато.
« Последнее редактирование: 16.01.2017, 17:19:04 от Risenab »
*

grinat

  • Захожу иногда
  • 356
  • 34 / 2
Да проще чем с jquery дело иметь, задавать правила в php. В contoller.php есть функция save, там и пропишите правила в духе:
Код: php
$mycat = 1; //категория по умолчанию
//правила присвоения
if(JRequest::getVar( 'поле')=='трынь' && JRequest::getVar( 'поле2')=='дрынь'){
      $mycat = 20;
}
//либо без фильтра Joomla(JRequest::getVar) если эти переменные в правилах не перезаписываются, так будет быстрее работать
if($_POST[ 'поле']=='трынь' && $_POST[ 'поле2']=='дрынь'){
      $mycat = 20;
}
//конец правила
//после правил во все переменные записать категорию, потому что дальше обработчик возьмет ее из массива post данных Joomla
$_POST['category'] = $mycat;
$_REQUEST['category'] = $mycat;
JRequest::setVar('category', $mycat);

Если через jquery, то код определения категория надо поместить в функцию, которая в форме в onsubmit задана(т.е. функция которая осуществляет проверку данных полей перед их передачей на сервер), там в таком же духе код написать
Код: javascript
var mycat = 1; //категория по умолчанию
//правила
if($('#поле').val()=='трынь' && $('#поле2').val()=='дрынь'){
     mycat = 20;
}
//запись id в поле категории для передачи
$("input[name='category']").val(mycat);
*

Risenab

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
За глобальную подсказку благодарю. Лучше, чем ничего.

После теста отпишусь.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как убрать названия позиции?

Автор Негодяй

Ответов: 7
Просмотров: 1294
Последний ответ 27.11.2016, 14:16:42
от grinat
Как добавить поле даты и календарь на стра

Автор Polosatyi

Ответов: 2
Просмотров: 1534
Последний ответ 12.10.2016, 06:05:57
от alexche
Как изменить вывод заголовка объявлений?

Автор max.g

Ответов: 1
Просмотров: 791
Последний ответ 23.05.2016, 13:59:04
от max.g
Core Design Captcha на AdsManager

Автор RodionMurin

Ответов: 1
Просмотров: 958
Последний ответ 10.03.2016, 20:44:32
от RodionMurin
Вопрос по multicheckbox image и отображение в превьюшке обm

Автор yury181

Ответов: 0
Просмотров: 695
Последний ответ 14.02.2016, 04:22:57
от yury181