1С-Битрикс: Управление сайтомНа главную страницу
Клиентам
Маркетплейс
Партнерам
Разработчикам
Интеграция с 1С
Идея?


Личный кабинет
Авторизоваться
Регистрация
(войти) Корзина
Логин:

Пароль:



Забыли свой пароль?
Регистрация
Войти как пользователь:
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
ВКонтакте
Мой Мир
Twitter
Facebook
Google
Livejournal
Яндекс
Rambler
Mail.Ru
Liveinternet
Blogger
OpenID
Используйте вашу учетную запись VKontakte.ru для входа на сайт.
Используйте вашу учетную запись Мой Мир@Mail.ru для входа на сайт.
Используйте вашу учетную запись на Twitter.com для входа на сайт.
Используйте вашу учетную запись на Facebook.com для входа на сайт.
Используйте вашу учетную запись Google для входа на сайт.
.livejournal.com
@yandex.ru
@rambler.ru
@mail.ru
http://www.liveinternet.ru/users/ /
.blogspot.com
OpenID:
  • Документация
    • Управление сайтом
    • Корпоративный портал
    • .NET Forge CMS
    • Отраслевые решения
    • Marketplace
    • Аренда приложений (SaaS)
  • Обучение и сертификация
    • Онлайн-курсы и сертификация
    • Учебные центры
    • Мое обучение
    • Учебные видеоролики
  • Центр поддержки
    • Поддержка
    • FAQ
    • Мои обращения
  • Сообщество
    • Блоги Битрикс
    • Блоги веб-разработчиков
    • Общие форумы
    • Веб-разработчики
      • Моя страница
      • Мои сообщения
      • Группы
      • Найти коллег
  • Cтатьи
    • Архив
Главная / Общение / Сообщество разработчиков / Емельянов Алексей / Блог
  • Новая версия
  • Работа с характеристиками
  • Выгрузка скидок
  • Разбивка на каталоги
  • Свойства и изображения
  • Производительность

Емельянов Алексей: Блог

Профиль
Друзья
Группы
Форум
Блог
Микроблог
  • Сейчас на сайте

Емельянов Алексей

Дата последнего входа: 21.05.2012 11:03:50
Наименование компании: LEBRAND Creative Russia

Amazon EC2 - IM LOVIN IT !!!!

0
Емельянов Алексей
13.06.201117:5113.06.2011 17:51:57
До этого момента думал, что счётчик бенчмарка ограничен сверху сотней - ан нет. На EC2 выдал 102 попугая! Особо ничего не настраивал, поставил только мускул и zend ce. 



Инстанс - micro(57$ за год).

Загрузка плеера
Емельянов Алексей
13.06.201117:5113.06.2011 17:51:57
Просмотров:1642 Комментариев:6 0
Теги: amazon, ec2

Решаем проблему аякса битрикса в IE9

2
Емельянов Алексей
13.04.201121:0313.04.2011 21:03:41
Предыстория: звонит клиент, и говорит: "Не могу значит оформить заказ в вашем интернет магазине, я его оформляю..., а он никак...". Спрашиваю - "Какой браузер?" - и с удивлением слышу ответ: "Интернет Эксплерер 9". Пауза... как же так... Лезу выяснять и действительно в компоненте "bitrix:sale.order.ajax", при изменении свойства типа "[LOCATION] Местоположение" происходит аяксный запрос, обновляющий страницу. Вот во время него в ie9 происходит ошибка в javascript'е "Исключение брошено и не поймано".






Происходит оно вот здесь:

Код
if (this.currentBrowserDetected == 'IE')
        this.obAJAXIndicator = document.createElement('<input name="AJAX_CALL" type="hidden" />');
else
{
        this.obAJAXIndicator = document.createElement('INPUT');
        this.obAJAXIndicator.type = 'hidden';
        this.obAJAXIndicator.name = 'AJAX_CALL';
}
в строке: 
Код
document.createElement('<input name="AJAX_CALL" type="hidden" />');
 - ie9 теперь так не может.


p.s. Такая проблема поднималась здесь:http://msdn.microsoft.com/en-us/library/ms536389(v=vs.85).aspx, в блоке "Community Content":

Цитата
IE9 Document Mode Do Not Support Non-Standard Method.
In IE9 document mode, the following code cannot be executed:

var div = document.createElement("<div>");

I tested in the Platform Preview version of IE9.


