Создать dev crash course (DCC), который будет содержаться пример работы функционала и ссылку на файл с кодом, который его реализует
Выглядеть это будет так:
[Page Header]
[Short description]
Code File: /ow_plugins/skeleton/routing.php
При этом, в коде, через комментарии указать всю необходимую техническую инфу: какие параметры принимаются, какие отдаются. У человека, читающего код, не должно возникать вопросов какие данные передаются и отдаются. |
Ниже следует пример функционала, сделанный по сценарию.
Это должен быть самодостаточнй плагин, который устанавлиается/активируется/деактивируется и работает на сайте без дополнительных телодвижений. Он должен содержать весб набор дефолтных папок и файлов для работы плагина в Oxwall
- схема папок и файлов, с описанием где что лежит и за что отвечает. Положить read.info в каждую подпапку, в котором добавить краткое описание предназначения этой подпапки
Указать инструменты в софте для debug и dev.
Расписать каждую константу:
указать адрес странички по добавлению ключей. ( dev tools).
URL: /skeleton/routing
-name: "Item name". type "input box". invitation label:"My item". required -name: "Menu name". type "select box". values: val1=footer, val2=header. required. -name: "Page Title". type "input pox". invitation label: "My page title". required -name: "Page Meta Tags". type "text area". invitation label: "My meta tags" -name: "Page Content". type: "text area". invitation label: "My page content". required -name: "Visible for". type "select box". values: val1=guests, val2=registered members. required. -name: "Сreate". type: "submit". -table name: "Created Pages". columns:2. rows:min 1. column1="Page title"; column2="Actions": button name "Delete".
*Количество cтраниц которые можно создавать не ограничено.
*Все добавленные страницы выводить в таблице. table name: “Created Pages”
*Если не все required поля заполнены display notice. notice text: “Fill in the form properly”.
*Если все поля заполнены то создать страницу и добавить меню айтем в указанное место.
*Если нажимают на “Delete”, то страница и ее item в меню удаляются
URL: /skeleton/localization
-name: "Enter text key". type: "text-input". invitation label: "Hello World". -name: "Enter original value". type: "text-input". invitation label: "Welcome to my site". -name: "Create". type: "submit". -table name: "Сreated Text Keys". columns: 3. rows: min.1 column1= "Text Key Values" сolumn2= "Original Values" column3="Actions" {text key='skeleton+hello_world'} Welcome to my site name:"Delete". type:"button"*Количество ключей которые можно создавать не ограничено. Все ключи после создания выводить в таблицу Created Text Keys (см. выше).
*Ко всем созданным ключам автоматически добавлять префикс 'skeleton+'.
*Если нажимают “Delete” ключ и его значение удаляются и убираются с таблицы.
*Если нажимают “Create” не заполнив “Enter text key” и “Enter original value” выводить notice. notice text: “Fill in the form properly”.
*Если нажимают “Create”, но создаваемый ключ уже существует, то выводить notice.notice text: “Text key already exists”. То есть должна быть проверка на дублирующиеся ключи.
URL: /skeleton/forms
- name: text("Text") / type: text-input / description: text("additional field's description") - name: text("Extended text") / type: textarea - name: text("Single Choice(dropdown)") / type: selectbox / values: invitation=text("Select any"), val1=text("Red"), val2=text("Blue") - name: text("Multiple Choice") / type: multicheckbox / values: val1=New York, val2=Boston, val3=Chicago - name: text("Upload files") / type: file - name: text("Hidden") / type: hidden - name: text("Submit ME") / type: submit * для каждого элемента добавить PHP/JS проверки валидации ** указать ссылку на form_element.php и validator.php и сказать что там лежит полный список возможных типов и их валидаторов - указать все возможные опции у формы - дать инструкции, как вывести на той же странице введенные данные в табличном виде. Для файла вывести только название подгруженного файла
URL: /skeleton/file-storage.
- name: "Upload Image". type "file". button name "Browse". - name: "Image Description". type "text". predefined label:("describe your image") - name: "Upload". type: "submit" - После успешной загрузки отобразить изображение с Short Description. - Если изображение не подгрузилось то display notice. notice text: "Unacceptable file extension".
пропускаем
URL: /skeleton/mail-sending
-name: "From". type: "text-input".invitation label: "youremail@example.com" -name: "To". type: "text-input". invitation label: "recepientemail@example.com" -name: "Topic". type: "text input". invitation label: "enter email title" -name: "Body". type: "text area". invitation label: "enter email body" -name: "Deliver". type: "radio-button". values: val1=Immediately val2=Add to Queue.Рядом отобразить notice.notice text: "Email will be sent when Cron runs" -name: "Send". type: "submit".
*invitation label: это текст который отображается по дефолту. При клике на поле, текст исчезает.
*К полям “To” и “From” добавить простейшую проверку на формат email (ex: что бы была @ и не было запрещенных символов).
*Если письмо было отправлено успешно то display notice. notice text: “Your message was sent successfully”. Если письмо не было отправлено по какой то причине display notice: notice text: “Error sending message”.
URL: /skeleton/notifications
name: "Notification sender"|"<img src="{$link_to_loged_in_user_avatar}"/> {$username} name: "Notification Content". type: "input text". invitation label: "My new notification". required name: "Notification URL". type: "input text". invitation label:"www.mysitename.com/dashboard". name: "Attach image". type "file". button name: "Browse". optional. name: "Notify by email". type "check box". optional NOTE: created real time notification will be delivered by email depending on your profile's email notification settings name: "Send". type "Submit"
* Сделать проверку на загрузку изображения ( что бы можно было добавлять только картинки а не .doc или .pdf к примеру)
* Можно создавать хоть сколько нотификейшенов.
* Если были заполнены не все required поля выводить ностис. notice text: “Fill in the form properly”. Если все было заполнено корректно то создать нотфикейшен
* Если подгружаемый файл не является картинкой выводить нотис. notice text: “Unacceptable file extension”.
URL: /skeleton/newsfeed
name: название и аватрка того кто залогинен.( sender) name: "Newsfeed Item Content". type "text input".required. name: "Place on:". type "select-box". val1=Dashboard Newsfeed val2=Index Newsfeed. val3=Profile Newsfeed. required name: "Add entry". type "Submit".
* Если все заполнено правильно вывести нотис “You have successfully added newsfeed item added to {$ место тут}”.
URL: /skeleton/widgets
name: "Widget Content"|{$profiles_list_widget} ( заметка: отобразить стандартный виджет с latest users profiles). name: "Place widget on page". type "select box". vales: val1="User Profile", val2="User Dashboard", val3="Index". name: "Add". type:"Submit". table name: "Created widgets". number of col=2. rows=min 1 col1="Latest Users Widget" col2= "Widget placement". col=3 "Actions" (delete)
URL: /skeleton/floatbox
text: "This is a component" button: "Reload me", after click text changes to "Component has been reloaded via ajax" button: "Close floatbox"
раз в секунду. посоветоваться с Зарифом как добить его.
подумать
URL: /skeleton/profile_questions
name: "Username", type: text, value name: "Gender", type: radio, selected value name: "Birthday", type: date (birthday), selected value name: "Save"
URL: /skeleton/access_level
Описать метод проверки action для текущего юзера
Описать метод проверки для модератора
Описать метод добавления action при установке плагина
URL: /skeleton/admin_settings/
name: "Configuration name". type: "text-input". invitation label: "My New Configuration". required. name: "Place configuration under:". type: "list". val1=Dashboard, val2=Users, val3=Settings, val4=Privacy&Permissions, val5=Appearance, val6=Pages&Menus, val7=Plugins. required name: "Configuration URL". not editable. Заметка: cгенерить и отобразить УРЛ admin/skeleton /{$selected_menu_item_name}/configuration_name name: "Upload your php code:". type: "file". required. Ex: СONFIG type . select box с типами.( узнать у девелоперов). и если юзер выбирает малтипль значение то попросить ввести возможные значения. name: "Add". type "submit". name: "Created Configurations". type: "Table". number of cols=2, number of rows=min1 col1=Configuration name, col2=Actions (delete).
для зарифа. конфига обязательно должан появиться в сетингах плагина Skeleton. *Если поля какое то из обязательных полей не было заполнено display notice: “Fill in the form properly”.
*Если все поля были заполнены display notice: “Configuration was added successfully. Configuration URL: {$configuration-url}.”
*После перехода по урлу открыть страницу с залитым кодом юзера.
сценарий добавления какого то функционала плагином при установке. Больше Серегеина работа.
то же самое. Сереге