Самые комментируемые за месяц

Определение города по ip-адресу для вывода в шаблонах 1С-Битрикс

5 июля 2013, 9:55

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

Еще один пример который в последнее время часто используется на интернет-магазинах. В карточке товара выводится блок о доставке товара в город который определяется по ip адресу посетителя.

Итак, чтобы реализовать этот функционал в 1С-Битрикс на вашем сайте заходим по адресу /bitrix/php_interface и открываем файл init.php

Добавляем в него такие функции:

<?
function get_city_by_ip($ip){
  $data = file_get_contents_timeout("http://ipgeobase.ru:7020/geo?ip=".$ip);
  if($data){
    $xml = simplexml_load_string($data);
    return $xml->ip->city;
  }else{
    return "Москва";
  }
}

function file_get_contents_timeout($filename, $timeout=3)
{
  if(strpos($filename,"://")===false) return file_get_contents($filename);
  if(!function_exists("curl_init")) return false;
  $session=curl_init($filename);
  curl_setopt($session,CURLOPT_MUTE,true);
  curl_setopt($session,CURLOPT_RETURNTRANSFER,true);
  curl_setopt($session,CURLOPT_CONNECTTIMEOUT,$timeout);
  curl_setopt($session,CURLOPT_TIMEOUT,$timeout);
  curl_setopt($session,CURLOPT_USERAGENT,"Mozilla/5.0 (compatible)");
  $result=curl_exec($session);
  curl_close($session);
  return $result;
}
?>

Но правильнее будет добавить эти функции не в сам файл init.php, а подключить к нему другой файл, например functions.php и уже в него вставить эти функции.

Подключить файл functions.php можно используя в файле init.php такой код:

<?if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/functions.php"))
		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/functions.php");
?>

В данном случае я положил файл functions.php в папку /bitrix/php_interface/include/

Это более правильный подход, так как вы можете подключать множество файлов, которые добавляют различный функционал, к примеру обработчики событий могут лежать в файле events.php, а агенты в файле agents.php

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

<div class="order-info">
   <?$city = get_city_by_ip($_SERVER["REMOTE_ADDR"]);?>
   <?if($city=="Москва"){?>
   <p><strong>Бесплатная доставка по Москве!</strong></p>
   <?}else{?>
   <p><strong>Быстрая доставка в город <?=$city?>!</strong></p>
   <?}?>
</div>

Итак, если пользователь в Москве, то ему будет выведено сообщение «Бесплатная доставка по Москве!». Если определился любой другой город, то пользователь увидит сообщение «Быстрая доставка в город {НАЗВАНИЕ ГОРОДА}».

Надеюсь данная информация будет полезна.

Лучшие аналоги Windows программ на Mac OS X

6 августа 2012, 15:10

Пол года назад, после долгих раздумий и взвешивания всех плюсов и минусов, я решился на переход с Windows на Mac OS. Поначалу было непривычно, но теперь система OS X стала родной и удобной. Конечно, то, что ничего в компьютерах apple не тормозит и не глючит — сказки продавцов-консультантов в магазинах, ведь это такая же машины, её тоже делали люди и как мы знаем ничего идеального не бывает. Но в целом Mac OS X в разы стабильнее любой версии Windows.

За пол года использования система зависала только один раз, точно не помню причину, кажется я пытался поставить какую-то сомнительную программу... и Mac OS это не понравилось. Все работает очень стабильно, именно так как и должно... и не приходится постоянно нервничать и искать причины почему та или иная функция или программа не работает так как надо.

Теперь когда мне периодически приходится иметь дело с windows на моем старом ноутбуке, после 15 минут работы у меня начинают шалить нервы и хочется кинуть его в стену :)

Итак, полгода назад я купил iMac 27, модель 2011 года с 4 Гб оперативной памяти, 1 Тб жестким диском и Core i5 процессором 2,7 Ггц. После нескольких недель использования стало очевидно, что для моих задач 4 Гб оперативки маловато. Запустить хотябы 2 ресурсоемких приложения (к примеру Photoshop и Illustrator) почти нереально, система начинала работать заметно медленнее. К счастью проблем с добавлением оперативки в компьютеры apple не возникает. Я купил 2 модуля памяти kingston по 4 гб и добавил к уже имеющимся 2 плашкам памяти по 2 Гб. В сумме получилось 12 Гб оперативки, а стоило это всего лишь 1600 рублей и заняло пару часов моего времени. С такой конфигурацией системы можно запускать хоть 10 ресурсоемких приложений и это никак не сказывается на быстродействии компьютера, все работает как часы.



