// Загружаем кашерный файл
LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,article,available,currencyId,delivery,description,id,name,oldprice,param,picture,price,url,vendor,advcampaign_id,advcampaign_name);
// Загружаем только нужные поля (!!!)
LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,@ISBN,@adult,@age,article,@attrs,@author,available,@barcode,@binding,@brand,@categoryId,@country_of_origin,currencyId,delivery,description,@downloadable,@format,@gender,id,@local_delivery_cost,@manufacturer_warranty,@market_category,@model,@modified_time,name,oldprice,@orderingTime,@page_extent,param,@performed_by,@pickup,picture,price,@publisher,@sales_notes,@series,@store,@syns,@topseller,@type,@typePrefix,url,vendor,@vendorCode,@weight,@year,advcampaign_id,advcampaign_name,@deeplink);
// Все поля
LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,ISBN,adult,age,article,attrs,author,available,barcode,binding,brand,categoryId,country_of_origin,currencyId,delivery,description,downloadable,format,gender,id,local_delivery_cost,manufacturer_warranty,market_category,model,modified_time,name,oldprice,orderingTime,page_extent,param,performed_by,pickup,picture,price,publisher,sales_notes,series,store,syns,topseller,type,typePrefix,url,vendor,vendorCode,weight,year,advcampaign_id,advcampaign_name,deeplink);
document.addEventListener('click', function(){ console.log(this, arguments); });
document
, а непосредственно на каждую из кнопок, внутри обработчика this
будет тем самым кликнутым элементом. <?php
require_once 'vendor/autoload.php';
use BotMan\BotMan\BotMan;
use BotMan\BotMan\BotManFactory;
use BotMan\BotMan\Drivers\DriverManager;
use BotMan\BotMan\Cache\CodeIgniterCache;
$config = [
'facebook' => [
'token' => 'EAAZAT6dcgYDQBAC6x7X******85SLSPF0BRCVeRPPgutgtfvZCkZC9lxnP5pYcRXtF0m7sOAliTEztGPR45cOxx3rZAMZBc9Mb9UhB62gBSG2kXTo7ldyk2fTquadMJQVY8nqKxiOakLXLUZBCSavncCljoe5IAZDZD',
'app_secret' => 'b52517e****71b6afa76dca657',
'verification'=>'my_example_veryfy_token',
],
"vkontakte" => [
"token" => "9af81c610faf0ea319*****d17b0b2b53b164ff3b18cc1b9d4e422fd15db046594139078"
],
'telegram' => [
'token' => '60176***:****fVCz43IblR72siiyfbebv7wgqCn8tc'
]
];
DriverManager::loadDriver(\BotMan\Drivers\Vkontakte\VkontakteDriver::class);
DriverManager::loadDriver(\BotMan\Drivers\Facebook\FacebookDriver::class);
DriverManager::loadDriver(\BotMan\Drivers\Telegram\TelegramDriver::class);
$this->load->driver('cache');
$botman = BotManFactory::create($config, new CodeIgniterCache($this->cache->file));
$botman->hears('привет', function (BotMan $bot) {
$bot->reply('Хай.');
});
$botman->fallback(function($bot) {
$bot->reply('Чё ??? ...');
});
$botman->listen();
iconv('utf-8', 'windows-1251', тут_ваш_ответ_сервера);
class Parent {
constructor() {
this._name = 'Иван'
}
get name() {
return this._name
}
}
class Child extends Parent {
constructor() {
super()
this._patronymic = 'Иванович'
}
get patronymic() {
return this._patronymic
}
getMsg() {
console.log(`${super.name} ${this.patronymic}`)
}
}
const child = new Child()
child.getMsg()
Итак, я учусь на geekbrains веб-разработке.
статьи и пр. это конечно хорошо, но применять на практике то, что прочитал, это совершенно другое, а особенно в боевых условиях
$({ myProp: A }) // начальное значение A
.animate(
{ myProp: B }, // целевое конечное значение B
{ // всякие опции анимации: время, функция на каждый шаг и т.п.
step: function(now, tween) { } // эта будет вызываться на каждом шаге анимации
}
);
const $price = $("#banner-message > p > span");
$("button").on("click", function(){
const oldPrice = parseInt($price.text());
const newPrice = Math.round(500 + Math.random() * 4500);
$({price:oldPrice}).animate({price:newPrice}, {
step: (now, tween) => $price.text(Math.round(tween.elem.price))
});
});
document.querySelector('.body').classList.add("test2");
var elements = document.getElementsByClassName("body");
for (var i = 0; i < elements.length; i++) {
elements[i].classList.add("test2");
}
outline: inset 100px green;
устанавливает этот контур в виде псевдотрехмерной рамки за счёт осветления правой и нижней границ и затемнения левой и верхней относительно указанного цвета. Ширина 100px, цвет зелёный.outline-offset: -125px;
, которое задаёт смещение контура. При положительном значении контур будет расширяться во все стороны. А при отрицательном будет сжиматься внутрь элемента.outline-offset: -125px;
он должен сжаться внутрь элемента на 125px со всех сторон, а спецификация визуально ограничивает сжатие до outline-offset: -50px;
(по 50px внутрь с каждой стороны элемента). То есть контур должен просто сойтись вместе со всех сторон, образуя квадрат в нашем случае и насколько больше не ставь отрицательное значение, больше он сжиматься не должен. Но реализация в браузерах не учитывает это поведение и выдаёт непонятные фигуры, если отрицательное значение слишком большое.