Илья Кригоузов Привет, меня зовут Илья Кригоузов и я занимаюсь информационными технологиями с 2005 года. Под такими технологиями я понимаю довольно широкий круг вещей: сайты любой сложности, базы данных и клиент-серверные приложения.
Закончил МИРЭА по специальности «инженер-математик», практику проходил на концерне радиостроения ОАО «Вега».Работаю в Информационных системах для бизнеса, так же сотрудничал с АйТи-агенством.
В свободное время увлекаюсь фотографией. Найти меня вы можете:
Показаны сообщения с ярлыком php. Показать все сообщения
Показаны сообщения с ярлыком php. Показать все сообщения

16 сентября 2011 г.

Разрешения друпала

Все время хочу использовать стандартные права доступа друпала в хуке hook_menu() и все время забываю. Поэтому сделаю запись сюда. Данные права необходимо указывать в качестве элемента массива аргумента access arguments:

  • access content — допуск к контенту будет у тех групп пользователей, у которых есть доступ ко всему контенту сайта;
  • access administration pages — доступ будет у тех пользователей, у которых есть доступ в раздел администрирования.

Пример реализации хука меню:

function analadvanced_menu()
{  
    $item['analadvanced'] = array(
        'title'   => 'Продвинутая аналитика',
        'page callback' => 'analadvanced_cookie_value',
        'access arguments' => array('access content'),
    );
    return $item;
}

28 мая 2011 г.

НТК МИРЭА №60

На днях принимал участие в научно-технической конференции, шестидесятой по счету. В общем-то нужно мне это было для галочки, как и моему университету, потому что нигде и никому о ней не сообщали. Но на удивление, среди докладов поднимались интересные темы, да и вообще неплохо расширило мой кругозор.

Лично я сравнивал перспективы использования в образовательных целях различных систем управления конетнтом, а так же построение таких систем на готовых платформах. Если кому-то поможет, то буду очень рад.

Интересно было послушать про применение RFID в различных областях, а так же обзор C++ библиотеки, которая строить и жить помогает — poco. Последняя довольно маленькая, но очень функциональная, а главное позволяет легко портировать приложения под различные платформы.

1 мая 2011 г.

Умное обрезание строк в php

Для вывода осмысленного текста ссылки вместо стандартного «Далее» или «Подробнее» в тизере нужно было реализовать функцию, которая сможет урезать строку по словам. В необъятных просторах нашел готовое решение, но оно мне не понравилось, поэтому сделал свое. Чтобы не томить торопящихся сразу приведу реализацию:

function smart_cut($text, $words = 3, $separator = ' ')
{
    $current_pos = 0;
    for($i = 0; $i < $words; $i++)
    {
        $current_pos = strpos($text, $separator, ($current_pos + 1));
    }
    return substr($text, 0, $current_pos);
}
Принимает три параметра, обязательный только первый:
  1. Текст, над которым будет производиться манипуляция;
  2. Количество слов, после которого строка будет обрезана;
  3. Разделитель слов в исходном тексте.
Вернет функция строку. Кому интересны подробности и сравнения, прошу под кат.

30 апреля 2011 г.

Как узнать ip пользователя

