Массовая генерация символьного кода в Битрикс

Решение проблем с сайтом на Битрикс

Честно сдернуто со страницы оригинала для удобства поиска )

Генерация символьных кодов для разделов и элементов инфоблоков
Задача:
С генерировать символьные коды для разделов или элементов инфоблока — если они не заданы

Используя скрипт предложенный Николаем Ефремовым делаем так:

1/ открываем командную строку PHP — Рабочий стол — Настройки — Инструменты — Командная PHP-строка [/bitrix/admin/php_command_line.php]
Скопировать в область кода следующий скрипт

if(!CModule::IncludeModule("iblock"))
{
   echo "Error with iblock module!";
   die;
}
$arParams['IBLOCK_ID'] = 17;
$arParams['LIST_CNT'] = 50;
$arParams['IS_ADD_RAND'] = false;
$arParams['TYPE_WORK'] = 'section'; // {section | element}


$arOrder = array(
   "sort" => "inc",
);

$arFilter = array(
   "IBLOCK_ID" => $arParams['IBLOCK_ID'],
   "IBLOCK_LID" => SITE_ID,
   //"CODE" => "",
   "CODE" => false
);

$arTransParams = array(
   "max_len" => 100,
   "change_case" => 'L', // 'L' - toLower, 'U' - toUpper, false - do not change
   "replace_space" => '-',
   "replace_other" => '-',
   "delete_repeat_replace" => true
);

if($arParams['TYPE_WORK'] == 'section'){
   //for SECTIONS
   $db_elemens = CIBlockSection::GetList($arOrder, $arFilter, false);
   $db_elemens->NavStart($arParams['LIST_CNT']);
   echo '<pre>';
   while($ar_res = $db_elemens->GetNext())
   {
      $transName = CUtil::translit($ar_res["NAME"], "ru", $arTransParams);
      if($arParams['IS_ADD_RAND']){
         $transName = $transName.$arTransParams["replace_space"].$ar_res["ID"];
      }
      $arPropArray = Array( "CODE" => $transName );
      
      $el = new CIBlockSection;
      $res = $el->Update($ar_res["ID"], $arPropArray);
      echo "result for <b>".$ar_res["NAME"]."</b> is <b>".$transName.'</b>'.($res?" and OK":" and failed")."\r\n";
   }
   echo '</pre>';
}elseif($arParams['TYPE_WORK'] == 'element'){
   // for ELEMENTS
   $db_elemens = CIBlockElement::GetList($arOrder, $arFilter, false, array("nTopCount" => $arParams['LIST_CNT']));

   $i = 0;
   echo '<pre>';
   while($obElement = $db_elemens->GetNextElement())
   {
      $ar_res = $obElement->GetFields();
      
      $transName = CUtil::translit($ar_res["NAME"], "ru", $arTransParams);
      if($arParams['IS_ADD_RAND']){
         $transName = $transName.$arTransParams["replace_space"].$ar_res["ID"];
      }
      $arPropArray = Array( "CODE" => $transName, );
      
      $el = new CIBlockElement;
      $res = $el->Update($ar_res["ID"], $arPropArray);
      echo "result for <b>".$ar_res["NAME"]."</b> is <b>".$transName.'</b>'.($res?" and OK":" and failed")."\r\n";
   }
   echo '</pre>';
}

2/ Определяемся с инфоблоком — ниже в скрипте в параметр $arParams[‘IBLOCK_ID’] нужно записать его ID

3/ Решаем, нужно ли нам генерировать совсем уникальные коды. Можно вначале пройтись и создать не повторяющиеся, а для повторяющихся добавить в конце ID. За это отвечает параметр $arParams[‘IS_ADD_RAND’] — {true|false}

4/ Указываем шаг выборки — параметр $arParams[‘LIST_CNT’] — большим не стоит делать, максимум 100 элементов за раз

5/ Настраиваем параметры транслита. За это отвечает массив $arTransParams