Вылечил это "пропатчив" файлик "/bitrix/js/main/ajax.js" следующим образом:

1. код в строках 326 - 333:
Код
if (this.currentBrowserDetected == 'IE')
        this.obAJAXIndicator = document.createElement('<input name="AJAX_CALL" type="hidden" />');
    else
    {
        this.obAJAXIndicator = document.createElement('INPUT');
        this.obAJAXIndicator.type = 'hidden';
        this.obAJAXIndicator.name = 'AJAX_CALL';
    }
заменить на
Код
if (this.currentBrowserDetected == 'IE')

{
     try{
      this.obAJAXIndicator = document.createElement('<input name="AJAX_CALL" type="hidden" />');
     } catch(e) {
      this.obAJAXIndicator = document.createElement('INPUT');
      this.obAJAXIndicator.type = 'hidden';
      this.obAJAXIndicator.name = 'AJAX_CALL';
     }
}
else
{
     this.obAJAXIndicator = document.createElement('INPUT');
     this.obAJAXIndicator.type = 'hidden';
     this.obAJAXIndicator.name = 'AJAX_CALL';
}   


2. код в строках 341 - 344:
Код
if (this.currentBrowserDetected == 'IE')
    this.obFrame = document.createElement('<iframe name="' + frameName + '"></iframe>');
else
    this.obFrame = document.createElement('IFRAME');
заменить на
Код
if (this.currentBrowserDetected == 'IE')
{     
   try
   {       
      this.obFrame = document.createElement('<iframe name="' + frameName + '"></iframe>');      
   } 
   catch(e) 
   {       
      this.obFrame = document.createElement('IFRAME');      
   } 
}
else     
   this.obFrame = document.createElement('IFRAME');


p.s. техподдержка в курсе, скоро выпустят апдейт.
Емельянов Алексей
13.04.201121:0313.04.2011 21:03:41
Просмотров:823 Комментариев:3 2
Теги: AJAX, ie9

Стартапам посвещается! (супер-видео, всем смотреть и запоминать)

0
Емельянов Алексей
04.05.201013:5304.05.2010 13:53:48
http://www.alpina.ru/book/1004/
Емельянов Алексей
04.05.201013:5304.05.2010 13:53:48
Просмотров:921 Комментариев:8 0

Ресайз картинок на лету

1
Емельянов Алексей
16.03.201014:5016.03.2010 14:50:27
Задача - в каталоге у элементов есть большие картинки, нужно выводить несколько их превьюшек разного размера(для каждого элемента по три штуки). Обойти весь каталог скриптом и на генерировать маленькие картинки не вариант(по политическим причинам).

Решение - resize на лету.

Проблемы - нагрузка на железо.

Как выкручивался:

В качестве точки старта выбрал готовую функцию CIBlock::ResizePicture(). Создал скрипт resize.php который будет возвращать браузеру уменьшенную картинку:



i - id картинки в b_file
h - высота
w - ширина

В этот скрипт помещаем нашу функцию, вокруг которой и будут происходить танцы с бубном. Перво-наперво, на всякий случай выключим всё не нужное - define("SM_SAFE_MODE", true) и очистим вывод $APPLICATION->RestartBuffer(). Для каждого типа изображения добавляем хедер - header("Content-type: image/jpeg") - для каждого свой! Теперь уменьшим нагрузку (только если есть frontend) -

header("Pragma: public");//может кэшироваться всеми (прокси-серверами тоже)

header("Cache-Control: max-age=100000000");//закэшируем на сто тысяч мильонов лет


Нюансы: злоумышленники перебирая параметры i и h и w могут заполнить кэш проксирующего сервера, да и вообще сделать не нужную нагрузку на сервер. Решение проблемы - кодировать передаваемые параметры (двустороннее кодирование!):



- ещё хорошо бы ограничить максимальные значения h и w.


пример можно взять здесь, а красиво посмотреть здесь
Емельянов Алексей
16.03.201014:5016.03.2010 14:50:27
Просмотров:3642 Комментариев:10 1

Мисс Россия 2010

0
Емельянов Алексей
02.03.201017:2602.03.2010 17:26:00
Ура! Мы это сделали! - наконец открыли сайт missrussia.ru, учитывая, что конкурс будет проходить 6го марта, то можно сказать впрыгнули в последний вагон!

p.s.1. Особенно горжусь галереей http://missrussia.ru/press/gallery/
p.s.2. красотища - http://missrussia.ru/press/gallery/detail/22/

