![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блогов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). Во все хорошие места, в которых довелось работать, меня позвали. Традиционных собеседований я там не проходил.
С проведением собеседований тоже интересно. Их я провёл гораздо больше, чем собеседовали меня. При принятии решения я полагаюсь на «чутьё». Сначала я старался как-то формализовать принятие решений, но потом понял, что это, в общем-то, бесполезно. Либо чувствуешь, что человек подходящий, либо нет.
«Чутьё» штука занятная. Иногда оно совершенно противоречит логике. Например, один раз жарким летом собеседовал кандидата в разработчики. Образование не программистское, опыта не очень много. На часть вопросов верных ответов не дал. Английский, который требовался, тоже был не супер. Но был отличный настрой, желание сдвинуть горы и почти верный предположения о собственных пробелах в знаниях. Чутьё сказало «берём». Не ошиблось. Человек за год очень сильно вырос.
Тут важно понимать, что подобные решения, основанные больше на чутье, а не на логике, позволить себе могут далеко не все компании. Классические аутсорсеры и мелкие фирмы, которым необходимо во что бы то ни стало сдать проекты в срок, могут от таких решений сильно пострадать.



![]() | ||
+144 |
150 |
Коптящий_Небо |
+133 |
151 |
SLAVASTIK |
+126 |
163 |
Илья Лавров |
+126 |
195 |
J-Misty |
+113 |
164 |
Поисковая машина индейца Джо |
![]() | ||
-2 |
8 |
Алена_Макси |
-6 |
5 |
КнигоБлог |
-27 |
62 |
Тайный дневник Фингуса |
-28 |
9 |
М а с с а р а к ш |
-28 |
67 |
Реклама в картинках |

Загрузка...

взяты из открытых общедоступных источников и являются собственностью их авторов.