[2-01-2013] 3-в-1: Выпуск №2

Reading Time: 2 minutes

Снова вечер и снова выпуск “3-в-1”. На вчерашнюю запись я получил несколько позитивных отзывов, что вполне меня устраивает и вдохновляет. Продолжим же, друзья.

Сегодня, как обычно, у нас будет одно android приложение, один сервис и один сайт.

  1. Наверное некоторые из вас уже пользуются Asana для управления своими проектами (если нет, то крайней рекомендую), но единицы знают о том, что есть Asana mobile client,  который позволяет управлять задачами с вашего android смартфона. Насколько я знаю, то официального клиента под android пока нет, но та неофициальная оболочка, которая уже есть, позволяет справляться со всеми необходимыми функциями.
    Скачиваем с Google Play (версия, которой пользуюсь я) и альтернативные клиенты – 1 и 2
  2. Все мы рано или поздно сталкиваемся с необходимостью провести перестановку в том жилье, где мы обитаем, или в офисе, где находится наше рабочее место, если это не одно и то же. Можно при этом пойти тремя путями:
    – начать перестановку и понять, что новое не становится туда, куда мы хотели его поставить;
    – нарисовать на бумаге;
    – найти приложение разной степени навороченности для того, чтобы спланировать перестановку.
    Собственно planner5d.com и является тем сервисом, который поможет вам в онлайн режиме спланировать свое помещение. Пользуемся! 
  3.  На Новый Год все позагадывали желания, а самые продвинутые даже написали планы по достижению целей. Но все мы живые люди и мотивация у нас падает быстрее, чем нам того хотелось бы. Чтобы поддерживать свою мотивацию в тонусе (если не помогают внутренние ресурсы), заходите на ресурс “Мотивационные цитаты”. Помогает! 

На этом второй выпуск 3-в-1 объявляю закрытым и жду ваших отзывов!

[1.01.2013] 3-в-1 вечером

Reading Time: 3 minutes

Начинаю эксперимент – каждый вечер буду делать короткую (по мере возможности) запись в этом блоге об одном Android приложении, одном онлайн сервисе и одном контент-сайте, которые в этот день мне наиболее приглянулись. Изначально проект не коммерческий, а там как карта ляжет – поживем увидем.

Итак, 1 января 2013 года:

  1. Evernote Hello будет открывать обзор по одной простой причине – эта программа создана для знакомств. По сути это одна большая адресная книга, которую вы получаете на серверах Evernote. Если добавить к этому еще и сканирование визиток, что является одним из примеров использования Evernote для бизнес нужд, то получаем вполне себе готовую экосистему для того, чтобы “помнить все” о людях, с которыми мы встречаемся. До полноценной CRM системы конечно не дотягивает, но для личных нужд или малого бизнеса вполне рабочее решение.
    Установить с Google Play
  2. https://www.draw.io будет первым сервисом, о котором я напишу пару строк. Google сейчас запускает акцию Paperless 2013 и Дмитрий Завилишин в своем блоге недавно написал о том, что ищет аналог для Visio. Вот собственно сервис, который я сегодня представляю и есть таким аналогом. Стандартные и не очень диаграммы (UML, FlowChart и даже несколько наборов клипартов) для вашего творчества.
    Кстати, сервис позволяет даже делать прототипы (mockup) для вашего будущего стартапа. Крайне рекомендую! 
  3. http://osxdaily.com хороший ресурс с краткими советами для владельцев “яблочной” продукции (те, у кого из яблок только компот на кухне могут не беспокоиться). На одном ресурсе собраны советы о Mac, iPhone, iPad и каждый день выходят какие-то новые “фишки”. Требуется знание английского языка, но, надеюсь, что для тех, кто читает мой блог – это не проблема.

На этом первый выпуск 3-в-1 объявляю закрытым. Отписывайтесь в комментариях насколько интересен такой формат.

Редактирование полей в корзине OpenCart

Reading Time: 4 minutes

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

Кто не знает, то OpenCart – это наследник старой доброй CMS osCommerce, в которой худо-бедно реализовано псевдо-MVC, что существенно упрощает жизнь по сравнению с оригинальной osCommerce, от которой я отказался несколько лет назад ввиду муторности поддержки.

Так вот, стоит задача – убрать лишние поля в формах регистрации и заказа для гостей.

Решение достаточно простое и элегантное:

Шаг 1. Редактируем шаблоны

Их два:

  • catalog/view/theme/default/template/checkout/register.tpl  – для формы регистрации
  • catalog/view/theme/default/template/checkout/guest.tpl – для гостей

Структура файлов у них похожая, потому говорить буду на примере одного из них.

Мы можем пойти двумя путями – редактировать существующие шаблоны или создать новые и сказать контролеру использовать их вместо стандартных. Пойдем вторым путем, т.к. он упростит дальнейший апгрейд магазина.

Копируем шаблоны и создаем файлы:

  • catalog/view/theme/default/template/checkout/register-new.tpl  
  • catalog/view/theme/default/template/checkout/guest-new.tpl

