bitrix умный фильтр переделка урла

Умный фильтр выдает урл вида
site.ru/tovars/filter/property1-is-8e4e6038-474d-11e6-80e5-94de807e86a2/apply/
А нужен вида
site.ru/tovars/?filter[]=property1-is-8e4e6038-474d-11e6-80e5-94de807e86a2
чтобы не индексировался.
Замена в catalog/index.php


		"SEF_URL_TEMPLATES" => Array(
			"smart_filter" => "#SECTION_CODE_PATH#/?filter[]=#SMART_FILTER_PATH#"

не полное решение.
(далее…)

Битрикс набор функций

Наверно, самый популярный метод — список элементов


$res = CIBlockElement::GetList(
  Array("SORT"=>"DESC") , // $arOrder 
  array('IBLOCK_ID'=>55), // $arFilter
  false, // $arGroupBy 
  Array("nTopCount"=>10), // $arNavStartParams
        array('ID' , 'NAME') // arSelectFields
); 
while($ob = $res->GetNext(true, false)){
    print_r($ob );
}

(далее…)

редактор vi , nano

перейти в режим вставки — A
режим команд — Esc и Shift + :
Команды:
:w — Запись
:q — Выйти
:q! — выйти без сохранения
:s/строка — поиск
:s/строка/новая строка — замена
:30 — перейти к 30-й строке
:u — Undo
Ctrl + R — Redo

Nano

Select: ALT + M + A
Select line: CTRL + 6
Copy: ALT + 6
Paste: CTRL + U

  • Alt-U or Option-U — undo
  • Alt-E or Option-E — redo

 

ssh добавление публичного ключа


// генерим публичный ключ. passphrase оставляем пустым. 
ssh-keygen
// копируем на удаленный сервер в файл authorized_keys
cat  .ssh/id_rsa.pub | ssh user@dev10.ru " cat >> ~/.ssh/authorized_keys "
// удалить старый ключ
ssh-keygen -R 192.168.1.123

Битрикс кастомизация умного фильтра

часто возникает задача поменять шаблон catalog.smart.filter — например, селект сделать картинками, а на range slider цен навесить свои ползунки. Разобраться в битриксовом винегрете из html, php, js можно в этом посте.
Шаблон условно легко поделить на фильтр по св-вам, к-е указали в админке (Магазин — Основной каталог товаров — Настройки каталога), и фильтр по ценам. Это 2 цикла с пометками //prices //not prices (далее…)

paymaster запрос для онлайн-касс

С появлением онлайн-касс paymaster поспешил обновить апи, к-е почему то не представлено на сайте, а доступно только после общения с ТП. Для печати чеков пеймастер добавил в запрос параметры товаров LMI_SHOPPINGCART. (далее…)

php webdav yandex-disk

Бэкапы можно хранить на яндекс диске. Складируем их по протоколу webdav на php. Есть клиент под этот протокол. Качаем http://sabre.io/dav/install/


composer require sabre/dav ~3.2.0

Документация не самая полная, однако в коде куча комментов, так что без проблем разобраться.


use Sabre\DAV\Client;

include 'vendor/autoload.php';

$settings = array(
    'baseUri' => 'https://webdav.yandex.ru',
    'userName' => 'user',
    'password' => 'pass123',
    // 'proxy' => 'locahost:8888',
);

// должна лежать на уровень выше текущей папки
$LOCAL_back_folder = 'backups';
$YA_back_folder = 'my_backups';

$client = new Client($settings);

(далее…)

sublime лучшие плагины

Sublime вполне может заменить PHPStorm или Netbeans, а в некоторых случаях эта питон машина может даже обойти ява друга.

  1. SublimeLinter + SublimeLinter-php / SublimeLinter-jsl / SublimeLinter-jscs . Просто маст-хэв любого саблаймера. Дебаггер моментально подстветит ошибку.
  2. SFTP — шикарный плагин с гибкой настройкой.
  3. IntelliDocs / DocPHPManualer — быстрые подсказки в стиле phpstorm. hkeys: F2 / Ctrl+Alt+D.
  4. Emmet — просто по умолчанию, настолько нужная вещь.
  5. HTML, CSS, JS prettify — форматирование кода.
  6. Local history — просмотр истории файла.
  7. Compare Side-By-Side.

Вот более полный список файла Package Control.sublime-settings


{
	"bootstrapped": true,
	"in_process_packages":
	[
	],
	"installed_packages":
	[
		"Agila Theme",
		"Behave Color Scheme",
		"ColorPicker",
		"Compare Side-By-Side",
		"Compass",
		"CSS Format",
		"DocBlockr",
		"Emmet",
		"File History",
		"Go To Definition",
		"HTML-CSS-JS Prettify",
		"IntelliDocs",
		"JavaScript Completions",
		"Libraries from CDN",
		"Local History",
		"Package Control",
		"PHP Completions Kit",
		"PhpBeautifier",
		"Sass",
		"SASS Build",
		"SFTP",
		"SideBarEnhancements",
		"SublimeLinter",
		"SublimeLinter-php",
		"SublimeOnSaveBuild",
		"Twig",
		"Xdebug Client"
	],
	"repositories":
	[
		"https://github.com/SublimeText/PhpBeautifier"
	]
}

его надо кинуть в папку .config/sublime-text-3/Packages/User . Конечно, прежде должен быть руками установлен менеджер плагинов Package control.
Плагин sftp легко крякнуть, вставив код в .config/sublime-text-3/Packages/User/SFTP.sublime-settings


{
    "email": "manhunter.pcl@shareware.must.die",
    "product_key": "61faaf-dac84e-9f9945-4301a1-a7ec06"
}

Некоторые горячие клавиши


[
	{ "keys": ["ctrl+shift+r"], "command": "reveal_in_side_bar" },
	{ "keys": ["ctrl+alt+w"], "command": "close_all" },
        { "keys": ["f5"], "command": "refresh_folder_list" },
]

Билд пхп — New build system


{
	"cmd": ["php", "$file"],
	"selector": "source.php"
}

Автосохранение


"save_on_focus_lost": true

shiptor api добавление посылки

Создадим посылку, используя сервис. Shiptor предоставляет Public и Shipping api. Нам нужен 2-й, метод addPackage.
Код можно скачать с этого репозитория https://github.com/esteit/shiptor-russia-php-api-client . Можно воспользоваться примером shiptor-russia-php-api-client/samples/ShippingEndpoint/AddPackage.php (далее…)

WordPress перевод тем и плагинов

Все переводы лежат в папке wp-content/languges.
Находим в теме или плагине подобные строки кода


__( 'Page', 'twentyfifteen' )
esc_html_e( 'Featured Stores', 'wp-coupon' );

или просто вытаскиваем из сайта искомые слова, к-е хотим перевести. Перевод будет лежать в файле с аналогичным названием.


msgid "Page"
msgstr "Страница"

Конвертируем в каком либо сервисе po в mo файл. Или попроще


msgfmt   wp-theme-ru_RU.po  -o wp-theme-ru_RU.mo

linux полезные команды


// перенос с удаленного сервера на локальный (pull) recursive, verbose, compress, human readable, archive mode, progress
// В rsync слеш на конце имеет значение - будет выгружено содержимое директории.
rsync -vrzhaP man@site.ru:www/sitedir/site.ru site.local
// тоже самое scp
scp user@site.ru:www/sitedir/site.ru site.local
// скачать пропуская существующие файлы, и исключить директорию upload, cache
rsync --ignore-existing --exclude "upload" --exclude "cache"
// если нет ssh, есть ftp. Закачать с локального на удаленный (ключ -R)
lftp -e 'mirror -R local/ /home/user/remote/ ' -u user,PassWorD dev10.ru
// скачать с удаленного на локальный
lftp -e 'mirror  remote/ local/ ' -u user,PassWorD dev10.ru
//  скачать/закачать исключая некоторые директории, а также пропуская уже существующие
mirror --only-newer --exclude "upload/" --exclude "bitrix/cache/"
// монтировать фтп сервер как локальный для манипуляции с файлами
curlftpfs ftp.server.ru /mnt/ftp/ -o user=username:password

// поиск в файле 
grep 'string' path/to/file/file.txt 
// поиск в директории 
grep -r 'string' dir 
//поиск с подсчетом строк 
grep -oni 'string' file.txt | wc -l 
// копирование, перемещение 
cp -r my/dir new/dir mv old/dir new/dir 
// символическая ссылка 
ln -s /path/to/link link_name 
// быстро заменить в файле строку 
sed -i 's/string/new_string/g' file.txt 
// удалить всю строку содержащую текст 
sed -i '/some string/d' file.txt 
// bitrix поиск измененных файлов за 22-е число, исключая папки кеша 
find . -type f ! -path "*/cache/*" ! -path "*/managed_cache*" ! -path "*/upload/*" ! -path "*/html_pages/*" -ls |grep 'мая 22' > may22_bez_cache.log 
// дамп БД с сжатием 
mysqldump -u user -pupasswd my-database | gzip > one.sql.gz 
// импорт сжатой бд 
gunzip < myfile.sql.gz | mysql -u root -p 
mydb zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database 
// быстро просмотреть строки от n - m 
sed -n '500,505p;' backup.sql 
// просмотр архива 
tar -tf archive.tar.gz 
// сортировка вывода по 5 колонке 
ls -la | sort -k 5 
// вывод прогресса с помощью pv , tee 
unzip -q upload.zip | pv -l > /dev/null 
// быстро закачать файл по протоколу webdav 
curl -T backup.tar -umyname:mypass https://webdav.yandex.ru/dir | tee /dev/null 
// поделить файл на части и вывести n-й столбец. awk по сути это split. 
awk -Fuser '{print $2}' /var/log/auth.log 
// вывести имена файлов в столбик, без атрибутов
ls -1 admin_*
// распаковать конкретную папку 
unzip archive.zip /path/need/extract 
tar -xzf archive.tar.gz /path/need/extract 
// распаковать в конкретную папку (ключ -C) 
tar -xzf archive.tar.gz -С /path/to/ /path/need/extract 
// вывести 5 самых крупных директорий 
du -h some/dir/path | sort -nr | head -n 5 


// быстро создать несколько файлов
array=(header.php footer.php styles.css template_styles.css description.php);for i in ${array[@]};do touch $i;done;
// битрикс бэкап
cat *.tar.gz* >> mysite_backup.tar.gz
// рекурсивно заменить строки. ключ -l выводит совпадения списком
grep -rl oldtext . | xargs sed -i -e 's/oldtext/newtext/g'
// сжать картинки формата png
for i in some/dir/*.png; do optipng  -p "$i" ; done;
// сжать картинки формата jpg 
for i in some/dir/*.jpg; do jpegoptim -p "$i" ; done; 

// убить процессы 1 дневной давности
killall -o 1d php