Ранее я уже делал обзор программ для Mac OX которыми можно заменить привычные windows-программы. В этом обзоре мне хотелось бы поделиться опытом использования и подкорректировать этот список.

Начнем пожалуй с Total Commander.
Самый лучший ftp клиент который мне удалось найти для OS X → Transmit
Очень удобный, красивый и понятный интерфейс. Самая главное — с его помощью можно править файлы прямо на ftp сервере. Причем редактор в котором будут открываться файлы можно выбрать любой. Он платный, но все остальные программы в этой категории на мой взгляд в подметки ему не годятся. Единственное что мне в нем не хватает, так это возможности пакетной переименовки файлов по заданному шаблону. Этим я часто пользовался в total commander.


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



Переходим редакторам кода. Самое лучшее из бесплатных решений — TextWrangler. Его возможностей для верстки сайтов мне вполне хватает.
Но все же есть более удобное и функциональное решение — Sublime Text 2. Это платный текстовый редактор, который в последнее время стал очень популярным среди разработчиков. Причем он кроссплатформенный и существует не только для Mac OX, есть также версия под windows и linux.



Мозговые карты MindManager. К сожалению версия этой программы под Mac OS меня не впечатлила, она какая-то недоделанная и имеет очень ограниченный функционал в сравнении с виндовс версией. В качестве альтернативы можно использовать xMind который выглядит практически так же как в виндовс.
Но я выбрал третий вариант — онлайн мозговые карты mindMeister. Очень красиво сделаны, достаточный функционал, доступность с любого компьютера подключенного к интернет, имеются приложения для IPad и iPhone.



Программы для визуальной правки css кода — Stylizer.
Несколько разочарован этим css редактором. Версия под mac очень часто виснет и падает и разработчики кажется не сильно торопятся решать эти проблемы. И нет возможности переключаться между разными версиями браузеров как в виндовс версии. Но пока приходится использовать ее, так как альтернативных, сравнимых по удобству программ я не нахожу. Можно конечно использовать обычные css редакторы совместно с плагином firebug для firefox, но по скорости это никак не сравнится с stylizer.

Приведу пример. Допустим у вас есть 10-15 FTP серверов на которых хранятся около 100 сайтов и в один прекрасный момент один из владельцев этих сайтов звонит вам и говорит: «Я хочу чтоб кнопочка в шапке моего сайта, который вы делали год назад, была не зелененькой, а красненькой и чтоб шрифт на ней был не белый, а черный». Что вы будете делать в этом случае? Думаю, сначала вы будете долго вспоминать, что это вообще за сайт такой и на каком ftp сервере он хранится, потом полезете в браузер смотреть где хранятся css файлы в которых заданы эти цвета. Далее вам надо будет подключиться к нужному фтп серверу, найти этот файл css, найти строку в которой прописан цвет кнопки, изменить, сохранить. Сколько действий!!!! На это у вас уйдет минут 5 — это в самом лучшем варианте.

В случае использования Stylizer вообще не приходится заморачиваться где хранятся те или иные файлы стилей, будь у вас даже 1000 сайтов, всегда можно сделать небольшие правки css кода на любом из них в течении 1 минуты.

Вы просто открываете Stylizer и вписываете адрес сайта в адресную строку, далее нажимаете пробел и кликаете по элементу, стили которого нужно изменить. Программа сама находит файл и строки в котором заданы все свойства, меняем и нажимаем ctrl + s. Готово! Вот за это я обожаю эту программу и готов мириться даже с ее глючностью под mac OS.



В качестве браузера я по прежнему использую Chrome, хотя несколько раз думал о переходе на стандартный apple браузер Safari. Сафари привлекает своей скоростью работы и красивыми визуальными эффектами вкладок. Особенно удобно пролистывать историю во вкладке жестом смахивания на magic mouse, в хроме это тоже реализовано, но не так красиво, а самое главное не так быстро. Но наверное в силу привычки остаюсь на Google Chrome и меня он вполне устраивает.



Работая на виндовс я постоянно пользовался icq клиентом QIP, и он мне очень нравился. Но к сожалению версии под OS X нет и похоже не будет.
Вообще перейдя на компьютеры apple, у меня сложилось впечатление, что всяческого рода клиенты icq на mac OS вообще не любят. Они все какие-то убогие недоделки в сравниении с тем же QIP. Лучшее решение которое я нашел — Adium, но пришлось повозиться с ним чтоб настроить более менее удобный вид и функционал.



Skype
Вот уже пол года использую skype на OS X и могу сказать что в видновс он сделан удобнее. Не понимаю, зачем было все так усложнять. В виндовс есть список контактов и основное окно. Все просто и логично как в ICQ. Здесь же в столбце слева отображаются только открытые диалоги, а чтоб найти нужного человека, необходимо нажать на кнопку «контакты», после чего в основном окне высветится весь список контактов с фильтрацией по статусу, там кликаем по нужному имени и только после этого в списке слева откроется диалог и можно начинать писать сообщение. То есть получается нужно сделать больше действий... может кому-то так удобнее конечно, но мне это не понравилось.



GuitarPro
Как выяснилось, эта программа существует в версии для Mac OS и даже для iPhone и iPad. Работает отлично, никаких глюков замечено не было, внешне она выглядит точно также как и виндовс версия.



Замену программе image tuner я так и не нашел. Напомню, это очень удобная программа для пакетной обработки фотографий. Существует только для Windows. Пока использую Batch файлы photoshop для этих целей. В принципе тоже довольно удобно, но не так гибко.



С переходом на Mac OS я начал пользоваться некоторыми программами в которых на виндовс не видел необходимости. Не знаю, хорошо это или плохо, но сейчас мне стало очень удобно читать новости с сайтов при помощи программы Reeder, в качестве почтового клиента очень удобно использовать Sparrow. Wunderlist — отличный менеджер задач, причем он существует также и для windows. Skitch — обалденная программка для создания скриншотов с пояснениями, очень выручает когда надо что-то быстро объяснить или показать клиенту. Об этих и некоторых других удобных программах постараюсь рассказать в следующем обзоре.

Сафарли Ельчин, цитаты из книг

28 июля 2015, 22:36

***
Мчащиеся мимо такси, пугливые дворняги, порванные страницы вчерашних газет. Я — тень на фоне спящего города. Пустые улицы, которые через считанные часы накроет волной суетливых людей. Я наблюдаю за временем вокруг себя и понимаю, что, наконец, нашел свой смысл. Ни от кого никогда раньше я не получал внятного ответа о смысле — только заезженные фразы вроде «в любви, конечно, в чем же еще.

***
Так много хочется тебе рассказать, так многим поделиться... Но я не могу писать — это не то. Когда я приеду в твой маленький город беззвучного ветра, я буду тебе рассказывать. С самого начала и потом, каждую главу, до конца.

***
— Мне обидно, что мы часто забываем о настоящем. Я же помню, как не раз, когда мне было сложно, ты, не бросаясь словами, сжимал мне руку. Давал понять, что ты рядом. Помню, как мы долго молчали, не из-за того, что не о чем было говорить... Так хорошо понимали состояния друг друга, что не могли передать их словами. Вот это и есть настоящее, которое легко утратить в толпе. Люди, я думаю, вообще не нуждаются в словах. Достаточно руки в руке и взглядов.

***
Мы способны стремительно распрощаться с любой из вредных привычек — бросить курить, отказаться от спиртного, перестать объедаться сладким перед сном. Но есть такие вещи, не поддающиеся силе воли. Забыть или разлюбить, к примеру. Все, что рождается в сердце, навсегда в нем остается.

***
Отныне я ничего больше не раскрашиваю — принял все, как есть, как было и как должно было быть. С нами случилось время, с нами случилась жизнь, это то, чему еще никто не смог противостоять. Нет, я не смирился с этой разлукой. Просто должен идти дальше, пока не знаю куда, но должен идти. Ведь дорога возникает под шагами идущего.