Само копирование не позволит нам использовать новые шаблоны в OpenCart, потому идем в catalog/controller/checkout/register.php и редактируем строки (145-147), которые отвечают за выбор шаблона:

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/checkout/register.tpl')) {
        $this->template = $this->config->get('config_template') . '/template/checkout/register.tpl';
} else {
        $this->template = 'default/template/checkout/register.tpl';
}

Меняем register.tpl на register-new.tpl, сохраняем и проверяем – теперь мы можем вносить изменения в наши новые шаблоны.

Собственно процесс редактирования формы будет заключаться в том, что мы скроем поля, благодаря использованию style=”display:none” и удалим соответствующие заголовки полей.

Удаляем строки типа:

  • <span class=“required”>*</span> <!—?php echo $entry_postcode; ?—>

После этого редактируем поля:

  • <input class="large-field" style="display: none;" type="text" name="postcode" value="" />

добавляем style=”display:none” (или просто удаляем строки, чтобы не засорять код).

Сохраняем изменения, обновляем страницу и видим, что поля исчезли, но заказ работать не будет пока, так как мы не внесли необходимые изменения в контроллере.

Шаг 2. Контроллер

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

Валидация происходит в файлах

  • catalog/controller/checkout/register.php – для зарегистрированных пользователей
  • catalog/controller/checkout/guest.php 

Начиная с 18 строки контроллер проверяет все поля, которые есть по умолчанию в форме.

if ($country_info &amp;&amp; $country_info['postcode_required'] &amp;&amp; (utf8_strlen($this-&gt;request-&gt;post['postcode']) &lt; 2) || (utf8_strlen($this-&gt;request-&gt;post['postcode']) &gt; 10)) {
    //$json['error']['postcode'] = $this-&gt;language-&gt;get('error_postcode');
}

Проходимся по всему файлу и внимательно комментируем все поля, которые мы убрали в шаблоне.

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

if ($this-&gt;request-&gt;server['REQUEST_METHOD'] == 'POST') {
    if (!$json) {
        $this-&gt;request-&gt;post['postcode'] = '';
..

 

Вот теперь точно все, а наш интернет-магазин готов к обработке лавины заказов перед Новым Годом! С наступающими праздниками!

 

Про кириллицу и латиницу в профилях

Reading Time: 3 minutes

Давече разговорились с Антоном Шалыгиным и Антоном Карпенко в уютном фейсбучике про “нормальность” тех, кто создает профили с именами, написанными кириллицей. Толчком послужила определенная неадекватность “смм-менеджера” (?) “Великой кишені”, которая пыталась рассказать, что можно делать, а что нельзя при упоминании “Бренда”.

Мысль изначально была сформулирована следующим образом – подписывать профили кириллицей некомильфо (ну и контр-аргумент, что не важно, как подписан профиль, а главное, чтоб человек был адекватный). 

Мое мнение оказалось где-то посередине, при этом со следующей аргументацией:

– человек, который общается ТОЛЬКО с русско- украиноязычной аудиторией подпишется кириллицей (ни хорошо, ни плохо – смотрим дальше);

– человек, который активно общается с зарубежными друзьями-партнерами, скорее выберет для себя англоязычный вариант написания имени и/или его сокращенную форму (в качестве примера я привел себя и изменение имени Александр на Алекс -> Alex для удобства иностранцев).

При этом есть нюанс – моя точка зрения заключается в том, что человек, который подписывается кириллицей скорее всего ограничится “местечковостью” своих взглядов, источников информации и суждений. Ему не интересен мир, который лежит за пределами кириллицы.

С другой стороны, если человек использует латиницу в профиле, то скорее всего готов или уже использует зарубежные источники информации, а также более-менее активно общается с людьми, которые находятся за пределами “кирилличного мира”, а значит может быть более продвинутым.

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

Начинаем новогодние поздравления!

Reading Time: 1 minute

Первыми хочу поздравить компанию FastVPS с наступающими праздниками. Всегда оправдывайте свое название – будьте быстрыми и предоставляйте качественные услуги на высоком уровне своим клиентам! Этого будет достаточно для того, чтобы в каждом новом году отмечать только значительный рост клиентов. Здоровья сетям, легкости векам сисадминов, радости всегда всем-всем-всем!

А еще можно воспользоваться промо-кодом: LASTCHANCEVPS2012
и получить разовую скидку 30% на VPS!

шукаю людей!

Reading Time: 1 minute

поки всі звільняють людей з роботи (вчора розказали шикарний анекдот про двірників, який розкажу в кінці 😉 ), я їх шукаю.
отож, ПОТРІБНІ!
хто?

ДрупалКемп та всі-всі-всі

Reading Time: 1 minute

останні вихідні серпня обіцяють бути гарячими в плані ІТ-подій.
30 серпня у G-club’і зберуться мінікемпери, щоб поговорити про онлайн відео. Деталі на сайті та у Гугл групі. Після мінікемпу очікується зібрання ініціативної групи з організації EduCamp’08.
31 серпня у тому ж таки G-club’і (і як ми раніше без нього жили? 🙂 ) планується проведення ДрупалКемпу – події, яка ставить на меті згуртівати всіх тих, хто цікавиться Drupal.
Планую побувати на обох подіях, ще й пограти на більярд з охочими (там стоїть непоганий стіл для американки від “Буффало”).