jQuery check init plugin for element
Проверка плагина примененного к элементу jQuery
1 |
$('.catalog_filter_list:data(flickity)') |
Нужно применить атрибут
1 |
$('ELEMENT:data(ПЛАГИН)') |
Проверка плагина примененного к элементу jQuery
1 |
$('.catalog_filter_list:data(flickity)') |
Нужно применить атрибут
1 |
$('ELEMENT:data(ПЛАГИН)') |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# https://phptoday.ru/post/gotovim-lokalnuyu-sredu-docker-dlya-razrabotki-na-php # Версия docker-compose version: '2' # Список наших сервисов (контейнеров) services: nginx: container_name: nginx # используем последний стабильный образ nginx image: nginx:latest networks: application_nerwork: ipv4_address: 172.18.18.2 # маршрутизируем порты ports: - "80:80" - "443:443" # монтируем директории, слева директории на основной машине, справа - куда они монтируются в контейнере volumes: - ./hosts:/etc/nginx/conf.d - ./www:/var/www - ./logs:/var/log/nginx # nginx должен общаться с php контейнером links: - php php: container_name: php # у нас свой образ для PHP, указываем путь к нему и говорим что его надо собрать build: ./images/php networks: application_nerwork: ipv4_address: 172.18.18.3 # этот образ будет общаться с mysql links: - mariadb depends_on: - mariadb # монтируем директорию с проектами volumes: - ./www:/var/www mariadb: container_name: mariadb image: mariadb:10.3 expose: - 3312 networks: application_nerwork: ipv4_address: 172.18.18.4 ports: - 3312:3306 volumes: - ./mariadb:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: root_password_security phpmyadmin: container_name: phpmyadmin image: phpmyadmin/phpmyadmin networks: application_nerwork: ipv4_address: 172.18.18.5 ports: - 8765:80 environment: MYSQL_ROOT_PASSWORD: root_password_security links: - mariadb:db depends_on: - mariadb networks: application_nerwork: driver: bridge driver_opts: com.docker.network.enable_ipv6: "false" ipam: driver: default config: - subnet: 172.18.18.0/24 gateway: 172.18.18.1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
server { server_name yii2docker.dev; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /var/www/yii2docker.dev/web; index index.php; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } location / { # Перенаправляем все запросы к несуществующим директориям и файлам на index.php try_files $uri $uri/ /index.php?$args; } location ~ /\.(ht|svn|git) { deny all; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
FROM php:7.1-fpm-alpine # intl, zip, soap RUN apk add --update --no-cache libintl icu icu-dev libxml2-dev \ && docker-php-ext-install intl zip soap # mysqli, pdo, pdo_mysql RUN docker-php-ext-install mysqli pdo pdo_mysql # mcrypt, gd, iconv RUN apk add --update --no-cache freetype-dev libjpeg-turbo-dev libmcrypt-dev libpng-dev \ && docker-php-ext-install iconv mcrypt \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install gd # gmp, bcmath RUN apk add --update --no-cache gmp gmp-dev \ && docker-php-ext-install gmp bcmath # redis, apcu RUN docker-php-source extract \ && apk add --no-cache --virtual .phpize-deps-configure $PHPIZE_DEPS \ && pecl install redis \ && pecl install apcu \ && docker-php-ext-enable redis apcu \ && apk del .phpize-deps-configure \ && docker-php-source delete # imagick RUN apk add --update --no-cache autoconf g++ imagemagick-dev libtool make pcre-dev \ && pecl install imagick \ && docker-php-ext-enable imagick \ && apk del autoconf g++ libtool make pcre-dev # git client, mysql-client RUN apk add --update --no-cache git mysql-client # pcntl RUN docker-php-ext-install pcntl RUN sed -i -e 's/listen.*/listen = 0.0.0.0:9000/' /usr/local/etc/php-fpm.conf RUN echo "expose_php=0" > /usr/local/etc/php/php.ini WORKDIR /var/www CMD ["php-fpm"] |
в config/db host прописываем IP mariadb или название контейнера в данном случае mariadb
1 |
cat [FI]<дата>.<имя_пользователя>*.tgz.part* > <архив>.tgz && tar zxvf <архив>.tgz |
1 |
cat [FI]2018-06-09.myuser.tgz.part* > new.tgz |
Объединение архивов part, в один архив и распаковка
1 2 3 4 5 6 7 |
function oneLine($string) { $string = str_replace(["\r", "\n", "\t"], null, $string); $string = mb_ereg_replace('[\s]+', ' ', $string); $string = trim($string); return $string; } |
Для апача
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<ifModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_ACCEPT} image/webp RewriteCond %{REQUEST_URI} (?i)(.*)(\.jpe?g|\.png)$ RewriteCond %{DOCUMENT_ROOT}%1.webp -f RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1\.webp [L,T=image/webp,R] </IfModule> <IfModule mod_headers.c> Header append Vary Accept env=REDIRECT_accept </IfModule> AddType image/webp .webp |
1 |
$.pjax.reload({container: '#pjax-shops-list', timeout: 5000, data: {city:id}, replace:false}); |
1 2 3 4 5 6 7 8 9 10 |
'pager' => [ 'class' => ScrollPager::class, 'enabledExtensions' => [ ScrollPager::EXTENSION_SPINNER, ScrollPager::EXTENSION_PAGING, ], 'eventOnReady' => "function(){ itemsInCategory(); }", 'eventOnRendered' => "function(){ itemsInCategory(); }", 'negativeMargin' => -1000, ] |
1 2 3 4 5 |
RewriteCond %{HTTP_HOST} ^sub1.example.com [OR] RewriteCond %{HTTP_HOST} ^sub2.example.com [OR] RewriteCond %{HTTP_HOST} ^old.example.com [OR] RewriteCond %{HTTP_HOST} ^forum.example.com RewriteRule ^(.*)$ https://www.example.com%{REQUEST_URI} [L,R=301] |
Используем ключевой параметр [OR], для задачи условия нескольким элементам. Тем самым мы добьемся, что старые поддомены будут редиректить на основной домен
Запретить отправку формы при нажатие на Enter в input можно следующим способом:
1 2 3 4 5 6 7 |
$('#formID').on('keyup keypress', function(e) { let keyCode = e.keyCode || e.which; if (keyCode === 13) { e.preventDefault(); return false; } }); |
Из выгрузки берем features->geometry->coordinates Массив вида
1 2 3 4 |
[[ ['23,23', '23,2323'], ['24,23', '24,2323'], ]]; |
Меняем местами координаты
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public function actionTest() { $array = [ ['34,43', '34,2323'], ['34,43', '34,2323'], ['34,43', '34,2323'], ]; $string = "[["; foreach ($array as $key) { $string .= '['; $string .= str_replace(',', '.', $key[1]) . ',' . str_replace(',', '.', $key[0]); $string .= '],'; } if (substr($string, -1) == ',') { $string = substr($string, 0, -1); } $string .= ']]'; $file = Yii::$app->otherFiles->getBucket('dump'); $file->saveFileContent('zona1.txt', $string); } |
Пример из жизни:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public function actionUpdateBaseZones($baseId) { $path = 'file.json'; $data = file_get_contents($path); $data = json_decode($data); foreach ($data->features as $features) { if ($features->geometry->type == 'Polygon') { $cords = []; $zona = intval(preg_replace("/[^0-9]/", '', $features->properties->description)); foreach ($features->geometry->coordinates as $coordinate) { foreach ($coordinate as $cord) { $cords[] = [$cord[1], $cord[0]]; } } $model = BaseZone::modify($baseId, $zona, '[' . json_encode($cords) . ']'); $model->save(); } } } |