***
Мы ждем любовь про себя, в тихой заводи своего одиночества, не осознавая, что обманываемся. Что долгожданный стук в дверь не прозвучит, а на пороге не появится спаситель с храбрым сердцем. Это все в книжках, это все в голливудском кино. Там все красиво — жизнь быстрее, чем наша, люди более подтянутые и крепкие, чем мы, декорации новее и дороже, чем те, что окружают нас.

А в настоящей жизни? Красиво иначе, больно иначе. И это совсем не плохо, может, даже хорошо. Мы плачем иначе — солеными и настоящими слезами. Зато у нас есть право на выбор сюжета: мы играем жизнь так, как хотим, и нам не кричат в рупор, требуя повторить в десятый раз дубль. Мы же сами режиссеры своих судеб. Может, истинное счастье в этой свободе?

***
— Я так устал искать все заново...

***
Для чего возвращаться в прошлое, если все равно не заберешь тех, кто там остался?

***
Я верю в отношения, не верю в брак. Мне не по душе торжественная волокита с документами, штампами, подписями своими и подписями свидетелей. Как зафиксировать то, что рождается вне, а зачастую и против законов мира? Моя бабушка говорила, что брак — это общий дом, фундаментом которого обязательно должна быть любовь. По мне, так сегодня брак — такой небоскреб, что его фундамент давно похоронил все хорошее.

***
С годами утрачивается легкость шагов. Не принимая в расчет, что нельзя стать победителем, не научившись проигрывать, — сотню раз измеряем, обдумываем, анализируем, что попросту вредит делу. А полезно напрочь забыть про „можно“ с „нельзя“, и безо всякой задней мысли радоваться чему-то простому, наслаждаясь вкусом жизни.

***
Не очень скучаю по большому городу. Зато не покидает ощущение того, что меня там кто-то ждет. Так всегда, когда находишься на расстоянии. Возвращаешься и понимаешь: все по-прежнему.

***
— Многоточие — это ведь приближающийся конец?
— Совсем нет, сынок.
— Но в нем большая доля сомнений...
— Неопределенности. А даже в самой туманной неопределенности есть надежда.

***
И я вспоминаю нас в бризе утраченного майского утра. Я проснулся от пристального взгляда. Приподнявшись на локте, она смотрела на меня с бесконечным ощущением жизни. В комнате пахло хвоей, остатками теплого рассвета. „У нас будет ребенок“.

***
Я на кухне с открытыми окнами, за ними — продрогший город. Грустит, кашляет. Большой город, в котором твои мечты сбываются у кого-то другого. Пусть. Давно не мечтаю. Я просто делаю шаги. То назад, то вперед.

***
В отношения с людьми мы любим раздавать роли. Требовать актеров строго следовать нашей трактовке. И сами при этом играем самозабвенно. Потом кто-то рано или поздно захочет хотя бы часок побыть собой, а не персонажем. И в этот миг все развалится.

Seblod — самый мощный CCK для Joomla

4 февраля 2012, 16:05

Seblod — самый мощный CCK для Joomla
Итак, что такое CCK?
CCK (content construction kit) — система создания контента или управления контентом. Это расширения для Joomla, которые позволяют очень гибко создавать и управлять материалами на сайте.

Ну вообще, это касается не только системы управления joomla, думаю это общее понятие. В некоторых CMS construction kit есть по умолчанию, например в бесплатной Drupal 7 или в коммерческой системе 1C-Битрикс (даже в самой младшей редакции). Joomla до своего собственного CCK к сожалению пока не доросла, поэтому приходится использовать сторонние расширения.

Расскажу немного о самых известных CCK для CMS joomla.

K2 — пожалуй самая популярная система. Для неё существует очень много модулей и плагинов, её поддерживает большое сообщество. Она наиболее простая для понимая, но не такая гибкая как хотелось бы. Работа с полями CCK на мой взгляд очень неудобна. Нет интерфейса для визуального редактирования шаблонов вывода контента. Компонент существует отдельно от стандартного джумловского com_content и никак с ним не интегрируется, что делает невозможным использование в связке с K2 множества модулей разработанных для компонента com_content. Да и устанавливая K2, вы по сути отказываетесь от большей части стандартного функционала joomla. Этим K2 меня всегда отталкивал. А ещё с фильтрацией материалов у него всё плохо, в стандартном варианте её просто нет, есть конечно платные модули.... но это уже получается допиливание допилинного. Нет возможности отключить стандартные поля introtext и fulltext, что тоже идёт ему в минусы. Он поддерживает joomla 1.5, 1.7 и уже 2.5.
http://getk2.org/