Если будет интересно, то напишу мануальчик как сделать эффект плавного проявления изображений, после их загрузки, который будет нормально работать в опере.
Емельянов Алексей
02.03.201017:2602.03.2010 17:26:00
Просмотров:1582 Комментариев:27 0
Теги: missrussia.ru, Мисс Россия 2010

html5 похоронит flash?

0
Емельянов Алексей
26.02.201014:2926.02.2010 14:29:04
Сначала оцените грядущие возможности - http://www.chromeexperiments.com/, оценили? Html5 всё больше вытесняет flash, единственное что пока защищает позиции flash'a так это ie, но всё изменится когда придёт он - ie9 (если и в нём не будет поддержки html5 draft, тогда я первый microsoft придам анафеме, выкину свой thinkpad и куплю macbook).

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

Что может спасти adobe? поддержка web-камер и микрофона? аппаратное ускорение? - не думаю, всё это очень быстро может быть навёрстано производителями браузеров, путём добавления в javascript дополнительного api, аппаратное ускорение графики в браузерах обещает даже microsoft, что говорить о webkit'e и gecko. В довершении google анонсировал технологию websoket, которую тут же все поддержали, начиная от apache'a и заканчивая mozilla'ой, и включили её в черновую версию html5. Youtube и Vimeo уже запустили бета-тестирование своих сервисов с поддержкой потокового видео h.264 - flash потеряла главный козырь! Зачем нам ActionScript, если уже есть Javascript?

Какое будущие может быть у flash'а как у технологии? НИКАКОГО! всем надоели эти прослойки, дополнения, плагины, расширения, в Опу их всех! я за единый стандарт!


p.s. особенно понравились ball_pool, colorscube (куб можно вращать!), depth_of_field, cloth

p.p.s.s. смотреть лучше chrome'ом
Емельянов Алексей
26.02.201014:2926.02.2010 14:29:04
Просмотров:1741 Комментариев:11 0
Теги: flash, html5

Я провафлил конференцию!

0
Емельянов Алексей
04.02.201015:4704.02.2010 15:47:25
Есть ли у кого-нибудь запись online трансляции?

p.s. готов купить.
Емельянов Алексей
04.02.201015:4704.02.2010 15:47:25
Просмотров:971 Комментариев:4 0

Canvas 3d

0
Емельянов Алексей
01.02.201012:5701.02.2010 12:57:28
Как то раз наткнулся я на забугорную статью про светлое будущие canvas и WebGL, и была в этой статье картинка с "3d чайничком" нарисованном c помощью canvas'a, поразила она меня ну прям ващеее, понял я что должен сделать нечто подобное, и сделал.



Экспорт модели происходит прямо из 3ds max, через ASCII Scene Export.



Должно работать во всех последних браузерах. В демку добавил "спидометр" или "FPSмометр" или "FPSметр", ну вы поняли - в вверху справа, "текущий FPS" - опредаляяется по последним 10и рендерам, а "средний" по всем рендерам с самого начала работы скрипта, серез пару минут среднее значение перестает колебаться и показывает истинное значение скорости работы браузера. У меня расстановка сил следующая: Chrome 4: 25.2, Opera 10: 17.8, FF 3.6: 16.8, IE 8: 0.7, iPhone 0.7 (тестовая машина Core2Duo7300 4gb Win764), Очень интересно узнать ваши результаты smile:)

Какое будущие у этой технологии? Кто-то видит в этом основу для будущих онлайн игр, кто-то конкурента флешу, кто-то ненужный тег в html, а как вы считаете?

ссылки по теме:
http://ru.wikipedia.org/wiki/Canvas_(HTML)
https://developer.mozilla.org/ru/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_canvas
Емельянов Алексей
01.02.201012:5701.02.2010 12:57:28
Просмотров:1627 Комментариев:10 0
Теги: 3d, Canvas

модуль BitrixTables или "я ненавижу SQL" Часть 2

0
Емельянов Алексей
13.12.200923:1413.12.2009 23:14:17
В продолжении предыдущего поста публикую маленькое видео работы модуля. Ссылка на vimeo или полная версия(хорошее качество)


Загрузка плеера




Взять его можно здесь.

UPD мистичечким образом vimeo вырезал из видео курсор, посему советую смотреть полную версию
Емельянов Алексей
13.12.200923:1413.12.2009 23:14:17
Просмотров:1635 Комментариев:15 0

