|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера RMCreative.ru - Блог/Записи в блоге |
|
RMCreative.ru - Блог
Голосов: 1 Адрес блога: http://rmcreative.ru/feed/ Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL |
|
Свой input[type=file]
2012-07-31 02:19:41 (читать в оригинале)Иногда стандартное поле для загрузки файла ну совсем не вяжется с остальным дизайном страницы. В лоб подменить его нельзя, зато можно взять хитростью:
input[type=file] обрачивается в контейнер:
<div class="file_upload">+<input type="file" /></div>
Далее применяем немного CSS:
.file_upload { /* Для того, чтобы спозиционировать input относительно контейнера. */ position: relative; /* Скрываем неумещающуюся часть input-а. */ overflow: hidden; /* Украшательство: */ background: #eee; border: 1px solid #ccc; font-size: 30px; line-height: 1; text-align: center; padding: 20px; width: 40px; } .file_upload input[type=file] { /* Позиционируем правый верхний край input поверх нашего контейнера. Правый верхний потому как именно там у нас кнопка. */ position: absolute; top: 0; right: 0; /* Делаем input побольше, чтобы он точно перекрыл контейнер. */ font-size: 200px; /* Делаем input невидимым. По-другому нельзя, иначе браузер не будет на него реагировать. */ opacity: 0; filter: alpha(opacity=0); /* Украшательства: */ cursor: pointer; }
Yii 1.1.11
2012-07-30 19:39:35 (читать в оригинале)Команда Yii зарелизила версию 1.1.11, в которую вошли более ста улучшений и багфиксов.
Этот релиз особенный потому как является первым с тех пор, как код Yii мигрировал на GitHub. Сообщество восприняло миграцию очень хорошо и выложилось по полной, прислав в виде pull-request новые возможности, исправления, unit-тесты и переводы.
За всё это огромное спасибо! Особенно отметим: resurtm, DaSourcerer, cebe и suralc.
Можно ознакомиться со списком изменений и новыми возможностями. Если планируете обновиться, внимательно читайте инструкции.
После релиза обнаружились некоторые неприятные ошибки. Работаем.
Ну а теперь рассмотрим некоторые изменения.
Проддержка полей HTML5 в CHtml
В CHtml добавлены новые методы:
CHtml::dateField()CHtml::rangeField()CHtml::numberField()CHtml::emailField()CHtml::urlField()CHtml::activeDateField()CHtml::activeRangeField()CHtml::activeNumberField()CHtml::activeEmailField()CHtml::activeUrlField()
Использовать так:
echo CHtml::activeNumberField($model, 'fieldName');
CFormatter::formatSize()
Новый метод, позволяющий получить нормально читаемый размер из размера в байтах:
echo Yii::app()->format->formatSize(115969); // покажет: 113.25 KB
Коды возврата консольного приложения
Теперь можно вернуть integer из действия консольного приложения. Значение будет использовано как код возврата.
Подробнее в руководстве.
CJavaScript::encode() и js:
Если вы использовали CJavaScript::encode() и при этом брали значение из формы или URL, ваше приложение, скорее всего уязвимо. Чтобы закрыть уязвимость, необходимо передать вторым параметром true:
CJavaScript::encode($userInput, true);
Параметр запретит использовать префикс js:. Если вам всё-таки необходимо передать выражение JavaScript обрамите его CJavaScriptExpression:
CJavaScript::encode(new CJavaScriptExpression('alert("Yii!");'), true);
Второй параметр (safe) не влияет на поведение CJavaScriptExpression.
HTTP-кэширование
В дополнение к обычному кешированию страниц, в новой версии можно использовать CHttpCacheFilter. Этот фильтр отсылает заголовки HTTP, которые дают клиенту понять, что содержимое страницы не менялось с последнего запроса. Серверу в этом случае нет необходимости повторно отсылать содержимое. Настраивается CHttpCacheFilter также, как и COutputCache:
public function filters() { return array( array( 'CHttpCacheFilter + index', 'lastModified'=>Yii::app()->db->createCommand("SELECT MAX(`update_time`) FROM {{post}}")->queryScalar(), ), ); }
Подробнее в руководстве
Исключение правил валидации модели
Если вы не хотите использовать для валидации одно из правил когда активен определённый сценарий, то можете теперь указать параметр except, содержащий список сценариев. Синтаксис такой же, как и у on:
// строка имён через запятую (пробелы игнорируются) array('username', 'required', 'except'=>'ignore, this, scenarios, at-all',)
Подробнее в руководстве
Новый инструментарий и документация для переводчиков
Новая документация задаёт рабочий процесс для перевода с использованием github. Инструменты позволяют получить все изменения, произведённые с последнего обновления перевода. Надеемся, что это поможет поддерживать переводы документации в актуальном состоянии.
Что изменилось и чего ожидать от Yii 1.1.11?
2012-07-24 21:28:41 (читать в оригинале)resurtm, активно участвующий в разработке Yii, описал основные изменения, которые ждут нас в 1.1.11. Релиз состоится на этой неделе. За это время список изменений может немного пополниться.
Всем, кто хочет обновиться рекомендую взять код из master и погонять с ним свой проект локально. Если что-то сломалось — ещё не поздно будет поправить.
Читаем и комментируем
Adobe Shadow
2012-07-23 15:12:34 (читать в оригинале)В начале месяца у меня была задачка фикснуть одну злую штуковину на тему вёрстки на iPad, но так как внятных отладочных инструментов из коробки для него нет, работать приходилось вслепую, что результата не давало.
Я попробовал поставить Firebug Lite. Получилось, но под iOS он, как оказалось, работает очень и очень криво. В комментариях TermiT подсказал попробовать Adobe Shadow, за что ему огромное спасибо.
Штука очень крутая. Состоит из нескольких частей:
- Приложения под iOs и Android плюс бонус для Amazon Kindle Fire.
- ПО под Mac и Windows.
- Расширение для Chrome.
Эта связка даёт нам:
- Возможность синхронно ходить на всех устройствах по страничкам. Командует парадом Chrome.
- Возможность натраваить Chrome Developer Tools на любое из устройств, что даёт огромные возможности в отладке.
Про найм и почему мы всё делаем не так
2012-07-20 03:09:47 (читать в оригинале)Иван Сагалаев пишет о том, как не нужно нанимать инженеров и частично о том, почему именно так как не нужно нанимают.
Мне довелось побывать и с той и с другой стороны «баррикад». У самого имеются, как выяснилось, проблемы с традиционными собеседованиями: завалил или неблагоприятно для себя закончил около трёх. Как минимум одно точно из-за стресса (привет, Facebook). Во все хорошие места, в которых довелось работать, меня позвали. Традиционных собеседований я там не проходил.
С проведением собеседований тоже интересно. Их я провёл гораздо больше, чем собеседовали меня. При принятии решения я полагаюсь на «чутьё». Сначала я старался как-то формализовать принятие решений, но потом понял, что это, в общем-то, бесполезно. Либо чувствуешь, что человек подходящий, либо нет.
«Чутьё» штука занятная. Иногда оно совершенно противоречит логике. Например, один раз жарким летом собеседовал кандидата в разработчики. Образование не программистское, опыта не очень много. На часть вопросов верных ответов не дал. Английский, который требовался, тоже был не супер. Но был отличный настрой, желание сдвинуть горы и почти верный предположения о собственных пробелах в знаниях. Чутьё сказало «берём». Не ошиблось. Человек за год очень сильно вырос.
Тут важно понимать, что подобные решения, основанные больше на чутье, а не на логике, позволить себе могут далеко не все компании. Классические аутсорсеры и мелкие фирмы, которым необходимо во что бы то ни стало сдать проекты в срок, могут от таких решений сильно пострадать.
|
| ||
|
+1241 |
1261 |
Robin_Bad |
|
+1175 |
1263 |
Futurolog |
|
+1090 |
1094 |
MySQL Performance Blog |
|
+1028 |
1098 |
Ksanexx |
|
+1023 |
1097 |
Refinado |
|
| ||
|
-2 |
511 |
партнерки |
|
-3 |
86 |
Mandalaй.ru |
|
-3 |
605 |
Блог о раскрутке и монетизации сайта. |
|
-4 |
17 |
Выводы простого человека |
|
-4 |
39 |
БЛОГика |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.
