<rmcreative>

RSS

Все заметки с тегом «mystuff»

  1. enum в PHP

    12 мая 2008

    Часто приходится иметь дело с определённым набором значений-параметров, которые можно передать какому-либо методу. Многие просто используют для этого строковые значения:

    class Rights {
      function check($role, User $user){
        return $user->role == $role;
      }
    }
    Rights::check('adminisrator', $me);

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

    Одно из возможных решений — завести псевдо-enum класс Roles:

    class Roles {
      const ADMINISTATOR = 'administrator';
      const USER = 'user';
    }
     
    class Rights {
      function check($role, User $user){
        return $user->role == $role;
      }
    }

    Теперь вызов метода будет выглядеть так:

    Rights::check(Roles::ADMINISTATOR, $me);

    В случае описки компилятор нас предупредит.

    7 комментариев
  2. Sitemap. Класс для PHP5

    2 апреля 2008

    sitemaps.org:

    С помощью файла Sitemap веб-мастеры могут сообщать поисковым системам о веб-страницах, которые доступны для сканирования. Файл Sitemap представляет собой XML-файл, в котором перечислены URL-адреса веб-сайта в сочетании с метаданными, связанными с каждым URL-адресом (дата его последнего изменения; частота изменений; его приоритетность на уровне сайта), чтобы поисковые системы могли более грамотно сканировать этот сайт.

    Читаем

    27 комментариев
  3. replaceAll для JavaScript

    18 марта 2008

    Думаю, многим нехватает в JS такой простой функции, как заменить все вхождения в строке на что-либо. Если это так — у меня для вас подарок.

    String.prototype.replaceAll = function(search, replace){
      return this.split(search).join(replace);
    }

    Пример использования:

    alert("test string... test string!".replaceAll('test', 'a'));
    16 комментариев
  4. HTML-капча

    7 марта 2008

    Давно я не писал о защите от спама. Прошлая моя задумка хоть и является до сих пор достаточно эффективной, но особо активные боты её всё-таки обходят. Где-то в начале прошлого месяца у меня появилась идея нестандартной капчи: ASCII-капча, но в процессе реализации она как-то очень плавно перетекла в HTML-капчу.

    Читаем

    28 комментариев
  5. base_url в CodeIgniter

    26 февраля 2008

    Есть в CI в файле конфигурации config.php некая настройка: $config['base_url'], которая задаёт базовый URL для сайта. Нужна она тогда, когда сайт находится в подпапке.

    В большинстве случаев значение совпадает с корнем домена, так что можно сделать так:

    $config['base_url'] = 'http://'.$_SERVER['HTTP_HOST'].'/';

    Так нам не придётся менять конфигурацию при переносе с локальной машины на сервер.

    p.s. немного вкусненького. Выложил php.a. Номера с 2002 по 2007. Последний год неполный. Если спросит, волшебное слово — gift.

    Если кому всё ещё нужны — говорите ;)

    Комментировать
  6. CodeIgniter. Повышаем удобство и безопасность.

    18 февраля 2008

    Из соображений безопсасности, да и просто так для удобства полезно переместить папки с приложением и ядром CI так:

      public_html - корень сайта
      system - ядро CI
      app - наше приложение
    
    

    Для этого после перемещения самих папок надо отредактировать index.php в корне сайта так:

    $system_folder = '../system';
    $application_folder = '../app';
    1 комментарий
  7. CodeIgniter. ife

    18 февраля 2008

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

    function ife($var, $default='') {
      if (!empty($var)){
        return $var;
      }
      else{
        return $default;
      }
    }
    Комментировать
  8. IE6. Прыгающая textarea, растянутая на 100%

    17 декабря 2007

    Когда первый раз увидел - был в шоке :)

    Итак, если потянуть textarea на 100% (надо, чтобы у нас была ещё колонка справа, что вполне типично), то IE6 начнёт сходить с ума при вводе текста. А именно потянет нашу textarea куда-то вправо.

    Фиксится это дело обрамлением textarea любым блочным элементом, например fieldset, и заданием ему width: 100%.

    Комментировать
  9. Cake PHP: Расширение модели для валидации уникальных полей

    17 декабря 2007

    Меня очень напрягало в Cake 1.1 то, что не было никаких средств проверки поля модели на уникальность. В Cake 1.2 добавили isUnique, но вот только забыли про то, что хорошо бы было добавить ещё один магический массив вроде $validate в модели.

    Читаем

    Комментировать
  10. Веб-дизайнеру на заметку

    3 декабря 2007

    Данная статья содержит некоторые советы веб-дизайнерам. Именно веб-дизайнерам, а не просто дизайнерам. Сам я не дизайнер, поэтому учить, как создавать дизайн я не собираюсь. Цель этой статьи — обозначить возможности вёрстки для веб.

    Читаем

    3 комментария