модуль BitrixTables или "я ненавижу SQL"

0
Емельянов Алексей
17.11.200913:4917.11.2009 13:49:00
API модуля


<?

class CColumn//столбцы таблицы
{
function err_mess()

function Add( $table_name, $fields_new )//добавляет новое поля (можно передовать как массив так и одно значение)

function Update( $table_name, $fields_new )//обновляет $fields_new в таблице $table_name

function Delete( $table_name, $fields )//удаляет столбец $fields в таблице $table_name

function Check_Field( $key, $fields )//проверяет присутствует ли поле $key в полях $fields

function GetList( $table_name )//возвращает список полей таблицы $table_name
}



class CRow//строки таблицы
{
function err_mess()

function Check_Value( $val )//проверяет значение на корректость

function Get_Field_Type_For_Bitrix_API( $type )

function GetList( $table_name, $order, $arFilter=Array(), &$is_filtered )//возвращает список (массив) всех строк отсортированных $arOrder и отфильтрованных $arFilter

function Add( $table_name, $arFields=Array() )//добавляет новую строку в таблицу $table_name с полями $arFields

function Delete( $table_name = false, $id = false )//удаляет строку в таблице $table_name с $id

function Update( $table_name = false, $id = false, $arFields = array() )//обновляет строку в таблице $table_name с полями $arFields
}


class CTable//таблицы
{
function Table_exists( $table_name )//проверяет наличие таблицы $table_name

function Add( $table_name )//добавляет новую таблицу $table_name

function GetListArray( $arOrder )//возвращает список (массив) всех таблиц отсортированных $arOrder

function GetList( $arOrder )//возвращает список (CDBResult) всех таблиц отсортированных $arOrder

function Update( $old_table_name, $new_table_name )//переименовывает таблицу

function Delete( $table_name )//удаляет таблицу
}

?>


coming soon...
Емельянов Алексей
17.11.200913:4917.11.2009 13:49:00
Просмотров:1014 Комментариев:8 0

Как красивше распечатать массив

1
Емельянов Алексей
05.06.200918:2005.06.2009 18:20:14
Доброго времени суток, %user_name% !

Очень часто приходится смотреть, что же нам вернул *::GetList(), а возвращает он нам обычно большущий массив. Думаю наверно все распечатывают массивы как-нибудь вот так:

Код
[COLOR=#FF00FF]<?[/COLOR]
     [B]echo[/B] [COLOR=#00CC00]“<pre>”[/COLOR];
     [B]print_r[/B]([COLOR=#FF0000] $ARRAY [/COLOR]);
     [B]echo[/B] [COLOR=#00CC00]“</pre>”[/COLOR];
[COLOR=#FF00FF]?>[/COLOR]


― просто и быстро, но не очень удобно когда массив длинною на десять экранов, как раз для таких случаев написал функцию pre(), которая выведет массив в читабельном виде –





Подключить её оч просто - в ините инклудим файл с реализацией и далее что бы вывести на экран массив - пишем:

Код
[COLOR=#FF00FF]<?[/COLOR]
     
     [B]pre[/B]( [COLOR=#FF0000] $ARRAY [/COLOR] );
     
[COLOR=#FF00FF]?>[/COLOR]


никаких стилей, картинок, javascript'ов не нужно, всё находится в pre_0.2.1.php

Взять это чудо можно здесь - http://code.google.com/p/preview-array/downloads/list текущая версия pre_0.2.1.php

P.S. разумная критика приветствуется.
P.S.S. планирую выпустить версию с подробными комментариями, для желающих покапаться в коде и переделать под себя
Емельянов Алексей
05.06.200918:2005.06.2009 18:20:14
Просмотров:2247 Комментариев:15 1
Теги: pre array

Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».
 
Технологии Эрмитаж
BitrixMobile
Автокеширование
SiteUpdate
Производительность Виртуальная машина
Веб-окружение
Результаты тестов
Выбрать хостинг
Веб-кластер
Безопасность Проактивная защита
Веб-антивирус
Аутентификация

Контакты Поиск Карта сайта
Телефон: +7 (495) 229-14-41
Оставайтесь с нами: Facebook Twitter Habrahabr VKontakte Developers Google 1+
Как распознать QR код?Контакты QR


© 2001-2012 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом.
Английская версия Немецкая версия