Skip to content

Instantly share code, notes, and snippets.

View thermonuclear's full-sized avatar
🏠
Working from home

Anatoly Smilik thermonuclear

🏠
Working from home
View GitHub Profile
@thermonuclear
thermonuclear / Ordersbundlespromocode.php
Created April 15, 2021 12:57
контроллер для управления промокодами
<?php
class Controller_Admin_Ordersbundlespromocode extends Controller_AdminBase
{
public function before()
{
parent::before();
if (!Model_Users::canUser('administrate_order_bundles')) {
@thermonuclear
thermonuclear / Exception.php
Created April 15, 2021 12:46
расширение класса исключений для логирования и показа заглушки на проде
<?php
defined('SYSPATH') or die('No direct script access.');
class Kohana_Exception extends Kohana_Kohana_Exception
{
const siteId = 1;
const site = 'cms.obr.nd';
public static $dbException = false;
public static $existedErrorLog = [];
@thermonuclear
thermonuclear / Casedeclination.php
Created April 15, 2021 12:38
склонение дней по падежам
<?php
class Service_Casedeclination
{
// склонение дней по падежам
public static function getDay(int $days): string
{
$case = '';
@thermonuclear
thermonuclear / Payment.php
Created April 15, 2021 12:29
Платеж через юкассу
<?php
use YooKassa\Client;
use YooKassa\Request\Payments\CreatePaymentResponse;
class Service_Payment
{
/**
* @var YooKassa\Client $kassa
* клиент Юкассы
@thermonuclear
thermonuclear / Main.vue
Created December 12, 2019 16:09
Пример однофайлового компонента Vue.js
<template lang="pug">
div.transportAdvertisingPage
.bgGray
section.wrap(v-show="data.charIn")
h1 Размещение рекламы на транспорте {{ data.charIn }} {{ data.city_where }}. Более <a v-tooltip="'Перейти к списку маршрутов'" :href="'/transport?location[]=' + location + '&now_page=1&action=initJq'">{{ data.moreRoutes }} маршрутов</a> {{ data.charIn }} {{ data.city_where }}<span v-if="data.stateWhere"> и {{ data.stateWhere }}</span>!
.whiteBg.pTop20.noMBottom
.wrap
.mBottom20(style="font-size: 14px") На данной странице представлены актуальные цены всех вариантов размещения рекламы на общественном транспорте в {{ data.cityWhere }}. Мы предлагаем разместить рекламу любого формата как внутри, так и снаружи автобусов и других транспортных средств общественного транспорта {{ data.cityGent }}.
.wrapDescription.wrap
.fl.pRight20.advantage-list
@thermonuclear
thermonuclear / Mediaplan.vue
Created December 12, 2019 16:03
Однофайловый компонент Vue.js
<template lang="pug">
section
div.bgGray
div.wrap.pBottom20
h1 Создайте медиаплан за минуту!
div Результаты медиапланирования выдаются уже в виде списка рекламных поверхностей в Корзине. Также вы можете сохранить их в вашем кабинете. Обратите внимание, что стоимость печати рассчитывается отдельно.
p(v-if="nothing_found" style='color:#F00; font-weight:bold;') Медиаплан не может быть сформирован, поскольку нет необходимого количества поверхностей, отвечающих заданным параметрам. Попробуйте изменить параметры медиаплана или воспользуйтесь #[a(href="/billboards") ручным поиском].
div.clear
.whiteBg.mTop20.pBottom20
@thermonuclear
thermonuclear / split_test.php
Created February 26, 2019 17:45
пример простого А/Б тестирования страницы
<?php
/**
* пример простого А/Б тестирования страницы.
*
* Описание задачи:
* Нужно сделать простейшую систему для сплит-тестирования (А-Б-тестирования). В любом виде: просто скрипт, функции,
* класс, что угодно, просто чтобы это был рабочий и прозрачный код.
* То есть, запускается какой-то скрипт, имеющий какой-то URL, система должна поочередно назначать каждому следующему
* пользователю (=браузеру) вариант А (1) или Б (2), чередуя варианты строго по порядку, и запоминать, какой вариант
* пользователю назначен (т.е. если пользователь зашел на вариант 2, то при любом следующем заходе он должен
@thermonuclear
thermonuclear / HelpPayment.php
Created August 27, 2018 17:13
Класс-хэлпер для модуля прием платежей через яндекс кассу
<?php
/**
* Класс-хэлпер для модуля прием платежей module/mod_payment.php
*
* документация по яндекс кассе
* https://yandex.ru/support/checkout/payments/api.html
* https://kassa.yandex.ru/docs/guides/#bystryj-start
* https://kassa.yandex.ru/docs/checkout-api/#ispol-zowanie-api
* кабинет https://money.yandex.ru/my/tunes
*/
@thermonuclear
thermonuclear / moidokumenti.js
Created January 22, 2018 18:38
Работа с api moidokumenti.ru из google таблиц
//версия 200 - 2.13
function checkMail2MD_all() {
// api_key для кабинета https://1atu.moidokumenti.ru
var api_key = '';
var api_url = "https://1atu.moidokumenti.ru/api/";
// рекламные источники в Мои Документы:
// [{id=6, title=Живосайт}, {id=7, title=Заявка}, {id=8, title=Booking}, {id=9, title=Звонок}]
// id рекламного источника. задавать в каждой функции _checkMail в переменной var advertId;
var advertId;
@thermonuclear
thermonuclear / ResizeImageHelper.php
Created December 21, 2017 18:35
класс для изменения размера изображения
<?php
/**
* Created by PhpStorm.
* Class resizeImageHelper
* User: Smilik Anatolii
* Date: 24.11.2016
* Time: 17:06
*/
namespace allbb\lib\helpers\workWithImages;