[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Конструктор формы
twin
Отсюда.

Итак. Я не имел плотно дела с CMS, плохо представляю даже, с чего начать. Ну раз это менеджер, логично предположить, что во главу угла будут поставлены формы. Вот и первая потребность - конструктор форм.

Стоимость скрипта - 2000 рублей.

Вот как я себе это представляю:
// Конструктор формы
class Form
{
protected $tag;

public function set($tagName)
{
$this->tag = (object)['tagName' => $tagName];
return $this;
}

public function get()
{
return $this->tag;
}

public function addAttrbute($attribute, $value)
{
Validate::checkTag($this->tag);
$this->tag->$attribute = $value;
return $this;
}

public function createHtml()
{
$tag = '<'. $this->tag->tagName .' ';

foreach ($this->tag as $attribute => $value) {

if ($attribute === 'tagName') {
continue;
}

$tag .= $attribute .'="'. $value .'" ';
}

return $tag .'>';
}
}


// Валидация аттрибутов
class Validate
{
public static function checkTag($tag)
{
if (empty($tag->tagName)) {
throw new Exception('No tag name');
}
}
}




////////////////////////////////////
$form = new Form;

$input = $form->set('input')
->
addAttrbute('class', 'some')
->
addAttrbute('size', 5)
->
createHtml();

var_dump($input);

Ну имеется ввиду начало, толчек в нужном направлении.

Нужно:
1. Добавить события
2. Придумать, как бороться с "кривыми" тегами типа textarea, button и т.п.
3. А так же с группами радио и чекбоксов.
3. Решить вопрос с лейблами.
4. Доделать валидатор аттрибутов и событий, учтя максимум нюансов
5. Может еще чего я забыл, но нужнО в генераторе :)
3. Привести это безобразие в порядок и скормить фреймворку.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.