User Tools

Site Tools


dev:skeleton:draft
The most recent version of this page is a draft.DiffThis version (2013/07/05 06:39) is a draft.
Approvals: 0/1

This is an old revision of the document!


Создать dev crash course (DCC), который будет содержаться пример работы функционала и ссылку на файл с кодом, который его реализует

Выглядеть это будет так:

[Page Header]

[Short description]

Code File: /ow_plugins/skeleton/routing.php

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

Ниже следует пример функционала, сделанный по сценарию.

Skeleton

Это должен быть самодостаточнй плагин, который устанавлиается/активируется/деактивируется и работает на сайте без дополнительных телодвижений. Он должен содержать весб набор дефолтных папок и файлов для работы плагина в Oxwall

Сценарий

File structure

- схема папок и файлов, с описанием где что лежит и за что отвечает. Положить read.info в каждую подпапку, в котором добавить краткое описание предназначения этой подпапки

Debug/Dev tools

Указать инструменты в софте для debug и dev.

Расписать каждую константу:

  1. где активируется
  2. зачем нужно, на что влияет

указать адрес странички по добавлению ключей. ( dev tools).

plugin.xml
  1. указать в кратце зачем он нужен
  2. указать путь, по которому он находится
  3. описать каждый параметр в этом файле: зачем он нужен и какие возможные значения может принимать
Routing

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 в меню удаляются

Localization

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". 
То есть должна быть проверка на дублирующиеся ключи.
Forms

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 и сказать что там лежит полный список возможных типов и их валидаторов
	
- указать все возможные опции у формы 
- дать инструкции, как вывести на той же странице введенные данные в табличном виде. Для файла вывести только название подгруженного файла
Using database
  1. как выполнить несколько самых частоиспользуемых типов запросов
  2. DBO и DTO на примере полей из пункта Forms. Для файлов записать в таблицу только имя файла
File storage

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".

Decorators

пропускаем

Mail sending

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".
-Если письмо было отправлено успешно то display notice. notice text: "Your message was sent successfully".
 Если письмо не было отправлено по какой то причине display notice: notice text: "Error sending message".

  • Примечание: invitation label: это текст который отображается по дефолту. При клике на поле, текст исчезает.
  • Примечание: к полям “To” и “From” добавить простейшую проверку на формат email (ex: что бы была @ и не было запрещенных символов).
Activity Notifications

подумать какие сценарии можно добавлять. “нажмите сюда что бы появилось то то то ”… Идеи:

Newsfeed

как добавить новый айтем в ньюсфид.

Widgets

как добавитьс вой виджетв коде. “нажмите на эту кнопку”…

Javascript

подумать.

Ajax

подумать

Profile questions

подумать. keywords- считывание значений, добавление кастомного поля, редактирование.

ACL

access…level . управление пермишенами.создавание новых сервисов и считывание пермишенов

Admin Settings

как добавлять новые конфиги.

Pre Installation/Activation

сценарий добавления какого то функционала плагином при установке. Больше Серегеина работа.

Post Uninstallation/Deactivate

то же самое. Сереге

dev/skeleton/draft.1373006343.txt.gz · Last modified: 2015/09/15 09:10 (external edit)