$arTransParams = array(
   "max_len" => 100,
   "change_case" => 'L', // 'L' - toLower, 'U' - toUpper, false - do not change
   "replace_space" => '-',
   "replace_other" => '-',
   "delete_repeat_replace" => true
);

6/ Указываем для чего будем проводить генерацию — для разделов или для элементов — параметр $arParams[‘TYPE_WORK’] — возможные значения — {section | element}

7/ Жмем кнопку выполнить — прогнать скрипт нужное количество раз

Javascript — настроить фильтр (кейс: умный фильтр Битрикс) для выбора (checkbox) только одного раздела фильтра.

Javascript - настроить фильтр (кейс: умный фильтр Битрикс) для выбора (checkbox) только одного фильтра.

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

Масло масляное, но в группах товаров на сайте есть взаимоисключающие друг друга фильтры.

Для реализации этого в Битрикс, в шаблоне вывода умного фильтра, добавил для input type=»checkbox» в цикле foreach поэлементного вывода дополнительный атрибут

data-filtername="<?=$arItem["NAME"]?>"

где <?=$arItem[«NAME»]?> — это не название пункта фильтра, а название раздела фильтра. Ну, например, раздел фильтра «Цвет» имеет имеет несколько элементов — цветов. Так вот, в каждом элементе раздела «Цвет» будет поле атрибута с названием «Цвет», т.е., data-filtername=»Цвет».

По сути, если элементы фильтра выводятся не в цикле, то атрибут вставляется в нужные input checkbox в HTML.

И там же в шаблоне добавил скрипт для реализации функционала:

<script>

// для первого раздела фильтра
let filterCheck = document.querySelectorAll("input[data-filtername='Одно']");  // выбираем все input с нужным атрибутом
// проходим циклом по всем элементам для проверки: если в другом разделе фильтра уже выбран какой-либо пункт, то, при клике на нашем checkbox, снимаем с него галку и выводим предупреждение

filterCheck.forEach(function(item) {
item.onclick = function() {
if (document.querySelector("input[data-filtername='Другое']:checked")) {
alert('Простите, но невозможно выбрать в фильтре Одно и Другое одновременно.')
item.checked = false; // снимаем галку с элемента
}
}
});

// аналогично первому
let filterCheck2 = document.querySelectorAll("input[data-filtername='Другое']");
filterCheck2.forEach(function(item) {
item.onclick = function() {
if (document.querySelector("input[data-filtername='Одно']:checked")) {
alert('Простите, но невозможно выбрать в фильтре Одно и Другое одновременно')
item.checked = false;
}
}
});

</script>

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

Error: this script must be started from Web Server’s DOCUMENT ROOT при переносе сайта 1С Битрикс (1C Bitrix)

Error: this script must be started from Web Server's DOCUMENT ROOT при переносе сайта 1С Битрикс (1C Bitrix)

Прекрасный Гайд по устранению ошибки Error: this script must be started from Web Server’s DOCUMENT ROOT при переносе сайта 1С Битрикс нашел на сайте НЕКСТАЙП (пруф)

Запощу сюда:

приведу инструкцию, как максимально просто распаковать этот бекап используя веб-сервер, файл restore.php (можно скачать через админку сайта, в разделе Резервное копирование \ Список резервных копий) и частичной правки этого файла.

  1. Заливаем все части архива в созданную директорию на сервере (например /restore_backup/)
  2. Загружаем в директорию с архивами файл restore.php
  3. В файле restore.php находим код (примерно 13 строка)
    if(realpath(dirname(__FILE__)) != realpath($_SERVER['DOCUMENT_ROOT']))
    	die('Error: this script must be started from Web Server\'s DOCUMENT ROOT');

    Его нам нужно закомментировать

  4. Перед закомментированным кодом в п.3 добавляем строчку:
    $_SERVER['DOCUMENT_ROOT'] = __DIR__;

    Далее нам нужно найти начало условной конструкции (примерно от 377 строки, у меня была 420):

    if (!$Step && $_SERVER['REQUEST_METHOD'] == 'GET')

    Наша задача закомментировать всю условную конструкцию, т.к. именно этот кусок кода будет перезатирать наш restore.php самой свежей версией.

  5. Запускаем наш restore.php через браузер и следуем примитивному визарду.

