Сегодня 15 февраля, суббота ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
RMCreative.ru - Блог
RMCreative.ru - Блог
Голосов: 1
Адрес блога: http://rmcreative.ru/feed/
Добавлен: 2008-06-12 21:34:00 блограйдером ZaiSL
 

Убираем дубликаты URL в Yii

2013-11-17 14:51:31 (читать в оригинале)

Не первый раз спрашивают как убрать дубликаты URL в приложении на Yii при использовании красивых URL и showScriptName = false. Yii при включении данной опции генерирует все URL как надо, но позволяет обращаться к страницам и так и так:

http://example.com/blog/tag/Yii http://example.com/index.php/blog/tag/Yii

На самом деле никакой проблемы в этом нет потому как ни одной ссылки на второй тип URL не будет и он, соответственно, не проиндексируется. Но так как вопросы поступают и SEO-шники настаивают, вот ответ в виде gist.

Сохраняем в виде protected/components/DuplicateFilter.php, прописываем в метод filters контроллеров и забываем о проблеме.



Android: быстрый удобный эмулятор

2013-10-31 18:48:09 (читать в оригинале)

Использовать встроенный эмулятор из Android SDK — та ещё радость из за его скорости. Дело усугубляется, если у вас процессор не Intel. Можно, конечно, прилично поковырявшись в BIOS и системе, добиться сходной с Intel производительности, но работать будет всё-равно неприятно.

По этой причине вместо эмуляторов я обзавёлся реальными устройствами и долго пользовался ими пока не стал браться за задачки с довольно сложными интерфейсами. Железяк стало не хватать. У коллег при тестах иногда вылезали глюки на устройствах с другими пропорциями экрана и плотностью пикселей.

Поискав получше, я нашёл нормальный эмулятор. Зовётся Genymotion и является обёрткой над VirtualBox и набором образов. Работает действительно быстро. Быстрее реального устройства.

Пробуем



Android: поймать back в EditText

2013-10-30 03:19:28 (читать в оригинале)

Задачка — отловить нажатие хардварьной кнопки back и OK (или Done) на экранной клавиатуре при фокусе на EditText. Вроде должно решаться просто...

В Activity ищем наш EditText, вешаем события:

TextView input = (TextView)findViewById(R.id.input);
if (input != null) {
    input.setOnEditorActionListener(this);
    input.setOnKeyListener(this);
}

Далее реализовываем обработчики:

public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
    if (actionId == EditorInfo.IME_ACTION_DONE){
            // делаем свои дела
            return true;
        }
        return false;
    }
 
public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // делаем свои дела
        return true;
    }
    return false;
}

Проверяем. onEditorAction отработал отлично. А вот onKey не сработал. Оказывается, по какой-то неведомой причине, событие именно для EditText надо протолкнуть вручную изрядно извратившись. То есть сначала делаем своего наследника EditText с фиксом:

public class EditTextEx extends EditText {
    public EditTextEx(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public EditTextEx(Context context) {
        super(context);
    }
 
    public EditTextEx(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
 
    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
            dispatchKeyEvent(event);
            return false;
        }
        return super.onKeyPreIme(keyCode, event);
    }
}

И после заменяем в наших layout-ах

<EditText
    android:id="@+id/input" />

на

<com.acme.EditTextEx
    android:id="@+id/input" />

Вообще разработка под Android начинает чем-то напоминать мне JavaScript под IE... куча псевдо-совместимых версий ОС и девайсов и, как результат, хак на хаке и хаком погоняет...



Yii2 будет на PHP 5.4

2013-10-20 00:52:11 (читать в оригинале)

Ещё недавно я рассказывал про то, что Yii2 будет использовать PHP 5.3, и вот планы круто поменялись. После публичного обсуждения, а затем и внутрикомандного, было решено, что релиз состоится с минимальным требованием PHP 5.4.

Сначала мы составили список популярных хостингов. После этого стало понятно, что 72% хостингов, которые поддерживают минимальную на тот момент версию 5.3.7, поддерживают и 5.4. А те, что принципиально застряли на 5.2 или 5.3, чаще всего не имеют и 5.3.7. С операционками выходит примерно так же.

Далее пошли в ход плюсы.

Короткий синтаксис массивов и <?= в шаблонах. Да, для фреймворка оно не нужно и это долгое время было аргументом против 5.4. Но мы изначально упустили из вида, что авторам расширений придётся использовать 5.4, что негативно скажется на сообществе.

В 5.3 более не исправляется, начиная с этого Июля. В Июле 2014 PHP 5.3 перестанет получать также и исправления по части безопасности, так что использовать его будет довольно рисково. К тому времени Yii2, как раз, должен начать набирать обороты и если сейчас переход на 5.4 кажется немного рисковым, то через пол года это точно будет верным шагом. Да и с точки зрения маркетинга шаг верный.

Ну и трейты, конечно. Хотя на их счёт ещё есть большие сомнения...



Yii2: перевод сообщений

2013-10-17 02:40:01 (читать в оригинале)

Доделали полностью перевод сообщений. В Yii2 он намного лучше, чем в 1.1. Удалось выкинуть мегабайты данных CLDR и использовать вместо всего этого расширение intl. Синтаксис и возможности поразительные. Например, можно вот так:

echo \Yii::t('app', '{n,number} is spelled as {n, spellout}', array(
    'n' => 42,
));

При переводе эта строка честно выдаст нам 42 проговаривается как сорок два.

echo \Yii::t('app', '{name} is {gender} and {gender, select, female{she} male{he} other{it}} loves Yii!', array(
    'name' => 'Snoopy',
    'gender' => 'dog',
));

Выдаст без перевода Snoopy is dog and it loves Yii!.

Множественные формы также никуда не делись:

echo \Yii::t('app', 'There {n, plural, =0{are no cats} =1{is one cat} other{are # cats}}!', array(
    'n' => 0,
));

Строка перевода будет вот такая:

Здесь {n, plural, =0{котов нет} =1{есть один кот} one{# кот} few{# кота} many{# котов} other{# кота}}!

Не обошлось, правда, без исследования исходника расширения и исправления найденных багов средствами PHP, но результат радует.

  • Черновик документации на тему


Страницы: ... 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 ... 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»
Изменения рейтинга
Категория «Музыка»
Взлеты Топ 5
+382
399
Follow_through
+328
331
שימותו הקנאים
+320
334
Tomas50
+317
357
krodico
+307
359
Ланин Сергей
Падения Топ 5


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