Customize - uniqcle/Bitrix GitHub Wiki
Подключаем свои скрипты в init.php
use Bitrix\Main\EventManager;
EventManager::getInstance()->addEventHandler(
'main',
'OnEpilog',
[StrahEvents::class, 'OnEpilog']
);
EventManager::getInstance()->addEventHandler(
'main',
'OnProlog',
[StrahEvents::class, 'OnProlog']
);
class StrahEvents
{
public static function OnProlog()
{
global $USER;
$arJsConfig = array(
'custom_start'=>array(
'js'=>'/local/additional/main.js',
'css'=>'/local/additional/main.css',
'rel'=>array()
)
);
foreach ($arJsConfig as $ext => $arExt) {
\CJSCore::RegisterExt($ext, $arExt);
}
CUtil::InitJSCore(array('custom_start'));
}
public static function OnBeforePrologHandler()
{
CJSCore::Init(array('jquery2'));
}
public static function OnEpilog()
{
}
}
Через подключенные CSS и JS
local/additional/main.css
local/additional/main.js
/*#crm_scope_detail_c_deal__tab_quote{*/
/* display: none !important;*/
/*}*/
/*Долг по компаниии: 1000 руб*/
:root {
--black_red: rgba(254, 44, 49, 0.72);
}
.companyAlert {
padding-top: 10px;
padding-bottom: 10px;
padding-left:10px;
background-color: var(--black_red);
color: white;
}
// Долг по компаниии: 1000 руб
//
BX.ready(function () {
let url = window.location.href.split('/');
let companyID = url[6];
let urlCompany = "/crm\/company\/details\/" + companyID + "\/";
// Если мы находимся в компании
if ( urlCompany === window.location.pathname ) {
let detailTabs = document.getElementById("company_" + companyID +"_details_tabs");
if ( detailTabs ) {
let fd = new FormData();
fd.append('COMPANY', companyID);
showAlertDiv( detailTabs );
// $.ajax({
// url: 'get.php',
// type: 'post',
// data: fd,
// contentType: false,
// processData: false,
// success: function(response){
//
// let showAlert = JSON.parse(response);
//
// if ( showAlert === true ) {
//
// showAlertDiv( detailTabs );
//
// }
//
// },
// });
}
}
});
function showAlertDiv( detailTabs ) {
var divAlert = document.createElement("div");
var text = document.createTextNode("Долг по компаниии: 1000 руб");
divAlert.appendChild(text);
divAlert.className = "companyAlert";
detailTabs.prepend(divAlert);
}
Через модификацию шаблона системных компонентов
Копируем компонент в local/templates/.default/components/bitrix/catalog.productcard.details/
Модификация только в данном случае только шаблона компонента.
1.Редактируем
/home/bitrix/www/local/templates/.default/components/bitrix/catalog.productcard.details/.default/template.php
2.Создаем
/home/bitrix/www/local/templates/.default/components/bitrix/catalog.productcard.details/.default/tabs/images.php
Модификация через result_modifier.php
1.Создаем файл result_modifier
в нужном системном компоненте и добавляем вкладку
/bitrix/components/bitrix/crm.company.details/templates/.default/result_modifier.php
if ( is_array ( $arResult["TABS"] ) ) {
$tab['id'] = 'company_history';
$tab['name'] = "История компании";
$tab['loader']['serviceUrl'] = "/local/components/itjet/history/lazyload.ajax.php?&sites1&sessid=".$_SESSION["fixed_session_id"];
$tab['loader']['componentData']['template'] = "";
$tab['loader']['componentData']['params'] = [
"OWNER_ID"=> $arResult["ENTITY_ID"]
];
$arr1 = array_slice($arResult["TABS"],0,1, true);
array_push($arr1, $tab );
$arr2 = array_slice($arResult["TABS"], 1, count($arResult["TABS"]) - 1, true) ;
$arResult["TABS"] = array_merge( $arr1, $arr2 );
}
- Создаем компонент
/home/bitrix/www/local/components/itjet
local\components\itjet\history\lazy_load.ajax.php
<?php
define('NO_KEEP_STATISTIC', 'Y');
define('NO_AGENT_STATISTIC', 'Y');
define('NO_AGENT_CHECK', true);
define('PUBLIC_AJAX_MODE', true);
define('DisableEventsCheck', true);
$siteID = isset($_REQUEST['site']) ? substr(preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['site']), 0, 2) : '';
if ($siteID !== '') define('SITE_ID', $siteID);
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();
if (!check_bitrix_sessid()) die();
$componentData = isset($_REQUEST['PARAMS']) && is_array($_REQUEST['PARAMS']) ? $_REQUEST['PARAMS'] : array();
$componentParams = isset($componentData['params']) && is_array($componentData['params']) ?
$componentData['params'] : array();
$componentParams['MODE'] = "LIST";
global $APPLICATION;
Header('Content-Type: text/html; charset=' . LANG_CHARSET);
$APPLICATION->ShowAjaxHead();
$APPLICATION->IncludeComponent('itjet:history',
'history',
$componentParams,
false,
array('HIDE_ICONS' => 'Y')
);
completeLazyLoad();
function completeLazyLoad($message = '')
{
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
die($message);
}
local\components\itjet\history\component.php
$this->IncludeComponentTemplate();
local\components\itjet\history\templates\history\
<h1>История компании</h1>
<h2>История компании</h2>
<h3>История компании</h3>