Skip to content

Instantly share code, notes, and snippets.

View cergey-obr's full-sized avatar

Sergey Obraztsov cergey-obr

View GitHub Profile
@cergey-obr
cergey-obr / ajaxSelector.js
Created June 24, 2014 11:09
Селектор из базы данных
$.fn.ajaxSelector = function(offset, limit, callback) {
var page_id = this.data('page-id');
var template = this.data('template');
var data = this.find(":input[value != '']").serialize();
var params = $.param({
id: page_id,
offset: offset,
limit: limit,
template: template
});
@cergey-obr
cergey-obr / grayscale.php
Created July 11, 2014 05:35
Скрипт для получения обесцвеченной версии изображения
public function grayscale($img_path) {
$umiImg = new umiFile('.'.$img_path);
$gray_name = '/images/gray/'.str_replace('.'.$umiImg->getExt(), '', $umiImg->getFileName()).'_gray.jpg';
if (!file_exists('.'.$gray_name)) {
switch ($umiImg->getExt()) {
case 'jpg': $img = imagecreatefromjpeg($umiImg->getFilePath()); break;
case 'gif': $img = imagecreatefromgif($umiImg->getFilePath()); break;
case 'png': $img = imagecreatefrompng($umiImg->getFilePath()); break;
}
imagefilter($img, IMG_FILTER_GRAYSCALE);
@cergey-obr
cergey-obr / getYoutubeImg.php
Last active March 4, 2016 05:14
Получение изображения видео youtube $id_video - id видео youtube
public function getYouTubeImg($id_video) {
$apiKey = 'AIzaSyCGlOkSZitdA33mnUhmW3hmqdPalusV5GQ';
$url = 'https://www.googleapis.com/youtube/v3/videos?id='.$id_video.'&key='.$apiKey.'&part=snippet';
$data = json_decode(file_get_contents($url), true);
$thumbnails = $data['items'][0]['snippet']['thumbnails'];
$thumb = array_pop($thumbnails);
$name = $_SERVER['DOCUMENT_ROOT'].'/images/youtube/'.$id_video.'_image.jpg';
if (file_exists($name)) {
return str_replace('./', '/', $name);
} else {
@cergey-obr
cergey-obr / getYoutubeIdFromURL.php
Created July 11, 2014 06:28
Получение id видео youtube $url - url видео youtube
public function getYouTubeIdFromURL($url) {
$pattern =
'%^ # Match any youtube URL
(?:https?://)? # Optional scheme. Either http or https
(?:www\.)? # Optional www subdomain
(?: # Group host alternatives
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com
(?: # Group path alternatives
/embed/ # Either /embed/
@cergey-obr
cergey-obr / getYoutubePreview.php
Created July 11, 2014 06:30
Получение превьюшки для видео $id - id видео $field - название поля
public function getYoutubePreview($id, $field) {
$hierarchy = umiHierarchy::getInstance();
$video = $hierarchy->getElement($id);
if ($video instanceof umiHierarchyElement) {
if ($video->$field instanceof umiImageFile) { // если изображение уже записано
return substr($video->$field->getFilePath(), 1);
} else { // если поле пустое
$link = $video->youtube;
if ($youtube_id = $this->getYouTubeIdFromURL($link)) { // получаем изображение с сервера youtube
$photo = $this->getYouTubeImg($youtube_id);
@cergey-obr
cergey-obr / onPaymentWaiting.php
Created July 23, 2014 05:16
Получить доступ к старому значению поля после того как оно отредактировано
<?php
public function onPaymentWaiting(iUmiEventPoint $event) {
$object = $event->getRef("object");
// выполняем действия только для определённого типа объектов
if($object->getTypeId() == umiObjectTypesCollection::getInstance()->getBaseType('emarket', 'order')) {
// объяввим переменную, в которую будем запоминать значение поля до его изменения
static $old_status_id = 0;
switch ($event->getMode()) {
case 'before' : {
// запомним старое значение
@cergey-obr
cergey-obr / guide.xml
Created July 23, 2014 12:16
Usel для получение значений справочника в xslt
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="objects">
<type id="{1}" />
</target>
<limit page="{3}">{2}</limit>
</selection>
@cergey-obr
cergey-obr / output
Last active August 29, 2015 14:08
Замена символа на символ переноса
Текст | Вторая строка
Текст
Вторая строка
@cergey-obr
cergey-obr / more-parts.xml
Created November 6, 2014 09:45
Разбиение выборки на несколько частей
<xsl:for-each select="items/item[position() mod 5 = 1]">
<div class="line">
<xsl:for-each select=".|following-sibling::item[position() &lt; 5]">
<p><xsl:value-of select="@name" /></p>
</xsl:for-each>
</div>
</xsl:for-each>
@cergey-obr
cergey-obr / declension.xml
Created November 6, 2014 09:46
Склонение после числительных
<xsl:template name="declension">
<xsl:param name="number" />
<xsl:param name="f0" />
<xsl:param name="f1" />
<xsl:param name="f2" />
<xsl:variable name="absnum">
<xsl:choose>
<xsl:when test="$number &lt; 0"><xsl:value-of select="0 - $number" /></xsl:when>
<xsl:otherwise><xsl:value-of select="$number" /></xsl:otherwise>
</xsl:choose>