В php глобальная переменная $_SERVER хранит реальный ip-адрес пользователя. Чтобы попытаться справиться с подменой использую такое решение:
function get_ip()
{
     $ip = $_SERVER["REMOTE_ADDR"];
     if(isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
     {
          if(isset($_SERVER["HTTP_X_REAL_IP"]))
               $ip = $_SERVER["HTTP_X_REAL_IP"];
          else
               $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
     }

     return $ip;
}

29 апреля 2011 г.

Очистить в Drupal кэш для одной ноды

У друпала всегда включен кэш. Даже если в настройках отключено кэширование, сайт все равно будет кэшировать данные, хоть и в меньшем объеме. По большому счету это правильно, но иногда возникают моменты, когда нам это неудобно.

Например у наст есть тип материала «профиль» (не важно, сами мы его сделали с помощью CCK или использовали модуль Content profile) и в профиле есть какое-то поле, которое мы изменяем программно, с помощью модуля. Результат нашего изменения мы не увидим, пока не очистим кэш. Согласитесь, не очень удобно.

Для того чтобы видеть изменения моментально, мы будем очищать кэш при каждом изменении значения поля профиля. Я не буду пользоваться стандартным API, поскольку он может очистить больше, чем нам нужно, а при большом объеме данных это отрицательно скажется на производительности.

17 апреля 2011 г.

Программируй так

За какие-то грехи мне досталось задание на практике — разобраться с самописной CMS кафедрального сайта. Мало того, что это полностью процедурная неповоротная штука на несколько сотен файлов, так еще и под старым PostgreSQL, нормальных бэкапов под который не осталось. Проблемы с переносом кое-как удалось решить.
Но вот что можно сказать о людях, которые над этим работали? Достаточно взглянуть на третью вызываемую функцию:
if ($limit == '') $limit = '';
В общем, все стало сразу ясно.

7 марта 2011 г.

Drupal латинские буквы и цифры в имени пользователя

Для однозначной авторизации через программу-клиент в одном проекте, реализуемом на друпале, потребовалось установить ограничение на вводимое имя пользователя, указываемое при регистрации.
Для решения задачи отлично подошел модуль Custom username validation. Единственной его функцией является проверка введенного пользователем имени на соответствие регулярному выражению, заданному в настройках модуля.
В настройках нужно указать регулярное выражение, подпись под полем логина, которая заменит стандартную, выведенную друпалом. Так же можно задать сообщение об ошибке и проверить  работу заданного выражения.

Для того, чтобы в друпале в качестве имени пользователя можно было использовать только латинские буквы, цифры и дефис воспользуйтесь вот этим регулярным выражением: /^[-a-zA-Z0-9]+$/

16 февраля 2008 г.

.masterhost: бочка дегтя в ложке меда

masterhostПо причине нехватки места для ПРИМАТКО ОРГ было принято решение о покупке нормального, качественного и надежного виртуального хостинга. Пусть даже дорого, но выбор пал на довольно разрекламированный .masterhost, в частности на тариф "Эффективный". Очень большие возможности на первый, и даже на второй взгляд, НО: покупая хост у этой компании будьте готовы сразу к мегонеудобной и медленной панели управления (думать о совершенстве, как минимум, C-panel даже забудьте), и самый главный подводный камень - лимит загрузки.
Этот параметр в условиях приобретения виртуального хостинга нигде не описан, но на требование увеличить параметры php.ini, например upload_max_filesize и post_max_size получил ответ от саппорта:
Вы можете добавить в .htaccess строки:
php_value upload_max_filesize 10M
php_value post_max_size 10M
Это увеличит объем загружаемых файлов до 10 мегабайт - больше на виртуальном хостинге загрузить нельзя.

Всего доброго.
Вот вам и всего доброго. Для меня например эти параметры очень критичны, и должны составлять как минимум 32 М.

25 января 2008 г.

IPB: удалить копирайты и title

Очень часто у владельцев форумов IPB возникает вполне естественный вопрос: "Как удалить в названии форума 'Powered by Invision Power Board'?"
Действительно неприятная штука, которая находится в тегах title. Замечу, что удаление этой надписи в тайтле не нарушает условий лицензии. Как это сделать:
1) открываем файл sources/action_public/boards.php
2) ищем переменную $cp и удаляем ее значение.

22 января 2008 г.

Интернет-решебник по физике (Чертов - Воробьев)

Вступление


Как типичный студент технического ВУЗа, для которого такой предмет как физика был и остается страшной загадкой, я все время искал способы "решения" задач при полном отсутствии знаний. По статистике, большинство задач попадаются из нелюбимого "Задачника по физике" Чертова и Воробьева. Конечно, о существовании такого сайта как irodov.nm.ru я знал давно, но списывать оттуда не очень удобно: необходимо знать номер задачи (а для этого приходится иметь при себе сам задачник), да и решений многих задач там попросту нет.

Решение


Найдя в сети интересный сайтик с решениями практически всех задач из вышеукзанного задачника (хотя многие сетуют, что там есть ошибки), а самое главное - с условием в текстовом формате.
И тут у меня родилась интересная мысль. Сделав по-быстрому бэкап этого сайта себе на хард я принялся ковыряться в HTML-тегах этих страниц. И честно говоря был очень огорчен. Страницы видимо создавались html-редактором а-ля MS Front Page и имели дикое количество ненужных тегов, соответственно и весили много. Но это уже мои заморочки, автору и на том спасибо, что условия в текст перегнал.

Реализация


Закинув задачи к себе на хост, принялся оптимизировать интерфейс. Главную страницу сделал максимально легкой и удобной для использования мобильными браузерами (IE, Opera Mobile, Net Front). Только текст и ничего более. На мой взгляд получилось очень оптимально.

Поиск


Но все же это дело не решало основной проблемы - поиска задач по условию. Поэтому, пришлось применить кое-какие знания php. Написал индексируемый поиск. Ищет он в своем индексном файле (что происходит раз в 40 быстрее, нежели бы он искал постранично), а результаты сортируются по релеватности.
В строке поиска настоятельно рекомендуется указывать ключевые слова без знаков препинания (в индексе знаки удаляются), и слова указывать наиболее уникальные на ваш взгляд.

Так что добро пожаловать: oniksfly.md8.ru/chertov.