Битрикс: «Ошибка удаления. Возможно есть ссылающиеся объекты.» при попытке удалить инфоблок

Ситуация: при настройке в 1С и тестах обменов в Битрикс выгружается номенклатура. На сайте создались несколько ненужных каталогов товаров и предложений. Содержимое этих ИБ не использовалось в работе сайта (не создавались заказы и пр.).

Проблема: при попытке удалить любой из этих ИБ возникает ошибка: «Ошибка удаления. Возможно есть ссылающиеся объекты.»

Задача: таки удалить бесполезные инфоблоки, появившиеся врезультате тестов.

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

Решение

Смена кодировки git-репозитория с CP-1251 на UTF-8

Ситуация: изначально все файлы в репозитории были в кодировке cp-1251 (aka win-1251), но в какой-то момент было решено перейти на utf-8. Разработка ведётся на Windows.

Проблема: некорректное отображение кириллицы в оболочке git bash при выполнении команд git log, git diff, git show, etc; белиберда в сообщениях коммитов.

Задача: исправить отображение кириллицы.

Бонус: кириллица будет верно отображаться в GitLab.

Решение

Laravel 5.8: как скопировать значения из старой колонки в новую во время миграции?

Ситуация: во время разработки проекта на Laravel возникла необходимость заменить один столбец другим. Для этого нужно написать миграцию.

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

Решение: очень простое и очевидное — изменить схему, записать значения, изменить схему. Далее привожу пример готовой заготовки миграции:

Посмотреть миграцию

Fancybox 1.3.4 не работает с jQuery 1.9.0 и выше. Как исправить?

Ситуация: В проекте использовался jQuery 1.8.3 и Fancybox 1.3.4.

Проблема: Fancybox перестал работать после апдейта jQuery до версии 1.12.4. В консоли браузера была ошибка:

fancybox() is not a function  
Решение

PhpStorm 2017+: некорректные цвета файлов на панели Project

Ситуация: в IDE была установлена тема Material Theme. После первого взгляда стало понятно, что с ней будет трудно жить, поэтому тема была удалена.

Проблема: цвета файлов на панели Project остались некорректными (теми, что были установлены при настройке темы).

Решение

Сходства сериалов «Друзья» и «Теория большого взрыва»

Привет. Я сейчас смотрю 7 сезон ТБВ, а «Друзей» посмотрел давно. Сегодня ночью внезапно стал очерчивать в уме какие-то общие черты этих сериалов.

И я не ожидал, что смогу найти столько совпадений. При том, что ТБВ я отсмотрел только чуть больше половины, а финальный 12-ый сезон ещё продолжается.

Материалы, подобные этому посту, я намеренно не гуглил — составлял по своим личным воспоминаниям и впечатлениям.

Возможно, список будет пополняться дальше, по ходу моего приближения к финалу ТБВ. Вот что имеется на текущий момент:

Читать далее Сходства сериалов «Друзья» и «Теория большого взрыва»

Битрикс: как разлогинить любого заблокированного пользователя. 100% рабочий метод.

Быстрая заметка.

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

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

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

Решение: проверять флаг активности текущего пользователя и перенаправлять на адрес логаута в публичной части.

Описание: Читать далее Битрикс: как разлогинить любого заблокированного пользователя. 100% рабочий метод.

Как настроить удалённую отладку xDebug + phpStorm

Привет.

Эта тема изжёвана-пережёвана на мульён раз. Но иногда всё-таки забываю этот простой алгоритм действий, ибо я к этому вопросу не возвращаюсь, однажды настроив что надо. Поэтому в голове достоверно ничего не откладывается.

Посему решено опубликовать заметку здессь, чтобы потом точно знать где её искать. Тут просто выжимка самой сути, а не пошаговая инструкция. Но ссылки на таковые я оставлю в конце. Читать далее Как настроить удалённую отладку xDebug + phpStorm

Phalcon + Volt: вставить GET-параметр в ссылку на именованный маршрут через link_to()

Имеем — маршрут:

$adminRouteGroup
->add('/files/delete?id=:int', [
    'controller' => 'files',
    'action' => 'delete',
    'id' => 1,
])
->setName('file_delete');

Хотим — в Volt-шаблоне получить ссылку типа такой:

http://example.com/files/delete?id=123

Для этого в шаблоне пишем:

{{ link_to(['for':'file_delete', 'id':123], 'Удалить', 'class':'btn btn-danger btn-sm', 'id':'del_btn') }}

Разберём пример:

[
  'for':'file_delete' — для этого маршрута
  'id':123 — имя GET-параметра, объявленного в маршруте, и его значение
]
'Удалить' — текст на ссылке
'class':'btn btn-danger btn-sm' — html-атрибут class
'id':'del_btn' — html-атрибут id

Когда встала такая задача, быстро наткнулся на эту ветку: stackoverflow.com. На деле всё оказалось сильно проще.

Phalcon 3.4.1

Шпаргалка: Master-slave репликация MySQL 5.7

Введение

Это мой рецепт, который я использую на проектах. В сети можно найти разные другие инструкции. Но они различаются только командами, которые по сути своей выполняют одно и то же. Например, чтобы заблокировать запись в БД, можно использовать как эти команды:

SET GLOBAL read_only = ON;  # вкл только чтение
SET GLOBAL read_only = OFF; # выкл только чтение

так и эти:

FLUSH TABLES WITH READ LOCK; # вкл только чтение
UNLOCK TABLES; # выкл только чтение

Либо импортирование БД из дампа на слейве можно выполнить и так:

$ mysql -u root -p
> USE mydb;
> SOURCE ~/mydb.sql

и эдак:

$ mysql -u root -p mydb < mydb.sql

Я считаю так. Чтобы выполнить задачу по сабжу, особо можешь не заморачиваться — главное понимать что происходит в целом. Но фундаментальное понимание сути этих команд будет только в плюс.

Здесь же я собрал универсальный рецепт как поднять и восстановить репликацию. Поехали. Читать далее Шпаргалка: Master-slave репликация MySQL 5.7