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

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

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

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

Выбрать записи за сегодня в 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);
   }
};

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

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

Fullscreen javascript функция

Подглядел на одном сайте в коде, нужно сохранить, вдруг пригодится 😉

function launchFullscreen(element) {
	if (!$('body').hasClass("full-screen")) {

		$('body').addClass("full-screen");

		if (element.requestFullscreen) {
			element.requestFullscreen();
		} else if (element.mozRequestFullScreen) {
			element.mozRequestFullScreen();
		} else if (element.webkitRequestFullscreen) {
			element.webkitRequestFullscreen();
		} else if (element.msRequestFullscreen) {
			element.msRequestFullscreen();
		}

	} else {
		
		$('body').removeClass("full-screen");
		
		if (document.exitFullscreen) {
			document.exitFullscreen();
		} else if (document.mozCancelFullScreen) {
			document.mozCancelFullScreen();
		} else if (document.webkitExitFullscreen) {
			document.webkitExitFullscreen();
		}

	}
}


Далее >>>

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

Функция расчета дистанции между GPS координатами

Простая php функция для расчета расстояния между двумя заданными gps координатами. На входе задаем координаты — ширину и долготу первой точки и ширину и долготу второй точки, на выходе получаем дистанцию в метрах.

/**
     * функция расчета дистанции между GPS координатами
     * @param $latitudeFrom
     * @param $longitudeFrom
     * @param $latitudeTo
     * @param $longitudeTo
     * @param int $earthRadius
     * @return float
     */
    public static function getDistance( $latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo, $earthRadius = 6371000 )
    {
        // convert from degrees to radians
        $latFrom = deg2rad($latitudeFrom);
        $lonFrom = deg2rad($longitudeFrom);
        $latTo = deg2rad($latitudeTo);
        $lonTo = deg2rad($longitudeTo);

        $lonDelta = $lonTo - $lonFrom;
        $a = pow(cos($latTo) * sin($lonDelta), 2) +
            pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2);
        $b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta);

        $angle = atan2(sqrt($a), $b);
        return round( $angle * $earthRadius );
    }


Далее >>>

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