пятница, 4 сентября 2009 г.

Учим сниппет FeedX работать через SSL

На днях по работе столкнулся с необходимостью забирать XML с веб-сервиса, парсить его и показывать на сайте. Так как разработка идёт на MODx, то сразу же решил, что для этой задачи буду пользоваться сниппетом FeedX - готовое решение, которое, к тому же неплохо себя зарекомендовало на других проектах. И всё бы ничего, если бы не одно "но". Веб-сервис, с которым предстояло работать, функционирует через SSL протокол, а FeedX его не понимает.

После беглого поиска выяснилось, что с такой задачей либо никто не сталкивался, либо пожадничал делиться решением :) Так или иначе решения я не нашёл и принялся писать своё. Так как ничего особо сложного в нём нет, то и разжёвывать ничего не буду. Берите и пользуйтесь :)

  1. Модифицируем код сниппета и добавляем в него ещё один параметр - &ssl:
    $params['ssl'] = isset($ssl) ? intval($ssl) : 0;
    // Set &ssl to 1 for SSL support
  2. Далее редактируем feedx.class.inc.php. В строке 275 находим
    // Retrieve and parse feed
    if (function_exists('curl_init'))
    {
    // Use curl to retrieve feed
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $this->config['url']);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $this->config['timeout']);
    $xml = curl_exec($curl);
    if (curl_errno($curl) !== 0) $success = false; // An error occured
    curl_close($curl);
    }
    и меняем на
    // Retrieve and parse feed
    if (function_exists('curl_init'))
    {
    if ($this->config['ssl']==1) {
    // Use SSL cURL call to retrieve feed
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_setopt($curl, CURLOPT_URL,$this->config['url']);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    $xml=curl_exec ($curl);
    if (curl_errno($curl) !== 0) $success = false; // An error occured
    curl_close ($curl);
    } else {
    // Use curl to retrieve feed
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $this->config['url']);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $this->config['timeout']);
    $xml = curl_exec($curl);
    if (curl_errno($curl) !== 0) $success = false; // An error occured
    curl_close($curl);
    }
    }

Вот и всё! Теперь при вызове FeedX-а просто укажите в параметрах &ssl=`1` и сниппет отработает через SSL протокол.

среда, 3 сентября 2008 г.

МИГ-29 ОВТ

Что вы чувствуете, когда смотрите это видео?


среда, 6 августа 2008 г.

Wazzup! в Тимохином исполнении.

Тимоха потихоньку учится всяким гадостям :) Вот его последнее достижение. Те, кто видел старую рекламу пива Budweiser, должны оценить по-достоинству ;)


Wazzup!

пятница, 18 апреля 2008 г.

Малыш пытается стоять!

Сегодня снял на видео, как наш малыш пытается самостоятельно стоять. Он и раньше пытался, но не так часто. Теперь уже каждый день. Скоро пойдёт! Прошу прощения за качество - снимал на мобилку, т.к. некогда было бежать за камерой.


пятница, 4 апреля 2008 г.

День вебмастера!

Сегодня замечательная дата для тех, кто проводит своё время за вёрсткой сайтов! 4 апреля, а если циферками, то 404 :) Поздравляю всех коллег по цеху - профессионалов и любителей с нашим праздником!
Да сверстаются все страницы ваши по воле вашей, да убоится вас HTML с CSS-ом и пусть Ослик смирится и поймёт код ваш так, как сказано в скрижалях W3C, а не так, как решил создатель его - презренный Билли! И да прибудет с вами дух Огненной Лисы!
Ура! И трижды ура тому, что в этом году 404 совпал с пятницей ;)

вторник, 12 февраля 2008 г.

Боулинг со старыми друзьями


Вчера наконец-то встретился со старыми друзьями. Не виделись чёрти сколько лет, а вот вчера собрались и пошли в боулинг кидать шары. Ну и пива попить само-собой, и поговорить. Правда, в боулинге поговорить не очень-то получилось, поэтому разговор продолжили в кабачке под рюмку пива ;) Вооот. Посему пишу сейчас, что называется, без помощи мозга. Кароче. Калтыг, Болик, Сарам! Я был чертовски рад вас видеть! Очень хочется верить, что вы тоже. И очень надеюсь, что мы будем встечаться чаще, чем раз в десятилетие!

пятница, 25 января 2008 г.

Wiimote Project

