Класс строки текста с иконкой правки (вызывающей окно)
Originally reported on Google Code with ID 142
Такой класс полезен для запуска авторских инструментов preg, а в будущем - и перечислениям
correctwriting.
Reported by oasychev
on 2012-07-31 14:15:40
Comments (7)
-
Account Deleted -
reporter ``` 1,2) зачем наследовать от класса формы?! Наследоваться надо от элемента формы! Тогда у нас будет новый элемент (строка с кнопкой), который можно будет использовать на форме. Можно унаследоваться от строки и добавить кнопку. Если не ошибаюсь, Тим Хант в форуме давал вам ссылку на пример подобного кода...
3) Изучите как работает отдельный элемент, потом к этому вернемся.
4) Следует соблюдать правила из http://docs.moodle.org/dev/JavaScript_guidelines в новом коде. В Moodle мог быть старый код, который их нарушал - но это не повод нарушать их в заново создаваемом коде. По крайней мере без серьезных на то оснований... ```
Reported by `oasychev` on 2012-08-23 10:46:31
-
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
-
reporter ``` 1,2) Я думаю вам помимо toHtml понадобится перегрузить конструктор, чтобы элементу можно было хотя бы указать ссылку куда ведет кнопка, а также картинку. Не стоит писать его совсем уж под себя - класс должен быть по возможности универсальным. ```
Reported by `oasychev` on 2012-09-11 08:54:34
-
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 -
reporter Это можно переводить в Fixed?
Reported by
oasychev
on 2013-05-31 19:00:41 -
reporter Reported by
oasychev
on 2013-05-31 19:30:49 - Status changed:Done
- Log in to comment
``` При проектировании класса появились следующие пути решения и проблемы:
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 кода:
Стоит ли делать добавление через createElement('html', ... ) или попытаться сделать разметку таблицей из двух ячеек и добавить текст бокс отдельно?
4) Для кнопки необходимо будет описать java-скрипт, который будет вызывать новое окно. Стоит ли писать скрипт в отдельно файле или написать внутри кода (встречал в мудле добавления java-скрипта внутри PHP кода)? ```
Reported by `grvlter` on 2012-08-20 17:07:11