Спасибо ребятам за инструкцию!

Разработка сайта и интернет-магазина для АНБНК — продажа нефтепродуктов и приводной техники

Разработка сайта и интернет-магазина для АНБНК WEBSTUDIUS

Алтай в нашем портфолио представляет компания, занимающаяся продажей нефтепродуктов (бензин, дизтопливо, масло) оптом  – компания АНБНК.

Сайт сделан на системе управления 1С-Битрикс.

(Мы, кстати, являемся официальными партнерами 1С-Битрикс)

Делать сайт на 1С-Битрикс (кто в теме, тот поймет =) ) — то еще удовольствие. Но — справляемся!

Задача программистов сделать так, чтобы все работало безукоризненно.

Так же, необходим удобный поиск, фильтры, каталогизация и вообще – весь внешний вид сайта.

Чтобы посетителю было комфортно!

Мы сделали симпатично, удобно и толково. Чего только стоит скорость работы сайта )))

Bitrix скорость сайта webstudius

Посмотреть сайт: http://anbnk.ru

Заказать сайт-визитку, лендинг, форум, портал или интернет-магазин вы можете, написав нам в Директ, WhatsApp, в ВК, на почту или позвонив нам по телефону +7-913-013-45-51.

Заказывайте у нас сайт любой сложности, на WordPress, 1C-Bitrix или на той системе, которая удобнее вам. Все сделаем в лучшем виде!

Поддержка и доработка сайта производителя металлоконструкций ИНТЕГРАЛ

WEBSTUDIUS, ИНТЕГРАЛ - производство металлоконструкций, integral-nsk.ru, сделать интернет магазин, интернет-магазин, WordPress, Bitrix, 1c-bitrix, разработка сайтов, создание сайта, поддержка сайта, калибровка мониторов, профилирование принтеров, профилирование широкоформатного принтера, профилирование плоттера, MIMAKI, ROLAND, EPSON, CANON, HP, печать ООО, печать ИП, заказать печать или штамп, сколько стоит сайт, стоимость сайта онлайн

Уже достаточное количество времени ведем поддержку, доработку и преобразование сайта известного производителя металлоконструкций в Новосибирске  — компании ИНТЕГРАЛ. Сайт сделан на системе управления 1С-Битрикс.

(Мы, кстати, являемся официальными партнерами 1С-Битрикс)

За это время было сделано очень много:

  • редизайн сайта
  • добавлено внедрение водяных знаков на фото
  • внедрение системы CRM Bitrix24
  • наведен порядок в услугах и продукции
  • внедрены формы лид-генерации
  • внедрены формы обратных звонков и обратной связи

Сделано, конечно, достаточно, но еще есть что дорабатывать. Предстоит реорганизация каталога, как внешнего вида, так и логики работы и это достаточно большая задача.

Но выполнимая 🙂

Заказывайте у нас сайт любой сложности, на WordPress, 1C-Bitrix или на той системе, которая удобнее вам. Все сделаем в лучшем виде! ????

Настройка сети в VirtualBox для виртуальной машины VM Bitrix

Настройка сети в VirtualBox для виртуальной машины VM Bitrix

Виртуальная машина VMBitrix — вещь, безусловно, полезная и необходимая.

Только при развертывании и настройке возникают проблемы, которые мало где описаны понятным языком. Выделю 3 самых актуальных, начиная с установки окружения виртуальной машины Oracle VirtualBox:

  1. Установка ExtPack для VirtualBox (для MacOS и Linux)
  2. Настройка сети для VMBitrix
  3. Смена версии PHP в VMBitrix

Итак, начнем по-порядку.

1. Установить саму VirtualBox проблем не возникает. А вот с установкой расширения почти всегда  возникают проблемы.

Failed to install the Extension Pack /.....
The installer failed with exit code 667:

Решение простое. В терминале вводим команду