Сегодня наткнулся не Мембране на статью про совершенно потрясающую технологию. Т.е. я конечно и раньше знал про такие системы, но и про их стоимость я знал тоже. Поэтому изобретение этого студента произвело на меня сильное впечатление. Суть его состоит в том, чтобы использовать встроенную в Wiiremote инфракрасную камеру для трекинга положения пальцев рук (и не только) в пространстве, обработке этой информации и визуализации на экране монитора или даже на спроецированном проектором экране на стене. Советую посмотреть видео на этой странице, чтобы проникнуться. Особенно третий ролик. А дальше... Ну не знаю, как Вы, а я уже просматриваю eBay на предмет покупки Wiiremote (30 фунтов с доставкой - просто смешно!) и качаю необходимый софт с сайта автора. Да, это не глюк - автор действительно выложил софт в открытый доступ! Всё, я пошёл оформлять заказ на eBay :)

понедельник, 3 декабря 2007 г.

VAIO...Соня VAIO

 

Видимо на животных всё-таки сказывается образ жизни их хозяев. Так и моя кошка Сонька, освоив домашний десктоп, решила застолбить и мой Sony VAIO :) Ну да ладно - мы не жадные. Главное теперь, чтобы она не решила попробовать его на вкус ;)
Posted by Picasa

понедельник, 22 октября 2007 г.

Правое полушарие VS левое полушарие

Любопытный тест, позволяющий выяснить, какое полушарие мозга у вас преобладает. Если балерина на картинке крутится вправо, то правое и наоборот. Попробуйте, не пожалеете. Очень интересно. У меня, например, она крутится то в одну, то в другую сторону :)

воскресенье, 30 сентября 2007 г.

Тимофей и WiFi :)

Идём сегодня с женой по улице. Жена налегке, а я везу Тимоху в коляске. Достал свою Nokia E60 и решил просканировать эфир на наличие WiFi сетей. Запускаю Hotspot Finder, начинаю сканирование... Телефон радостным писком сообщает, что найдена WiFi сеть. Смотрю название точки доступа и ухожу в ступор - timotejs. Следующая мысль - фигасе проапгрейдился :) Ну это же надо, чтобы так совпало!

пятница, 28 сентября 2007 г.

Персональная страница на Я.ру

Теперь у меня есть персональная страница на Я.ру — Bug!

Это новый сервис Яндекса, который сейчас проходит ограниченное тестирование и регистрация в нём пока доступна только по приглашениям.

среда, 19 сентября 2007 г.

TeaShark - новый броузер для мобилок


Буквально на днях вышел новый Java броузер для мобильных телефонов. Судя по этой статье, и внешне, и по принципу работы TeaShark практически полный аналог Opera Mini. Я не стал ставить его себе на Nokia E60, так как он ещё не вылез из альфы, но тем не менее собираюсь внимательно следить за его развитием. Возможно из него вырастит достойный конкурент норвежской малютке.

пятница, 14 сентября 2007 г.

Отличная идея для курилки в офисе

На фото под заголовком новости изображена комната для курения в одной из высокотехнологичных фирм Индии (город Мамбай). Если бы на вашем месте работы было такое – захотелось ли вам курить?
Источник: Mobilers.ru

понедельник, 10 сентября 2007 г.

Эволюция: От кошки к...?

Я начинаю подозревать, что старик Дарвин был прав. Сегодня наблюдал, как моя кошка вывернула весь корм из миски в миску с водой (не уронив ни одного куска на пол!) и дотолкала носом её пустую до нашей спальни, где я её и застукал. Мы вместе с женой ржали так, что разбудили мелкого. После чего я перемыл всю её посуду, налил свежей воды и положил свежего корма. Что же будет дальше? Начнёт сама ходить в магазин за хаффчегом и выбирать то, что ей нравится?

среда, 22 августа 2007 г.

Как вертикально выровнять checkbox-ы и текст в label-ах

Задача такова: необходимо выстроить checkbox-ы горизонтально в ряд, обеспечить включение и выключение checkbox-а щелчком на соответствующем label и вертикально выровнять checkbox-ы и label-ы относительно друг-друга. Конечно можно ничего не варавнивать и оставить checkbox-ы и label-ы болтаться в воздухе. Но, согласитесь, что если мы делаем серьёзный сайт, то вопрос о его эстетической стороне оказывается далеко не на последнем месте. Вот о checkbox-овой эстетике мы сегодня и поговорим. Итак, начали.
Во-первых поместим наши checkbox-ы в список:

