Города Крыма для таблицы geo модуля simple checkout

Список городов Крыма для таблицы geo, которая используется для автозаполнения городов в модуле simple checkout. Обратите внимание на регион, у меня Крым — регион с id 4066

INSERT INTO `oc_geo` (`id`, `zone_id`, `name`, `full_name`, `postcode`, `parent_id`, `lat`, `long`, `population`) VALUES
(190311, 4066, 'Алупка', 'г. Алупка, Крым', '0', '', '', '', 0),
(190312, 4066, 'Алушта', 'г. Алушта, Крым', '0', '', '', '', 0),
(190313, 4066, 'Армянск', 'г. Армянск, Крым', '0', '', '', '', 0),
(190314, 4066, 'Армянськ', 'г. Армянськ, Крым', '0', '', '', '', 0),
(190315, 4066, 'Бахчисарай', 'г. Бахчисарай, Крым', '0', '', '', '', 0),
(190316, 4066, 'Белогорск', 'г. Белогорск, Крым', '0', '', '', '', 0),
(190317, 4066, 'Джанкой', 'г. Джанкой, Крым', '0', '', '', '', 0),
(190318, 4066, 'Евпатория', 'г. Евпатория, Крым', '0', '', '', '', 0),
(190319, 4066, 'Керчь', 'г. Керчь, Крым', '0', '', '', '', 0),
(190320, 4066, 'Красноперекопск', 'г. Красноперекопск, Крым', '0', '', '', '', 0),
(190321, 4066, 'Подгорное', 'г. Подгорное, Крым', '0', '', '', '', 0),
(190322, 4066, 'Саки', 'г. Саки, Крым', '0', '', '', '', 0),
(190323, 4066, 'Симферополь', 'г. Симферополь, Крым', '0', '', '', '', 0),
(190324, 4066, 'Старый Крым', 'г. Старый Крым, Крым', '0', '', '', '', 0),
(190325, 4066, 'Судак', 'г. Судак, Крым', '0', '', '', '', 0),
(190326, 4066, 'Феодосия', 'г. Феодосия, Крым', '0', '', '', '', 0),
(190327, 4066, 'Щелкино', 'г. Щелкино, Крым', '0', '', '', '', 0),
(190328, 4066, 'Ялта', 'г. Ялта, Крым', '0', '', '', '', 0),
(190329, 4066, 'Севастополь', 'г. Севастополь, Крым', '0', '', '', '', 0),
(190330, 4066, 'Инкерман', 'Севастополь, г. Инкерман, Крым', '0', '', '', '', 0);
В категориях: Opencart | Тэги , , | 2 комментария

Расчет процента скидки между двумя ценами

Задача — есть две цены (старая и новая), нужно рассчитать процент скидки учитывая эти данные. Получить процент от числа довольно таки просто — число* наш % /100%, например 30% от числа 50 — 50*30/100 = 15. Подсчитать же процент между двумя числами можно так:

$oldPrice = 1890; //старая цена 
$price = 500; //новая цена

// считается, что старая цена - это 100%
// узнаем сколько % составляет новая цена от старой и вычитаем это кол-во из 100%

$sale = 100 - (500*100/1890);
echo $sale; // 73,54497354497354 % - это процент скидки
В категориях: Памятка, Разное | Тэги , , | Комментировать

Unisender экспорт контаков OpenCart 1.5.x, 2.0.x по крону

Сам модуль экспорта написан пользователем toporchillo и на момент написания статьи доступен на opencartforum.com

Клиентом была поставлена задача выполнять экспорт базы email в unisender не каждый раз при добавлении нового клиента, как делает указанный модуль, а по крону раз в неделю. Так как на клиентском сайте в принципе отсутствует регистрация пользователей, то такой подход вполне логичен. В общем был написан небольшой класс, который использует настройки модуля toporchillo и выполняет экспорт контактов из заказов за прошедшую неделю. Vqmod модуля был отключен за ненадобностью.
Далее >>>

В категориях: Opencart | Тэги , , | 2 комментария

Выбрать записи за сегодня в postgresql

Данный код верен при условии, что поле с датой имеет тип TIMESTAMP WITHOUT TIME ZONE

select * from posts where created >= 'today'

Таким образом мы получим список всех постов за сегодня.

В категориях: Памятка | Тэги , | Комментировать

Javascript cookies для поддоменов

Небольшой яваскрипт класс, позволяющий устанавливать и получать значения cookies для поддоменов сайта.

var Cookie =
{
   set: function(name, value, days)
   {
      var domain, domainParts, date, expires, host;

      if (days)
      {
         date = new Date();
         date.setTime(date.getTime()+(days*24*60*60*1000));
         expires = "; expires="+date.toGMTString();
      }
      else
      {
         expires = "";
      }

      host = location.host;
      if (host.split('.').length === 1)
      {
         // no "." in a domain - it's localhost or something similar
         document.cookie = name+"="+value+expires+"; path=/";
      }
      else
      {
         // Remember the cookie on all subdomains.
          //
         // Start with trying to set cookie to the top domain.
         // (example: if user is on foo.com, try to set
         //  cookie to domain ".com")
         //
         // If the cookie will not be set, it means ".com"
         // is a top level domain and we need to
         // set the cookie to ".foo.com"
         domainParts = host.split('.');
         domainParts.shift();
         domain = '.'+domainParts.join('.');

         document.cookie = name+"="+value+expires+"; path=/; domain="+domain;

         // check if cookie was successfuly set to the given domain
         // (otherwise it was a Top-Level Domain)
         if (Cookie.get(name) == null || Cookie.get(name) != value)
         {
            // append "." to current domain
            domain = '.'+host;
            document.cookie = name+"="+value+expires+"; path=/; domain="+domain;
         }
      }
   },

   get: function(name)
   {
      var nameEQ = name + "=";
      var ca = document.cookie.split(';');
      for (var i=0; i < ca.length; i++)
      {
         var c = ca[i];
         while (c.charAt(0)==' ')
         {
            c = c.substring(1,c.length);
         }

         if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
      }
      return null;
   },

   erase: function(name)
   {
      Cookie.set(name, '', -1);
   }
};

Использовать:
Далее >>>

В категориях: Памятка | Тэги , | Комментировать