sudo VBoxManage extpack install /Users/username/Downloads/Oracle_VM_VirtualBox_Extension_Pack-6.0.8.vbox-extpack

заменяя username на свой вариант. Для Linux путь будет начинаться с /home/username. SUDO обязательно, иначе не установить. 

Все, с этим разобрались.

2. Теперь настроим сеть в VirtualBox и VM Bitrix.

Идем в настройки, выставляем — Сетевой мост (Bridged), Имя — имя нашего адаптера сети.

Настройки сети VirtualBox для VM Bitrix
Сохраняем, запускаем VM Bitrix.

Проходим стандартную процедуру смены паролей, идем в 2. Manage Localhosts

Настройки сети VirtualBox для VM BitrixНастройки сети VirtualBox для VM Bitrix

Далее в 3. Configure Network Interface Manually прописываем IP основной сети.

На запрос добавления DNS отвечаем No, прописываем только IP, Broadcast, Gateway

Перезапускаем сервер, он будет доступен по назначенному вами IP-адресу.

С этим тоже разобрались. Переходим к последнему пункту, из-за которого возникает ошибка

Fatal error: Uncaught TypeError: Argument 1 passed to Bitrix\Main\Diag\ExceptionHandler::handleException() must be an instance of Exception, instance of Error given in bitrix/modules/main/lib/diag/exceptionhandler.php:167 Stack trace: #0 [internal function]: Bitrix\Main\Diag\ExceptionHandler->handleException(Object(Error)) #1 {main} thrown in bitrix/modules/main/lib/diag/exceptionhandler.php on line 167

3. Смена версии PHP на VMBitrix

Идем в 1. Manage Host in the Pool

Смена версии PHP на VMBitrix

Далее — 8. Update  PHP  and  MySQL

Смена версии PHP на VMBitrix

И сначала

откатиться на версию 7.0 (это займет какое-то время), выйти из этих меню, зайти снова по этому же пути и откатиться на версию 5.6

После всех манипуляций можно выполнить пункт 4. Update packages on host, и, проследив, что задание выполнено, перезагрузить сервер.

На этом большинство проблем решено. 🙂

Удачи!

Какой тип сайта лучше выбрать для бизнеса?

Создание сайтов и калибровка мониторов и принтеров ВЕБСТУДИУС

Какой тип сайта выбрать для бизнеса?

В современных условиях интернет является одним из самых главных средств коммуникации между людьми. Именно поэтому практически каждый владелец бизнеса стремится к созданию собственного интернет-ресурса с целью популяризации предоставляемых им услуг или реализуемых товаров. Если вас интересует изготовление сайтов, можете обратиться к нашим специалистам, а данная статья поможет определиться с типом необходимого вам ресурса.

Полезные советы

На сегодняшний день существуют различные классификации сайтов, которые предназначены для популяризации коммерческих компаний в сети. Согласно наиболее распространенному варианту их делят на корпоративные, порталы, промо-сайты, интернет-представительства, информационные, интернет-магазины.

Выбирать конкретный вариант следует, ориентируясь на специфику вашей деятельности. Если целью вашего присутствия в глобальной сети является продажа определённых товаров, стоит заказать разработку интернет-магазина.

Корпоративный сайт станет отличным вариантом для крупной или средней компании. Среди его характерных особенностей стоит выделить наличие специального раздела, предназначенного для использования исключительно сотрудниками компании.

Упрощённым вариантом корпоративного сайта является веб-представительство. С его помощью клиенты могут не только получать информацию о вашей компании, но и совершать заказы.

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

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

 

Заказать разработку сайта, настройку Яндекс Директ, Гугл Эдвордс или поисковую SEO-оптимизацию вы можете, написав нам в чат, в WhatsApp в внижнем правом углу или щелкнув по кнопке ниже )

Как увеличить производительность сайта на 1С Битрикс и не сойти с ума

Решение проблем с сайтом на Битрикс

Так как же, всё-таки, увеличить производительность сайта на Битрикс?

