Сегодня 6 июля, воскресенье ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
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). Во все хорошие места, в которых довелось работать, меня позвали. Традиционных собеседований я там не проходил.

С проведением собеседований тоже интересно. Их я провёл гораздо больше, чем собеседовали меня. При принятии решения я полагаюсь на «чутьё». Сначала я старался как-то формализовать принятие решений, но потом понял, что это, в общем-то, бесполезно. Либо чувствуешь, что человек подходящий, либо нет.

«Чутьё» штука занятная. Иногда оно совершенно противоречит логике. Например, один раз жарким летом собеседовал кандидата в разработчики. Образование не программистское, опыта не очень много. На часть вопросов верных ответов не дал. Английский, который требовался, тоже был не супер. Но был отличный настрой, желание сдвинуть горы и почти верный предположения о собственных пробелах в знаниях. Чутьё сказало «берём». Не ошиблось. Человек за год очень сильно вырос.

Тут важно понимать, что подобные решения, основанные больше на чутье, а не на логике, позволить себе могут далеко не все компании. Классические аутсорсеры и мелкие фирмы, которым необходимо во что бы то ни стало сдать проекты в срок, могут от таких решений сильно пострадать.



Страницы: ... 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 ... 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.