<div id="CheckboxesLine">
<ul>
<li><label>Select plz:</label></li>
<li><input type="checkbox" id="CB1" /><label for="CB1">Checkbox 1</label></li>
<li><input type="checkbox" id="CB2" /><label for="CB2">Checkbox 2</label></li>
<li><input type="checkbox" id="CB3" /><label for="CB3">Checkbox 3</label></li>
<li><input type="checkbox" id="CB4" /><label for="CB4">Checkbox 4</label></li>
<li><input type="checkbox" id="CB5" /><label for="CB5">Checkbox 5</label></li>
<li><input type="checkbox" id="CB6" /><label for="CB6">Checkbox 6</label></li>
</ul>
</div>

Далее пропишем вот такие стили:

#CheckboxesLine ul {
white-space:nowrap;
padding: 0;
margin: 0;
font-family: Verdana;
font-size: 0.7em;
}
#CheckboxesLine ul li {
display: inline;
white-space:nowrap;
}
#CheckboxesLine ul li label {
vertical-align:middle;
padding-right: 20px;
}
#CheckboxesLine ul li input {
margin-bottom: auto;
vertical-align:middle;
}
#CheckboxesLine ul li:first-child label{
padding-right: 0;
}

Вот и всё. Теперь и в IE, и в FF, и в Opera наши checkbox-ы будут выглядеть одинаково.

пятница, 17 августа 2007 г.

HTML & JavaScript: Как сделать свои radiobutton при помощи AJAX

Вас устраивают стандартные радиокнопки? Если также, как и меня-нет, то вот простое решение-заменим их на картинки. Это позволит нам с лёгкостью подгонять радиокнопки под любой дизайн сайта. Ну что, поехали:

<script language="javascript">
// Эту функцию я использую всегда во всех скриптах.
// Она решает вопрос поиска объекта по id во всех броузерах.
function getElement(aID){
return (document.getElementById) ? document.getElementById(aID) : document.all[aID];
}
function SwitchRadio(liObj,Id){
// Получаем id нужного списка радиокнопок <ul>
var ulName=liObj.parentNode.id;
// Получаем массив со всеми элементами <li>, входящими в наш список
var orderedNodes = getElement(ulName).getElementsByTagName("li");
// Переключаем все кнопки в положение "выключено"
for (i=0; i<orderedNodes.length; i++){
orderedNodes[i].style.background="url(images/radio_off.gif) 0 2px no-repeat";
}
// Теперь включаем нашу кнопку...
liObj.style.background="url(images/radio_on.gif) 0 2px no-repeat";
// ...и передаём через ajaxagent её данные PHP-скрипту,
// который запишет их в сессию.
agent.call("aa_func.php", "AA_SaveFieldValue", "callback_SaveFieldValue", ulName, Id);
</script>
}

В коде страницы пишем что-то типа этого:

<ul id="Q1" class="questionsUL">
<li onClick="javascript:SwitchRadio(this,'1')">Вариант 1</li>
<li onClick="javascript:SwitchRadio(this,'2')">Вариант 2</li>
<li onClick="javascript:SwitchRadio(this,'3')">Вариант 3</li>
</ul>

А в стилях:

.questionsUL {
padding: 0;
margin: 0 0 0 20px;
}
.questionsUL li {
list-style: none;
margin: 0;
padding: 0;
background: url(images/radio_off.gif) 0 2px no-repeat;
padding: 0 0 5px 20px;
margin: 0;
cursor: pointer;
}

radio_on.gif и radio_off.gif - это наша кнопка. Соответственно включённая и выключенная. Стили прописаны для картинки с кнопкой размерами 10x10 пикселей.

понедельник, 13 августа 2007 г.

То ли примета, то ли афоризм

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

вторник, 7 августа 2007 г.

Путешествие в Финдяндию. 14.07.2007-29.07.2007

Фото-отчёт о нашем путешествии в Финляндию можно посмотреть здесь

вторник, 5 июня 2007 г.

До чего доводит креативное мышление

Вчера поздно пошёл спать. Жена с мелким уже дрыхли в обнимку.
Забрался в постель, жена проснулась, присела на кровати и давай шарить по покрывалу.
И вот такой диалог у нас получился:

я: ты чего делаешь?
она: яйцо поставь
я: чееееее?
она: яйцо говорю поставь
я: какое нах яйцо?
она: ну не твоё конечно! куриное!
я: Ээээээ....
она: ну яйцо, треснутое, а оттуда цыплёнок
я: ты о чём вообще?
она: блиииин! яйцо. треснутое. оттуда цыплёнок выходит!

Вобщем до меня не сразу дошло, что ей приснился логотип для сайта.
А она не сразу въехала, что уже не спит и мы в реале разговариваем.
Креативная у меня жена. Менделеев, блин! :)