Есть у нас клиент, доставшийся от других разработчиков. И всё, в целом, было, более-менее, в порядке, кроме нескольких вещей, которые жутко раздражали владельца сайта.

Это были — отсутствие адаптивного дизайна и ОЧЕНЬ медленная работа сайта (а, вернее, двух сайтов).

И, если, главная страничка грузилась, говоря с натяжкой, сносно, то при обращении к каталогам — туши свет, можно кофе пить и покурить. Утрируем ))

Монитор производительности Битрикс показывал неутешительные цифры… Что-то около 25-28. И это при том, что сайты крутились ОЧЕНЬ МОЩНОМ виртуальном сервере!

С энтузиазмом взявшись за работу, первым делом, поправив дизайн, мы перешли к сладкому — ускорению сайтов.

Что было сделано?

Часть 1. Начало.

  1. Полная переиндексация
  2. Восстановление и оптимизация баз данных
  3. Выпиливание из старого кода шаблона всех комментариев, и лишнего мусора, типа, не нужных кусков отключенных компоненов (уменьшили размер главной странички)
  4. Минимизация CSS и JS
  5. Ограничение размера картинок до минимально приемлемого
  6. И Главное! Настройка PHP в соответствии с требованиями Битрикс

Итог? Производительность осталась на прежнем уровне 🙁

Часть 2. Мы не сдаемся.

Мы перенастроили кеширование всех элементов, перелопатили кучу мануалов по кэшированию 🙂

Отключали/включали CDN, (кстати, при отключенном работает чуть быстрее, что бы не говорили товарищи из Битрикс)

Отключили все ненужные модули (и даже некоторые немного нужные 🙂 )

Дальше пошли по пути подключаемых модулей «оптимизаторов».

Это модуль оптимизации картинок. Что, кстати, дало некий прирост производительности, особенно при проверке Google Page Speed.

Но, все равно, проблемы это не решило. Было совершенно не понятно, КАК, при МОЩНОМ ВИРТУАЛЬНОМ сервере, на, якобы быстрых дисках, достаточном объеме ОЗУ и быстрых процессорах, вкупе с большой скоростью доступа, производительность 1С-Битрикс остается НИЖЕ, чем на тестовой виртуальной машине!

Часть 3. Решение проблемы.

Это мы пишем не так много. И читать тоже быстро. А, на самом деле, прошло достаточно много времени. Заказчик в нас еще верил.. Где-то в глубине души.

И не зря!

В итоге, мы сменили хостинг. Вот просто взяли  — и сменили. Настройки PHP и хостинговая часть была изначально оптимизирована под нужды Битрикс, мы восстановили, пока еще, только один из двух сайтов, для проверки,

И что бы вы думали? Теперь производительность Битрикс находится на уровне 80-90. Скорость загрузка сайта редко когда бывает больше 1,5 секунды. Хотя, раньше, нередко доходила до 3 секунд. Это в цифрах не так наглядно. А вот в реальной работе отличия более, чем существенны. Сайт стал «летать» (тьфутьфутьфу)

МЫ ПОБЕДИЛИ! УРА!

Скриншоты прилагаем.

скорость работы сайта Битрикс

[dt_before_after image_1=»2588″ image_2=»2589″ orientation=»vertical» navigation=»move»]

Подопытный сайт Angel-Tex.ru

Второй сайт — Afr-Shop.ru всё еще болтается на старом хостинге, можно посмотреть, как он работает сейчас. (Особенно днём, под нагрузкой)

Старый хостинг: RuVDS.com

Вот странно, он, судя по отзывам, нормальный и раскрученный. Но нам не зашёл. Бывает.

Новый хостинг: Golden Internet

Не то, чтобы на слуху, и вообще не раскручен. Но очень адекватная техподдержка, быстрая и грамотная. И лояльная 🙂

Ну и скорость работы и оптимизация хорошая.

Если у вас есть вопросы или проблемы с Битрикс, обращайтесь, попробуем вам помочь!

Открыть чат
1
Попробуйте написать нам в WhatsApp!
Попробуйте написать нам в WhatsApp!