Skip to content

Instantly share code, notes, and snippets.

@alex28742
Last active May 24, 2019 13:56
Show Gist options
  • Save alex28742/b2dbc70c7f193fa15672a090f64892dd to your computer and use it in GitHub Desktop.
Save alex28742/b2dbc70c7f193fa15672a090f64892dd to your computer and use it in GitHub Desktop.
область включаемая по параметру:
<? if($_GET["cmd"]=="slider"): ?>
...
<? endif; ?>
работать будет при указании в доп. параметрах /?cmd=slider
---------------------------------------------------------------------------------------------
Константы файла after_connect.php (bitrix/php_interface/after_connect.php)
<?
$DB->Query("SET NAMES 'utf8'");
$DB->Query('SET collation_connection = "utf8_unicode_ci"');
$DB->Query("set sql_mode=''");
?>
---------------------------------------------------------------------------------------------
поиск подстроки в строке
<? if(strpos($_SERVER[REQUEST_URI], 'actual') == 0) echo " not-actual" ?>
---------------------------------------------------------------------------------------------
В noindex тег на странице
<? if(strpos($_SERVER['REQUEST_URI'],'/rybopromyslovaya-firma-variant/piksha/')!==false) echo "<noindex>"; ?>
<a href="?action=ADD2BASKET&id=<?=$arResult['ID']?>" class="bttn">купить</a>
<? if(strpos($_SERVER['REQUEST_URI'],'/rybopromyslovaya-firma-variant/piksha/')!==false) echo "</noindex>"; ?>
---------------------------------------------------------------------------------------------
<? if ($APPLICATION->GetCurPage(false) == '/'): ?>
<!-- проверка на главную -->
<? endif; ?>
---------------------------------------------------------------------------------------------
Ошибка Error Переменная sql_mode в MySQL должна быть пустая, текущее значение: NO_ENGINE_SUBSTITUTION
Решение:
В файле /bitrix/php_interface/after_connect.php, строку $DB->Query("SET sql_mode='NO_ENGINE_SUBSTITUTION'");
Меняем на $DB->Query("SET sql_mode=''");
---------------------------------------------------------------------------------------------
добавление доп. параметров в форму contact-form7 (в файле plugins/contact-form-7/includes/contact-form.php)
if($_SERVER['REQUEST_URI'] == "/otpravit-zapros/")
$body = "yaCounter31050146.reachGoal('zapros'); return true;";
else $body = "";
$atts = array(
'action' => esc_url( $url ),
'method' => 'post',
'class' => $class,
'enctype' => wpcf7_enctype_value( $enctype ),
'autocomplete' => $autocomplete,
'novalidate' => $novalidate ? 'novalidate' : '',
'role' => $body,
);
---------------------------------------------------------------------------------------------
замена подстроки в строке
$html = str_replace ( "form" , "my_form", $html ); в строке $html заменит "form" на "my_form"
---------------------------------------------------------------------------------------------
добавление подстроки в строку
$html = substr_replace($html, " 465465", 126, 0); в строку $html добавим "465465" начиная с 126 символа
---------------------------------------------------------------------------------------------
формирование ссылки для возврата в список элементов из детальной
<a href="<?=$arResult["FOLDER"].$arResult["VARIABLES"]["SECTION_CODE"]?>/"><?=GetMessage("T_NEWS_DETAIL_BACK")?></a>
---------------------------------------------------------------------------------------------
in atom do not work emmet - solution:
I had found myself solution. In your keymap.cson (File -> Settings -> Keybindings -> Click to your keymap file) please add following:
'atom-text-editor[data-grammar="text html php"]:not([mini])':
'tab': 'emmet:expand-abbreviation-with-tab'
---------------------------------------------------------------------------------------------
Правильное подключение стилей и скриптов в bitrix
после <?$APPLICATION->ShowHead();?>
подключаем ядро D7
use Bitrix\Main\Page\Asset;
после чего подключаем файлы (если сайты в папке шаблона: SITE_TEMPLATE_PATH)
CJSCore::Init(array("jquery"));
Asset::getInstance()->addCss(SITE_TEMPLATE_PATH . '/bootstrap.min.css');
Asset::getInstance()->addJs(SITE_TEMPLATE_PATH . '/js/plugins/....');
Asset::getInstance()->addString("<link rel='shortcut icon' href='/local/favicon.ico' />");
Asset::getInstance()->addString("<meta name='viewport' content='width=device-width, initial-scale=1'>");
Asset::getInstance()->addString("<link href='https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&amp;subset=cyrillic,cyrillic-ext' rel='stylesheet'>");
---------------------------------------------------------------------------------------------
watermark добавление водяного знака
добавить в шаблон компонента (карточки)
<?
$arWaterMark = Array(
array(
"name" => "watermark",
"position" => "center", // Положение
"type" => "image",
"size" => "real",
"file" => $_SERVER["DOCUMENT_ROOT"].'/images/wm300.png', // Путь к картинке от корня сайта
"fill" => "exact",
"alpha_level" => 30
)
);
?>
в конец строк, поставить переменную
$renderImage = CFile::ResizeImageGet($arResult['DETAIL_PICTURE'], Array("width" => 400, "height" => 400), BX_RESIZE_IMAGE_EXACT, false, $arWaterMark);
доработка ватермарки для миниатюр:
<span class="thumb">
<span>
<img src="<?
$arWaterMark = Array(
array(
"name" => "watermark",
"position" => "center",
"type" => "image",
"size" => "real",
"file" => $_SERVER["DOCUMENT_ROOT"].'/bitrix/templates/fishorder/images/water/w1.png',
"fill" => "exact",
"alpha_level" => 30
)
);
$renderImage = CFile::ResizeImageGet($item['PREVIEW_PICTURE']['ID'], Array("width" => 210, "height" => 150), BX_RESIZE_IMAGE_EXACT, false, $arWaterMark);
echo $renderImage['src']?>" alt="<?=$item['NAME']?>">
</span>
</span>
---------------------------------------------------------------------------------------------
danio ARtudgYHb2MMdQgebRtmG24A
---------------------------------------------------------------------------------------------
Переводим битрикс на MySQLi с MySQL при переносе на PHP 7
# vi /home/bitrix/www/bitrix/php_interface/dbconn.php
define("BX_USE_MYSQLI", true);
# vi /home/bitrix/www/bitrix/.settings.php
array (
'default' =>
array (
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
'host' => 'localhost',
---------------------------------------------------------------------------------------------
Убираем атрибуты type='text/javascript' в Bitrix
Необходимо с помощью события onEndBufferContent отлавливать атрибут type в исходном коде и вырезать регулярным выражением. Для этого разместите в init.php (/bitrix/php_interface/init.php или /local/php_interface/init.php) следующий код:
AddEventHandler("main", "OnEndBufferContent", "removeType");
function removeType(&$content)
{
$content = replace_output($content);
$content = replace_output_style($content);
}
function replace_output($d)
{
return str_replace(' type="text/javascript"', "", $d);
}
function replace_output_style($d)
{
return str_replace(' type="text/css"', "", $d);
}
---------------------------------------------------------------------------------------------
WP - передача GET параметра в форму
[text* your-name default:get]
---------------------------------------------------------------------------------------------
тобоган подключение языковых данных
<?
$h = 'Что такое Тобогган?';
$t = 'Картинка лучше тысячи слов…';
if (strpos($_SERVER['REQUEST_URI'],'/eng/')!==false) {
$h = 'What is Toboggan?';
$t = 'A picture is worth a thousand words…';
}
if (strpos($_SERVER['REQUEST_URI'],'/arm/')!==false) {
$h = 'Իսկ ի՞ նչ է Տոբոգանը';
$t = 'Պատկերներն արդեն իսկ հազարավոր բառեր արժեն…';
?><style type="text/css">.elementor-25288 .elementor-element.elementor-element-b82a4d1 .elementor-heading-title {font-family: "fedrasansarm-bold", Sans-serif;text-transform: none;}</style><?
}
if (strpos($_SERVER['REQUEST_URI'],'/ara/')!==false) {
$h = 'ما هو توبوغان؟';
$t = 'صورة تساوي ألف كلمة…';
}
?>
---------------------------------------------------------------------------------------------
путь к файлу
echo "<div>--<span style='display:none;'>Полный путь к скрипту и его имя: ".$_SERVER['SCRIPT_FILENAME']."</span></div>";
---------------------------------------------------------------------------------------------
google analitics цель на нажатие кнопки
onClick="gtag('event', 'click', {'event_category' : 'категория', 'event_label' : 'действие'});"
---------------------------------------------------------------------------------------------
Включаемая область "MODE"=>"text" или "MODE"=>"php"
<? $APPLICATION->IncludeFile(SITE_TEMPLATE_PATH."/include/work.php",Array(),Array("MODE"=>"php")); ?>
---------------------------------------------------------------------------------------------
превышено время обращения к БД
в файле dbconn.php дописать:
<?
//$DB->Query("SET NAMES 'utf8'");
//$DB->Query('SET collation_connection = "utf8_unicode_ci"');
//$DB->Query("set sql_mode=''");
$DB->Query("SET wait_timeout=28800");
?>
---------------------------------------------------------------------------------------------
если есть SSH, то чтобы не терять время пока скачается/закачается - с командной строки команда
wget "https://www.1c-bitrix.ru/download/small_business_encode.zip"
это скачать малый бизнес, т.е. внутрь кавычек подставить ссылку на нужный архив - скачается за считанные секунды
---------------------------------------------------------------------------------------------
php_value mbstring.internal_encoding UTF-8
php_value mbstring.func_overload 2
php_value max_input_vars 10000
---------------------------------------------------------------------------------------------
file_put_contents('log.txt', print_r($_REQUEST, true));
---------------------------------------------------------------------------------------------
Проверка на админа admin
global $USER;
if ($USER->IsAdmin()) echo "Вы администратор!";
---------------------------------------------------------------------------------------------
noidex для элемента на странице
<? // SEO
if($APPLICATION->GetCurPage(false) == '/catalog/mebelnye-fasady/'){
$noindex_start = "<noindex>";
$noindex_end = "</noindex>";
}
else {
$noindex_start = "";
$noindex_end = "";
}
?>
<?=$noindex_start;?>......<?=$noindex_end;?>
---------------------------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment