MAXYSS-IT - Рабочие материалы - все сообщения

Отложенный вывод на любой странице (Битрикс)

Вне компонентов

 <? 
$APPLICATION->ShowViewContent("resultSearch"); // собственно вывод - метка для подстановки
?>
 
<?ob_start(); // старт отложенного вывода?>

<p class="rituals__subtitle">
 НАЙДЕНО <?=$count?> РЕЗУЛЬТАТ<?=BITGetDeclNum($count, $status= array('','а','ов'))?>
</p> 

 <?
 $content = ob_get_contents(); // сложили все в буфер
ob_end_clean(); // очистили 
?>
 <?$APPLICATION->AddViewContent("resultSearch", $content); // объявили метку и указали что в ней выводить  ?> 
Результат -  тэг р будет выведен выше по дому, там где стоит метка для подстановки

Кастомизация админки Битрикса - Вклиниваемся в меню действий в списке

Кастомизируем админку Битиркса по-уму - ловим событие OnAdminListDisplay .

Читать подробнее...

Фото:

Функция возврата окончания слова при склонении

Функция возврата окончания слова при склонении
Можно положить в init.php

if(!function_exists('BITGetDeclNum'))
{

    /**      
   * Возврат окончания слова при склонении
   * Функция возвращает окончание слова, в зависимости от примененного к ней числа      
   * Например: 5 товаров, 1 товар, 3 товара 
   * @param int $value - число, к которому необходимо применить склонение    
   * @param array $status - массив возможных окончаний      
   * @return mixed      
   */
    function BITGetDeclNum($value=1, $status= array('','а','ов'))     {
     $array =array(2,0,1,1,1,2);
     return $status[($value%100>4 && $value%100<20)? 2 : $array[($value%10<5)?$value%10:5]];
    }
} 

SEO шаблоны в Битриксе (памятка)

В шаблоне можно использовать обычный текст.
Использовать специальные конструкции в фигурных скобках, внутри нужно сначала писать знак равно, пример {=this.Name}. Есть зарезервированные слова:
this — текущий элемент. Пример: {=this.Code} — символьный код элемента.
parent — родительская секция. Пример: {=parent.PreviewText} — анонсовый текст родительского раздела

Читать подробнее...

Загрузка файла ajax-ом

Чтобы загрузить файл ajax-ом :
1) html стандарный, но обязательно указать enctype="multipart/form-data" в форме

Читать подробнее...

Задачка с яндекс.картой

Прежде всего немного воды. В функционал Битрикса широко внедрены карты (яндекс и гугл). Они довольно просто настраиваются есть функционал, который доступен простому (неподготовленному, не программисту) пользователю позволяющий решить задачи в рамках несложных потребностей. Но вот поступает задача более широкого плана, в частности: вывести элементы относящиеся к разным категориям, т.е. как-то должны сортироваться, кроме этого элементы (точки на карте) должны фильтроваться по разным параметрам, причем этих параметров довольно много и на финише

Читать подробнее...

Битрикс - обмен с 1С и https - не идет обмен данными

 RewriteCond %{SERVER_PORT} 80
    RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange\.php$ [NC]
    RewriteCond %{REQUEST_URI} !^/robots.txt$ [NC]
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L,QSA]

    RewriteCond %{SERVER_PORT} 443
    RewriteRule ^(/bitrix/admin/1c_exchange\.php)$ http://%{HTTP_HOST}/$1 [R=301,L,QSA]
    RewriteRule ^(/robots.txt)$ http://%{HTTP_HOST}/$1 [R=301,L,QSA]

Кодировка кирилицы в вызовах ajax

Если сайт работает в win-1251 и мы делаем отправку данных ajax-ом, то кириллица кодируется при помощи escape-последовательностей. Чтобы не получать кракозяблы нужно перекодировать данные уже на ajax-странице:

$f = iconv('UTF-8', 'windows-1251', $_GET['text']); 

Отложенный вывод данных из компонента

 вывод в любом месте перед реальным появлением данных 

$APPLICATION->ShowViewContent('mycontent');

 
в шаблоне любого компонента 

<?$this->SetViewTarget("mycontent");//дальше контент который буферизируется?> 
<div class="test">test</div> 
<?$this->EndViewTarget();//конец буферизации?>

Добавление своей кнопки в админку Битрикса

Добавим кнопку на страницу просмотра/редактирования заказа в админке Битрикса

Читать подробнее...

Фото:

shell-клиент - полезные команды

Обратный и прямой  DNS-запрос IP-адреса (для проверки поисковых ботов на подлинность)

Читать подробнее...

iblock.element.add.form - вызов в ajax

iblock.element.add.form не отвечает в ajax-вызове в случае успешного заполнения формы. Связано это с тем, что компонент в этом случае делает редирект - фактически мы получаем другую страницу, а не ту, что вызывали в ajax-е
В архиве слегка поправленный компонент в своем пространстве имен.
Файлы:
maxyss.tar.gz (17.65 КБ)

Многоязычность, недокументированные возможности

Заявленный функционал поддержки нескольких языков на поверку оказывается не такой уж прозрачной задачей. Константа LANGUAGE_ID, к которой приковывают  все внимание на экзамене по интеграции шаблона в академии битрикса, по факту не поддается переопределению (на то она и константа) в коде страницы.

Читать подробнее...

Несколько единиц измерения для одного элемента (товара)

Пользователю предоставлена возможность менять «на ходу» единицы измерения. Как вариант – керамическая (кафельная) плитка, может быть измерена квадратными метрами, штуками и коробками. В карточке товара админка битрикса дает возможность установить в качестве единицы измерения только одну из величин, остальные величины дописали как свойства элемента инфоблока. Привязку сделали по части символьного кода, название свойства служит заголовком для альтернативной единицы измерения, в значении свойства храниться коэффициент. Код JS битрикса не модифицировался, на кнопки «добавить», «уменьшить» дописали свои JS, которые пересчитывают, значения для  

Читать подробнее...

Фото:

Прилипающий (плавающий) блок на JQuery

Реализаций много, это всего лишь одна из них. Здесь реализован плавающий блок, который двигается относительно соседнего и верха экрана, при достижении нижней части левого блока движение прекращается, делалось для корзины. В случае если высота левого блока меньше правого – движения не будет. Также код не будет выполняться для мобильных устройств в следствии верстки в одну колонку:

Читать подробнее...

Получение корневого раздела в дереве каталога для элемента

Записываю, что бы не искать третий раз оригинал здесь: http://alexvaleev.ru/margin-sections-bitrix/
задача возникает редко, поэтому решение не откладывается, лучше записать:
 CModule::IncludeModule('iblock');
$dbSect = CIBlockSection::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>$arResult["IBLOCK_ID"], "<=LEFT_BORDER" => $arResult["LEFT_MARGIN"], ">=RIGHT_BORDER" => $arResult["RIGHT_MARGIN"], "DEPTH_LEVEL" => 1), false); 
$arSect = $dbSect->GetNext();

Кастомзация загрузки заказов из 1С в Битрикс

  • Загрузка XML-заказа:
    "http://site.com/bitrix/admin/1c_exchange.php?type=sale&mode=import&sessid=SESSID&filename=FILENAME"
    где SESSID - идентификатор сессии, его можно получить через консоль вебинспектора, выполнив там команду BX.bitrix_sessid().
    FILENAME - имя загружаемого файла из папки /upload/1c_exchange
  • Код загрузки XML заказов находится в файле /bitrix/modules/sale/general/order_loader.php метод CSaleOrderLoader::nodeHandler().
  • Выгрузка XML заказов:
    /bitrix/admin/1c_exchange.php?type=sale&mode=query&sessid=SESSID
Страницы: 1 | 2 | 3 | 4 | 5 | След.