Обработка кнопоки в админке.

Тема в разделе "Программирование", создана пользователем deadheart, 23.11.2009.

  1. Offline

    deadheart Недавно здесь

    Регистрация:
    07.09.2009
    Сообщения:
    69
    Симпатии:
    0
    Пол:
    Мужской
    И снова здрасти .

    Код (PHP):
    1. JToolBarHelper::save();

    вот этим мы создаем кнопочку сохранить в админке и по нажатию кнопочки происходит сохранение введенной информации. внимание вопрос .... можно ли каким-то образом обрабатывать события этой кнопки? тобишь меня интресует такая механика : реакция на событие onClick, после чего вызывается функция яваскрипта (там производится проверка корректности ввода) и если есть ошибки то не производится переход, а остаемся на странице и корректируем данные.
     
  2.  
  3. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    Код (html):
    1. <td id="toolbar-save" class="button">
    2.    <a class="toolbar" onclick="javascript: submitbutton('saveFeed')" href="#">
    3.       <span title="Сохранить" class="icon-32-save"></span>
    4.       Сохранить
    5.    </a>
    6. </td>

    можно например так перехватить в jQuery
    Код (CODE):
    1. $("#toolbar-save").click(function(){
    2.    alert("Save me :D");
    3. });


    или в Mootools:
    Код (CODE):
    1. $("#toolbar-save").addEvent("click", function(){
    2.    alert("Save me :D");
    3. });
     
  4. Offline

    deadheart Недавно здесь

    Регистрация:
    07.09.2009
    Сообщения:
    69
    Симпатии:
    0
    Пол:
    Мужской
    jquery - это гууд) и снова спасибо.
     
  5. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    А почему бы не посмотреть как это реализовано в самой джумле? Ничего там перехватывать не надо. В любом месте можно попробовать что-нибудь удалить ничего не выбрав.
     
  6. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    ну просветили бы ;) просто не охото было ковырять код - выложил самое простое решение )
     
  7. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Там написано более, чем понятно.
    Вот например administrator\components\com_categories\admin.categories.html.php (253-282):
    Код (PHP):
    1. <script language="javascript" type="text/javascript">
    2.         function submitbutton(pressbutton, section) {
    3.             var form = document.adminForm;
    4.             if (pressbutton == 'cancel') {
    5.                 submitform( pressbutton );
    6.                 return;
    7.             }
    8.  
    9.             if ( pressbutton == 'menulink' ) {
    10.                 if ( form.menuselect.value == "" ) {
    11.                     alert( "<?php echo JText::_( 'Please select a Menu', true ); ?>" );
    12.                     return;
    13.                 } else if ( form.link_type.value == "" ) {
    14.                     alert( "<?php echo JText::_( 'Please select a menu type', true ); ?>" );
    15.                     return;
    16.                 } else if ( form.link_name.value == "" ) {
    17.                     alert( "<?php echo JText::_( 'Please enter a Name for this menu item', true ); ?>" );
    18.                     return;
    19.                 }
    20.             }
    21.  
    22.             if ( form.title.value == "" ) {
    23.                 alert("<?php echo JText::_( 'Category must have a title', true ); ?>");
    24.             } else {
    25.                 <?php
    26.                 echo $editor->save( 'description' ) ; ?>
    27.                 submitform(pressbutton);
    28.             }
    29.         }
    30.         </script>


    Когда недостаточно слов,... читай код : )
     
  8. Offline

    deadheart Недавно здесь

    Регистрация:
    07.09.2009
    Сообщения:
    69
    Симпатии:
    0
    Пол:
    Мужской
    sectus %) ...с перехватом как-то понятнее. А чем хуже делать как посоветовал omfgpanda
     
  9. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Пути решения выбирает каждый сам.
    Но, очень будет хорошо, если ты будешь знать язык, на котором программируешь и особенности frameworkа и использовать уже готовые решения и функции.
    Велосипед, сделанный своими руками, понятнее любого другого.

    И потом, выше высказанный подход содержит изъяны. Обработка:
    Код (CODE):
    1. javascript: submitbutton('saveFeed')
    никуда не девается, а, даже, будет выполняться раньше добавленного события.
     
  10. omfgpanda
    Offline

    omfgpanda специалист

    Регистрация:
    22.01.2008
    Сообщения:
    673
    Симпатии:
    53
    Пол:
    Мужской
    полностью соласен с sectus, предложенное мною решение это всего лишь обход конструкций фреймворка, потомучто, как я писал выше, мне было просто лень ковырять код )))
     

Поделиться этой страницей

Загрузка...