Вы не правильно поняли… Секретарша мою работу не проверяет, она ей пользуется… =))
Да и не вижу ничего гнусного в том, чтобы попросить секретаршу потестировать юзабилити сайта… но это уже скорее вопросы к дизайнеру, а не к программисту или верстаку!
И почему мы должны делать работу конкретно для неё и её монитора??
Мы не так часто, а Вы не замечали, как работают различные менеджеры, секретарши и прочий гуманитарный народ? Они порой такое вытворяют, что никогда бы не подумал сам это сделать… Вот для них мы и делаем такие сайты… где предусмотрена каждая мелочь!
Лично мне так вообще всех этих дизайнов и украшательств не надо… Это надо для клиента… и клиентов клиента!
Я думаю, что это хорошее решение. Мне сейчас как раз предстоит верстка подобного макета, и я воспользуюсь этим методом.
Сейчас сделал всё на float:left, но это меня не очень устраивает, т.к. макет 3х колоночный и такие плавающие блоки в нем подглючивают.
Это решение, которое предложил dfuse мне очень подходит, чего и всем желаю. Правда подобный вариант я видел и у Артемки Лебедева. Но там немного иначе все.
Поля, соответствующие таблице могут писаться в базу. В соответствии с ним происходит обработка в JS при вводе информации в фронтэнде и при сохранении в бакенде. отправка происходит через формы JQuery, если включен JS или как обычно, если выключен.
Есть реализация интеграции с Jquery-UI.
Так еще доступны типы int, float, select, radio и некоторые другие.
Сейчас доступны методы:
create() — создание формы (см. выше)
getForm( 'formname' ) — вернет описание формы, как массив выше
clear() — очистит значения value у полей
getPost() — дёрнет из поста соответствующие полям индексы (нужно, когда считывает отправленные данные, этот же метод производит чистку данных по типам)
setTable() — сохранит данные в таблицу БД
getTable() — загрузит данные из таблицы БД
getValue() — получить значение поля
getValues() — получить значения всех полей
setValue() — установить значение поля
setValues() — установить значения всех полей
setVariants() — установить варианты для полей select, radio и checkbox (порой надо, чтобы эти значения заполнялись динамически из базы, например)
write() — распечатает форму в автоматическом режиме (есть несколько вариантов)
setReadonly() — утановить поле в readonly (также может отменить readonly)
setRaedonlyAll() — установить все поля в readonly (также может отменить readonly)
setHidden() — делает некоторые поля скрытыми/не скрытыми
setTypes() — можно для некоторых полей поменять тип
В целом мне и обычный плагин форм нравится. У меня к нему свой класс на PHP написан. Сейчас еще со Smarty его пытаюсь подружить.
Но вот загрузчик файлов я себе позаимствую, немного переработав, если вы не против =))
Когда напишешь, например, CMF, в которой все базовые типы будут через этот класс описаны, посмотрю, какие там будут 3 %, ага… А когда надо будет обработать массив из несколько десятков тысяч значений? Так не тестировали? Причем каждый элемент массива — тоже массив…
Я рад, что вы поразмяли свои мозги и написали этот класс… вам кажется, что совершили чудо… но об этом думали почти все, на определенном этапе изучения PHP… и приходили к выводу, что такое абстрагирование абсолютно не нужно!!!
Скоро выйдет PHP 6 и ваш класс окажется бесполезным…
Пока человек хостится на виртуальном хостинге, его сайт будет висеть в блоке за превышение лимита используемых ресурсов. Или вообще страницы не будут успевать генериться )))) Такого уже насмотрелись…
Вот такие вот словоблуды и засоряют всемирное пространство.
Каждый берет из жизни то, что ему нужно. Одним надо получить знания, другим деньги, третьим ничего не надо, четвертые хотят набить морду автору… и т.д.
Так пусть каждый решает за себя, что ему делать, если это не вредит окружающим. А время покажет, кто был прав.
Я про справочники вообще между словом написал. Пользуюсь эклипсом с кодассистом и в справочник только по жизненной необходимости влезаю.
Смысл-то в том, что PHP-это процедурный язык с поддержкой ООП, а не объектный, как джава или руби и т.п.
Если начать какой-нибудь проект, основанный на данной библиотеке классов, то можно получить неизлечимые тормоза и трудночитаемый код (мне так довольно тяжело было проследить всю цепочку). А смысла в этом не на грош. Не спорю, что запрограммировать строку в пару десятков методов круто… только кто в ней будет разбираться через пол года… мозг себе сломает.
При проектировании библиотеки не было изобретено ничего нового. Если так не нравится PHP, используйте что-нибудь другое. Благо помимо пхп и перла ещё туева хуча языков, в основе которых уже реализованы объекты. Альтернатива есть.
Это не javascript, которому, собственно, альтернатив особо не намечается… (Flash или Java не в счет)
Лучше абстрагируйте то, что действительно нужно и касается конкретного проекта. А базовые типы оставьте уже в покое. Они на то и базовые.
В jquery ну пытались ECMAscript изнасиловать. Добавили удобства и кроссбраузерности. А ради чего этот огород в PHP до сих пор не понятно? Подобные библиотеки появлялись и обсуждались со времен выхода PHP4 с разным успехом. Только вот не об одной такой пока широкому кругу не известно…
Даже если напишет кто-нибудь либу на C++, будет весело смотреть на переписку с техподдержками шарахостов ))) Им то глубоко параллельно, что вы тут хотите полезную вещь для тестов запустить…
Да и в PHP такая абстракция ни к чему… просто язык такой, какой есть. А чтобы в функциях не путать, пользуйтесь справочниками. А учить новый синтаксис старых функций мне не хочется. Пусть лучше все остается, как было.
А если охото чисто на объектах писать, Вам уже предложили другие языки, где все это реализовано.
В итоге не работает, так, как хотелось бы. А-а-а…
А когда файл формата index.tpl создаешь, все гуд.
Уже устанавливаю себе на эклипс =))
Да и не вижу ничего гнусного в том, чтобы попросить секретаршу потестировать юзабилити сайта… но это уже скорее вопросы к дизайнеру, а не к программисту или верстаку!
И почему мы должны делать работу конкретно для неё и её монитора??
Лично мне так вообще всех этих дизайнов и украшательств не надо… Это надо для клиента… и клиентов клиента!
Сейчас сделал всё на float:left, но это меня не очень устраивает, т.к. макет 3х колоночный и такие плавающие блоки в нем подглючивают.
Это решение, которое предложил dfuse мне очень подходит, чего и всем желаю. Правда подобный вариант я видел и у Артемки Лебедева. Но там немного иначе все.
Молодец, dfuse, спасибо за пост!
<?php /** * Форма USERS */ $forms->create('users', array( 'method' => 'post', // метод отправки 'action' => '/ajax/xforms/action_users.php', // скрипт обработки 'class' => 'standart', // CSS класс 'table' => DBUSERS, // таблица БД 'fields' => array( 'id' => array( 'type' => 'hidden' ), 'email' => array( 'type' => 'text', 'label' => 'Email', 'notice' => 'необходим для авторизации' ), 'password' => array( 'type' => 'password', 'label' => 'Пароль', 'notice' => 'только чтобы изменить' ), 'solt' => array( 'type' => 'hidden' ), 'kod' => array( 'type' => 'hidden' ), 'fname' => array( 'type' => 'text', 'label' => 'Фамилия' ), 'lname' => array( 'type' => 'text', 'label' => '* Имя'/*, 'obligatory' => 1*/ ), 'tname' => array( 'type' => 'text', 'label' => 'Отчество' ), 'phone1' => array( 'type' => 'text', 'label' => 'Телефон' ), 'phone2' => array( 'type' => 'text', 'label' => 'Факс' ), 'phone3' => array( 'type' => 'text', 'label' => 'Мобильный' ), 'firm_value' => array( // no DB 'type' => 'suggest', 'label' => '* Фирма', 'ajax' => '/ajax/suggest/sug_users_firms.php', 'field_value' => 'firm', ), 'firm' => array( 'type'=>'hidden' ), 'contr_value' => array( // no DB 'type' => 'suggest', 'label' => 'Контрагент', 'ajax' => '/ajax/suggest/sug_users_contr.php', 'field_value' => 'contractor', ), 'contractor' => array( 'type' => 'hidden' ), 'position' => array( 'type' => 'text', 'label' => 'Должность' ), // должность 'otdel' => array( 'type' => 'text', 'label' => 'Отдел' ), 'other' => array( 'type' => 'textarea', 'label' => 'Дополнительно' ), 'date' => array( 'type' => 'hidden' ), 'last_date' => array( 'type' => 'hidden' ), 'ip' => array( 'type' => 'hidden' ), 'fix_ip' => array( 'type' => 'hidden' ), 'status' => array( 'type' => 'hidden', 'label' => '' ), 'submit' => array( 'type' => 'submit', 'value' => 'Сохранить' ), ), )); ?>Поля, соответствующие таблице могут писаться в базу. В соответствии с ним происходит обработка в JS при вводе информации в фронтэнде и при сохранении в бакенде. отправка происходит через формы JQuery, если включен JS или как обычно, если выключен.
Есть реализация интеграции с Jquery-UI.
Так еще доступны типы int, float, select, radio и некоторые другие.
Сейчас доступны методы:
create() — создание формы (см. выше)
getForm( 'formname' ) — вернет описание формы, как массив выше
clear() — очистит значения value у полей
getPost() — дёрнет из поста соответствующие полям индексы (нужно, когда считывает отправленные данные, этот же метод производит чистку данных по типам)
setTable() — сохранит данные в таблицу БД
getTable() — загрузит данные из таблицы БД
getValue() — получить значение поля
getValues() — получить значения всех полей
setValue() — установить значение поля
setValues() — установить значения всех полей
setVariants() — установить варианты для полей select, radio и checkbox (порой надо, чтобы эти значения заполнялись динамически из базы, например)
write() — распечатает форму в автоматическом режиме (есть несколько вариантов)
setReadonly() — утановить поле в readonly (также может отменить readonly)
setRaedonlyAll() — установить все поля в readonly (также может отменить readonly)
setHidden() — делает некоторые поля скрытыми/не скрытыми
setTypes() — можно для некоторых полей поменять тип
Как-то так.
Но вот загрузчик файлов я себе позаимствую, немного переработав, если вы не против =))
Я рад, что вы поразмяли свои мозги и написали этот класс… вам кажется, что совершили чудо… но об этом думали почти все, на определенном этапе изучения PHP… и приходили к выводу, что такое абстрагирование абсолютно не нужно!!!
Скоро выйдет PHP 6 и ваш класс окажется бесполезным…
Каждый берет из жизни то, что ему нужно. Одним надо получить знания, другим деньги, третьим ничего не надо, четвертые хотят набить морду автору… и т.д.
Так пусть каждый решает за себя, что ему делать, если это не вредит окружающим. А время покажет, кто был прав.
Смысл-то в том, что PHP-это процедурный язык с поддержкой ООП, а не объектный, как джава или руби и т.п.
Если начать какой-нибудь проект, основанный на данной библиотеке классов, то можно получить неизлечимые тормоза и трудночитаемый код (мне так довольно тяжело было проследить всю цепочку). А смысла в этом не на грош. Не спорю, что запрограммировать строку в пару десятков методов круто… только кто в ней будет разбираться через пол года… мозг себе сломает.
При проектировании библиотеки не было изобретено ничего нового. Если так не нравится PHP, используйте что-нибудь другое. Благо помимо пхп и перла ещё туева хуча языков, в основе которых уже реализованы объекты. Альтернатива есть.
Это не javascript, которому, собственно, альтернатив особо не намечается… (Flash или Java не в счет)
Лучше абстрагируйте то, что действительно нужно и касается конкретного проекта. А базовые типы оставьте уже в покое. Они на то и базовые.
Даже если напишет кто-нибудь либу на C++, будет весело смотреть на переписку с техподдержками шарахостов ))) Им то глубоко параллельно, что вы тут хотите полезную вещь для тестов запустить…
Да и в PHP такая абстракция ни к чему… просто язык такой, какой есть. А чтобы в функциях не путать, пользуйтесь справочниками. А учить новый синтаксис старых функций мне не хочется. Пусть лучше все остается, как было.
А если охото чисто на объектах писать, Вам уже предложили другие языки, где все это реализовано.