Класс строки текста с иконкой правки (вызывающей окно)

Issue #142 closed
Oleg Sychev repo owner created an issue

Originally reported on Google Code with ID 142

Такой класс полезен для запуска авторских инструментов preg, а в будущем - и перечислениям
correctwriting.

Reported by oasychev on 2012-07-31 14:15:40

Comments (7)

  1. Former user Account Deleted

    ``` При проектировании класса появились следующие пути решения и проблемы:

    1) Пусть создан класс, который наследуется от moodleform (пусть будет qtype_preg_authors_tool_widget) и перегружен метод defenition, в котором создаются текст бокс и кнопка. В файле, в котором на форму добавляются виджеты создан класс, который тоже наследуется от moodleform. В его методе defenition можно создать экземпляр класса qtype_preg_authors_tool_widget и применить в нему displey.

    Плюсы: - текст бокс и кнопка будут добавлены на страницу в любом случае.

    Минусы: - на форме будет два тега form. Это будет работать, но возникают конфликты с расположением виджетов при использовании функции createElemetn и прочих.

    2) Пусть создан класс qtype_preg_authors_tool_widget, который не наследуется ни от чего. Можно написать функцию static function definition_widget и передать в неё параметр $mform, в который в свою очередь будет добавлен текст бокс и кнопка.

    Какой вариант решения выбрать: 1) или 2)? Или спросить на форуме, как лучше сделать?

    3) Не смог найти стандартной функции moodle, которая бы добавляла кнопку с картинкой на форму. Добавление кнопки можно реализовать через createElement('html', ... ). Но если текст бокс добавлять при помощи createElemetn, то кнопка и текст бокс не будут на одной строке. Поэтому можно добавить текст бокс и кнопку при помощи одного вызова createElement('html', ... ).

    Для гибкости вторым параметром можно передать строку, состоящую из следующих параметров как часть HTML кода:

    • надпись перед текст боксом;
    • атрибуты виджетов(id, и прочее).

    Стоит ли делать добавление через createElement('html', ... ) или попытаться сделать разметку таблицей из двух ячеек и добавить текст бокс отдельно?

    4) Для кнопки необходимо будет описать java-скрипт, который будет вызывать новое окно. Стоит ли писать скрипт в отдельно файле или написать внутри кода (встречал в мудле добавления java-скрипта внутри PHP кода)? ```

    Reported by `grvlter` on 2012-08-20 17:07:11

  2. Oleg Sychev reporter

    ``` 1,2) зачем наследовать от класса формы?! Наследоваться надо от элемента формы! Тогда у нас будет новый элемент (строка с кнопкой), который можно будет использовать на форме. Можно унаследоваться от строки и добавить кнопку. Если не ошибаюсь, Тим Хант в форуме давал вам ссылку на пример подобного кода...

    3) Изучите как работает отдельный элемент, потом к этому вернемся.

    4) Следует соблюдать правила из http://docs.moodle.org/dev/JavaScript_guidelines в новом коде. В Moodle мог быть старый код, который их нарушал - но это не повод нарушать их в заново создаваемом коде. По крайней мере без серьезных на то оснований... ```

    Reported by `oasychev` on 2012-08-23 10:46:31

  3. Former user Account Deleted

    ``` 1,2) Мною был разобран пример Тима Ханта по созданию нового элемента формы. Есть идея унаследоваться от MoodleQuickForm_text (элемент текст бокс), перегрузить метод toHtml и просто приклеить к возвращаемой строке (коду HTML) HTML код кнопки с картинкой.

    3) Если следовать пункту 1,2), то вопрос исчерпан. Текст бокс и кнопка будут на одной строке.

    4) Были изучены правила использования JavaScript. В соответствии с ними код будет написан в уже существующий .js файл. ```

    Reported by `grvlter` on 2012-09-10 19:56:21

  4. Oleg Sychev reporter

    ``` 1,2) Я думаю вам помимо toHtml понадобится перегрузить конструктор, чтобы элементу можно было хотя бы указать ссылку куда ведет кнопка, а также картинку. Не стоит писать его совсем уж под себя - класс должен быть по возможности универсальным. ```

    Reported by `oasychev` on 2012-09-11 08:54:34

  5. Oleg Sychev reporter
     Undefined index: link_on_page in Z:\home\moodle\www\question\type\preg\authors_tool\preg_widget.php
    on line 42
    
    Саму форму как-то не отредактировали и ссылка неактуальная...
    

    Reported by oasychev on 2012-12-21 13:32:59

  6. Oleg Sychev reporter
    Это можно переводить в Fixed?
    

    Reported by oasychev on 2013-05-31 19:00:41

  7. Log in to comment