MightyResources — довольно много раньше использовал этот CCK в своих проектах. Он значительно более гибкий по сравнению с К2, работа с полями значительно удобнее, очень много параметров для настроек визуального вывода контента. Если нужны дополнительные шаблоны оформления материалов, придется покупать платную лицензию, причем красота этих шаблонов мягко говоря сомнительна. Намаялся в своё время с этим компонентом, много багов, много лишнего в стандартном выводе, много приходится настраивать и чистить. Также не имеет никакой интеграции со стандартным компонентом com_content. C модулями для него ещё хуже чем с К2, ведь CCK K2 более распространён и некоторые хорошие модули могут выводить информацию и из него. К примеру модуль Gavik News Show отлично дружит как с com_content так и с K2. В MightyResources в бесплатной версии есть фильтры, только вот работают они как-то по-дурацки. Этот CCK существует только для версии joomla 1.5 и создатели похоже совсем не торопятся адаптировать его под joomla 2.5.
http://www.mightyextensions.com/joomla-components/resources-cck-custom-content-types

Ещё пару слов о CCK с которыми я почти не работал, но кое какое мнение о них у меня есть.

YooZOO — Создателям этого компонента за дизайн можно ставить 10 баллов из 10, всё сделано очень красиво, и вроде бы очень удобно. Также популярный компонент CCK joomla, благодаря своей красоте и понятности интерфейса. Хороший визуальный интерфейс для управления выводом полей, везде ajax, drug and drop. Насколько я знаю, с фильтрацией в нем дела обстоят тоже не очень хорошо. Также нет интеграции с com_content. В бесплатной версии только 2 готовых приложения «blog» и «pages», все самое интересное доступно за деньги. Почти не работал с этим компонентом, но видел что с ним делают, так что он достаточно гибкий и мощный. Поддержка joomla 2.5 уже есть.
http://www.yootheme.com/zoo

FLEXIcontent — ещё один CCK для joomla. Есть поддержка только версии joomla 1.5. Распространён довольно мало, поэтому думаю, что для joomla 2.5 он появится не скоро. Интерфейс административной панели выполнен довольно симпатично. Есть фильтры, и тут они работают вполне приемлемо. Главное отличие от предыдущих CCK — это пожалуй то, что FLEXIcontent использует com_content для хранения материалов, т. е. есть интеграция со стандартным функционалом joomla. Есть подозрение, что компонент стоящий, но поддержки 2.5 нет, поэтому отказался от его использования и изучения.
http://flexicontent.org/

Ну а теперь о том, ради чего собственно и затеял этот пост.

Seblod — самый мощный CCK для Joomla

Seblod — пожалуй самый мощный и самый гибкий компонент CCK для joomla. На сегодняшний день последняя редакция имеет версию 2.1 и работает пока только с joomla 1.7. Думаю очень скоро этот компонент допилят и до версии 2.5, переживать об этом не стоит, тем более, что сама джумла 2.5 вышла всего пару недель назад.
Что же такого интересного в этом загадочном Seblod? Когда в первый раз столкнулся с этим компонентом, он показался мне ужасно сложным, пожалуй это чувство никуда не пропало и сейчас) Он очень сложный, но вместе с тем и ужасно интересный. Самый большой его плюс — это полная интеграция с системой joomla, с категориями, материалами, пользователями, ролями пользователей, шаблонами. Гибкая настройка списков, таблиц, материалов. Можно вообще отказаться от использования сторонних модулей вывода и использовать только листинги Seblod, на мой взгляд это очень удобно. Легко переносить приложения созданные в seblod между разными проектами. Отлично реализованы фильтры. Но к сожалению пока очень мало документации по нему, и распространён он значительно меньше чем K2 или ZOO.
http://seblod.com/
Мне ещё не довелось использовать seblod в работающих проектах, но думаю скоро я исправлю это. И напишу, что получилось.