ФорумПрограммированиеPHP для идиотов → вопросик по организации фреймворка форм

вопросик по организации фреймворка форм

  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 20 апреля 2010 г. 12:18

    Хочу переписать тот свой валидатор/билдер форм. Хочу формы теперь не на таблицах а на дивах, а значит без цсс не обойтись. вопрос в том, как реализовать это.
    есть идея просто лепить кашу из дивов, но позволить задавать им класс и ид, цсс ляжет на разработчика. минут - усложнение формы тем, что придется еще и цсс простенький писать, еще и стайлы и ид'ы задавать полям.
    жду ваших идей или советов изходя из опыта :)
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 20 апреля 2010 г. 13:13, спустя 55 минут 25 секунд

    soulgarden, делай таблицами, на дивах все поедет, либо будет слишком сложная верстка/кад, не счиатя того что ширины колонок автоматически в таблицах строятся, а с дивами ты такой фокус не провернешь легко :)
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 20 апреля 2010 г. 14:01, спустя 47 минут 35 секунд

    phpdude, на самом деле можно и дивами, и таблицами. Суть в том, что это в большинстве случаев нах никому не нужно, ибо главное что корректно работало.
    Но я, как верстальщик, иногда "от скуки" (в последнее время все чаще) фигарю именно с блоками и прочей лабудой. Но и стилевой файл у меня к концу всей верстки разрастается так, что ого-го. Хотя в то же время и работает везде (во всех браузерах) практически одинаково (огрехи в пределах допустимого и без нарушений общей картины.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 20 апреля 2010 г. 14:19, спустя 18 минут 25 секунд

    Givi, я не говорил что это невозможно, я сказал что лишний геморой = человеко-часы
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 20 апреля 2010 г. 23:36, спустя 9 часов 17 минут 10 секунд

    phpdude, и я не говорил, что ты сказал, что это невозможно. Вообще я сказал, что оно нахер не нужно делать, если есть чем более нужным занятся. А когда нечем заняться будет, тогда уже можно думать.

    п.с. Вообще плюс в дивах тот, что их можно визуально "менять местами", то есть можно одним изменением стилей сделать чтоб было по типу:

    Имя: |___________|

    или так:

    Имя:
    |____________|

    В любом случае мне удобнее с дивами, так как при желании можно сваять со стилями всякие интересные вещи, которые не всегда удобно делать с таблицами. Но и тот и тот вариант вполне корректен и своё задание выполняет на "отлично".
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 21 апреля 2010 г. 0:26, спустя 49 минут 49 секунд

    есть такая идея, сделать режим дебага. в нем фреймворк будет генерить и отображать дефолтный цсс и дефолтный js (если эффекты нужны).
    и этот жс и цсс в отдельных файлах можно сохранить и вставить в <head></head>

    это для того чтоб не было инлайн жс как в прошлом фреймворке
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 21 апреля 2010 г. 0:56, спустя 30 минут 6 секунд

    концепт формы

    <?php

    require_once(forms.php);

    $loginform = new Forms($name = 'loginform', $method = 'post', $debug = true);

    $loginform->fields($field=array('name' => 'login'), $field=array('name' => 'pass', 'type' => 'password'));

    //или может так лучше

    $loginform->addField($name = 'login'); //$type, $id, $class и тд
    $loginform->addField($name = 'pass', $type = 'password');
    $loginform->addField($name = ''submit, $type = 'submit');

    if (isset($_POST)) {
    $loginform->validate();
    }
    else {
    $loginform->build();
    }

    ?>

  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 21 апреля 2010 г. 1:04, спустя 7 минут 22 секунды

    а как валидаторы добавляются?
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 21 апреля 2010 г. 1:12, спустя 8 минут 2 секунды

    вероятно в классе будет массив $handliers в котором перечислены валидаторы. text, select, radio и тд. хочешь свой валидатор - добавляй название в массив и в класс кусок кода суй в метод validate()
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 21 апреля 2010 г. 1:19, спустя 7 минут 18 секунд

    будут приватные методы типа validate_text()
    и массива не будет
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 21 апреля 2010 г. 1:30, спустя 10 минут 29 секунд

    я просто хочу всё упихнуть в одну либу
    Спустя 94 сек.
    какой из предложенных вариантов добавления полей лучше? или свои лучше предложите. что думаете на счет жс и цсс?
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 21 апреля 2010 г. 1:37, спустя 7 минут 41 секунду

    1) можно реализовать и то и то
    2) нахуя все пихать в одну? раздели на несколько. Что б я к примеру мог твой валидатор использовать отдельно от генератора
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 21 апреля 2010 г. 1:46, спустя 8 минут 22 секунды

    ну тогда получится почти тот же валидатор, что и был :(
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 23 апреля 2010 г. 0:00, спустя 1 день 22 часа 13 минут

    подскажите как обрабатывать поля. экранировать, nysql_escape_string() или htmlentities(), а что если надо сохранить форматированный текст с тегами? запутался в этой теме…
  • Nyaah

    Сообщения: 574 Репутация: N Группа: Джедаи

    Spritz 23 апреля 2010 г. 3:04, спустя 3 часа 4 минуты 12 секунд

    $form->getField('password')->removePreFilter('trim', '::removeTags')->removePostFilter('htmlentities'); // == $form->getField('password')->setRawInputFlag(true);

    как-нить так =)
    Work, buy, consume, die

Пожалуйста, авторизуйтесь, чтобы написать комментарий!