diff --git a/.gitignore b/.gitignore index 62c8935..ba12db7 100644 Binary files a/.gitignore and b/.gitignore differ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e2f9002 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,31 @@ +Работа с базой знаний +===================== + +## Терминалогия + +### Fork +Клон любого репозитория, являющийся самостоятельным репозиторием, имеющим ссылку на репозиторий, который был +источником для клона. + +### Pull request +Запрос на слияние (merge) изменений. Может производится между как ветками одного репозитория так и между ветками +разных репозиториев (между форком и его источником, например). + +## Процесс добавления изменений + +Для добавления изменений в базу знаний требуется произвести следующую последовательность действий: + +1. Создаем свой `fork` репозитория базы знаний +2. Делаем изменения +3. Отправляем `pull request` в базу знаний + +Чтобы получить изменения, сделанные другими людьми в ваш `fork` вам нужно отправить `pull request` +из базы знаний в свой `fork` + +[Дополнительная информация по работе с форками](https://help.github.com/articles/fork-a-repo/) + +## Создание статьи + +Все файлы статей располагаются в директории `articles`. Каждая статья представляет собой отдельную +директорию с файлом статьи в формате [markdown](https://github.com/DsXack/knowbase#user-content-Форматирование-текста). В этой директории можно располагать дополнительные файлы, такие +как изображения, используемые в статье и другие. __На главной страницы базы знаний должна быть ссылка на вашу инструкцию__. diff --git a/README.md b/README.md index 5eaec77..ef4287d 100644 --- a/README.md +++ b/README.md @@ -3,16 +3,39 @@ Сборник статей компании "Рабочие решения". +- [Работа с базой знаний](#user-content-Работа-с-базой-знаний) + - [Форматирование текста](#user-content-Форматирование-текста) +- [Git](#git) +- [PhpStorm](#phpstorm) +- [JavaScript](#javascript) + - [jQuery](#jquery) +- [Php](#php) +- [Программирование](#user-content-Программирование) +- [Проектирование](#user-content-Проектирование) +- [1С-Битрикс](#user-content-1С-Битрикс) +- [Zend Framework 2](#zend-framework-2) +- [Linux](#linux) + +## Работа с базой знаний + +- [Инструкция](CONTRIBUTING.md) + + ### Форматирование текста + - [Markdown (википедия)](https://ru.wikipedia.org/wiki/Markdown) + - [Markdown Basics](https://help.github.com/articles/markdown-basics/) + - [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/) + - [Writing on GitHub](https://help.github.com/articles/writing-on-github/) + ## Git -- [Инструкция по работе с Git](articles/git/instruction/README.md) +- [Инструкция по работе с Git](articles/Git/Инструкция/README.md) - [Scott Chacon - Pro Git (ru)](http://git-scm.com/book/ru) - бесплатная книга про Git - [Пропробуй Git](https://try.github.io) - интерактивный курс от [codeschool.com](http://codeschool.com) для [github.com](http://github.com) ## PhpStorm - [Эффективное использование PhpStorm](https://docs.google.com/presentation/d/1jWt3zD64y-HjEJUDtnCJz8f7npZIE8JZ0Dj-arTS9Ks/edit#slide=id.g180ed61f7_0139) - презентация-обзор возможностей PhpStorm (mac) - [Эффективное использование PhpStorm](http://goo.gl/gZfTqp) - презентация-обзор возможностей PhpStorm (win+linux) -- [Как создавать шаблоны кода](articles/phpstorm/how-create-templates/README.md) -- [Шаблоны кода для работы с 1С-Битрикс](articles/phpstorm/bitrix-templates.md) +- [Как создавать шаблоны кода](articles/PhpStorm/Как создавать шаблоны кода/README.md) +- [Шаблоны кода для работы с 1С-Битрикс](articles/PhpStorm/Шаблоны кода для работы с 1С-Битрикс/README.md) - [Прохождение PHPUnit тестов на удаленном сервере через SSH c PhpStorm](http://confluence.jetbrains.com/display/PhpStorm/Running+PHPUnit+tests+over+SSH+on+a+remote+server+with+PhpStorm) ## JavaScript @@ -28,14 +51,24 @@ - [petrgrishin/array-access](https://github.com/petrgrishin/array-access) - работа с массивами в объектно-ориентированном стиле - [sokolovsky/Verifier](https://github.com/sokolovsky/Verifier) - валидация полей в объектно-ориентированном стиле +## Программирование +- [Регулярные выражения](media/regexp.pdf) + ## Проектирование - [Где реализовать знание об адресах контроллера?](http://habrahabr.ru/post/226237/) +## Тестирование +- [Работа с инструментом управления браузерами Selenium IDE](http://selenium2.ru/docs/selenium-ide.html) +- [Приемы проектирования тестов](http://selenium2.ru/docs/test-design-considerations.html) + ## 1С-Битрикс -- [Свойство "Привязка к разделам инфоблока в новом окне"](articles/bitrix/property-link-to-section-information-block-in-a-new-window/README.md) +- [Модуль миграций](articles/Bitrix/Модуль миграций/README.md) +- [WS Tools](https://github.com/worksolutions/bitrix-module-tools/) - набор инструментов поддержки проектов +- [Свойство "Привязка к разделам инфоблока в новом окне"](articles/Bitrix/Свойство - привязка к разделам инфоблока в новом окне/README.md) ## Zend Framework 2 - [Подключение DoctrineORM к ZF2](http://marco-pivetta.com/doctrine-orm-zf2-tutorial/) - презентация ## Linux -- [Командная строка Linux](articles/linux/shell.md) +- [Advanced Bash-Scripting Guide](http://www.opennet.ru/docs/RUS/bash_scripting_guide/) - подробный мануал по использованию командной строки linux, а так же написание собственных сценариев +- [Командная строка Linux](articles/Linux/Shell/README.md) diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/README.md" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/README.md" new file mode 100644 index 0000000..4658746 --- /dev/null +++ "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/README.md" @@ -0,0 +1,98 @@ +Модуль миграций +=============== + +### Установка и настройка + +Для установки в адресную строку сайта добавить: + +``` +/bitrix/admin/update_system_partner.php?addmodule=ws.migrations +``` + +При установке модуля необходимо определить основные параметры, такие как: путь к каталогу миграций. В этом каталоге будут создаваться файлы для поддержки (импорта/экспорта) актуализации схемы данных. Лучше всего каталог сделать версионируемым, в противном случае актуальность каталога необходимо будет обеспечивать в ручном режиме при помощи копирования фалов, учитывая все версии проекта. + +###### Установка параметров при установке модуля + +![Рис 1. Установка параметров при установке модуля.](Установка параметров при установке модуля.png) + +В процессе установки создаются ссылки по всем записям мигрирующих сущностей. + +После установки модуля в настройках можно активировать учет миграций разделов инфоблоков. Так как эта сущность не всегда нуждается в `мигрировании` по умолчанию она отключена. + +###### Настройка модуля + +![Рис 2. Настройка модуля.](Настройка модуля.png) + +Активирование тестов в настройках необходимо только при работе над реализацией функционала непосредственно модуля, активирование этого флага непосредственно в проекте может привести к непредсказуемым результатам. + +### Начало работы + +Для начала успешного применения модуля миграций в проекте необходимо произвести инициализацию начального состояния. В первую очередь нужно определить какая версия проекта является наиболее актуальной. К примеру для проекта, который находится в разработке наиболее актуальной версией является одна из версий разработчиков, либо демонстрационная. В проекте, которому обеспечивается техническая поддержка - наоборот, наиболее актуальной можно назвать `production` версию. + +##### Способы инициализации в зависимости от приведенных выше ситуаций: + + 1. ##### Импорт схемы данных. + + Использовать в случае развертывания на `production` сервере разработанного проекта. Необходимо произвести экспорт миграций актуальной версии разработчика на странице управления модулем `Экспорт миграций`. + + ###### Экспорт схемы миграций + + ![Рис 3. Экспорт схемы миграций.](Экспорт схемы миграций.png) + + Полученную схему загрузить на `production` версию проекта на странице импорт миграций. Обязательно указать флаг “Перенос только схемы” и загрузить файл с актуальной схемой. При этом должны создаться необходимые инфоблоки проекта, со списком ссылок. + + ###### Импорт схемы данных миграций + + ![Рис 4. Импорт схемы данных миграций.](Импорт схемы данных миграций.png) + + 2. ##### Использования дампа данных проекта. + + Даже при наличии данных у разработчиков, при подключении модуля миграций, рекомендуется использовать именно этот способ, т.к. является наиболее стабильным решением. Для этого необходимо сделать дамп данных проекта используя стандартные инструменты Битрикс (у источника дампа данных должен быть активирован модуль миграций) и применить его на версии разработчика. Важно: Сразу после применения дампа необходимо на странице импорта миграций активировать текущую версию, нажав для этого кнопку `Применить` (флаг `Перенос только схемы` должен быть + неактивен). + + ###### Произведение импорта в момент следующий за обновлением дампа данных. + + ![Рис 5. Произведение импорта в момент следующий за обновлением дампа данных.](Произведение импорта в момент следующий за обновлением дампа данных.png) + + ###### Что происходит в этом случае? + + В этом случае происходит обновление хэша текущей версии вместе с обновлением ссылок всех сущностей. + +### Как происходит учет изменений (фиксации в файлы) + +Учет изменений осуществляется при помощи обработки событий изменения предметной области, события регистрируются для каждого обработчика модуля (например есть обработчик миграций разделов информационных блоков). При этом обработчик обрабатывает только один тип сущности. + +При событии изменении данных вызываются определенные методы обработчика для создания нового снимка схемы данных, который помещается во вновь созданную фиксацию и сохраняется в файл (формат json). + +### Применение изменений + +Применение изменений осуществляется при анализе файлов фиксаций, вычисляются новые фиксации, извлекаются их данные и при помощи обработчиков которые сохраняли эти данные для фиксаций эти данные обновляют текущую схему. Важно понимать, что при создании новых сущностей сторонних версий создаются фиксации учета ссылок текущей версии, которые так же необходимо экспортировать синхронизировть файлы каталога миграций). + +###### Интерфейс применения миграций, т.е. изменений основанных на парралельных версиях проекта. + +![Рис 6. Интерфейс применения миграций, т.е. изменений основанных на парралельных версиях проекта.](Интерфейс применения миграций.png) + +Для более глубокого понимания применения изменений с учетом версионирования есть схема. + +### Откат изменений + +Любые изменения фиксаций журналируются. Сохраняются как новые данные, так и снимок созданный перед применением миграций. Таким образом существует возможность отката последнего обновления. Так же стоит отметить, что обновления устанавливаются пакетами и при применении обновлений сохраняется запись о пользователе установившем обновления и времени обновления. + +### Диаграммы работы модуля + + 1. ###### Диаграмма классов + + ![Диаграмма классов](Диаграмма классов.png) + + 2. ###### Диаграмма последовательности (фиксация изменений) + + ![Диаграмма последовательности (фиксация изменений)](Диаграмма последовательности (фиксация изменений).png) + + 3. ###### Диаграмма последовательности (применение изменений) + + ![Диаграмма последовательности (применение изменений)](Диаграмма последовательности (применение изменений).png) + + 4. ###### Версионирование. Принцип определения версий + + ![Версионирование. Принцип определения версий](Версионирование. Принцип определения версий.png) + diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\222\320\265\321\200\321\201\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265. \320\237\321\200\320\270\320\275\321\206\320\270\320\277 \320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\321\217 \320\262\320\265\321\200\321\201\320\270\320\271.png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\222\320\265\321\200\321\201\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265. \320\237\321\200\320\270\320\275\321\206\320\270\320\277 \320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\321\217 \320\262\320\265\321\200\321\201\320\270\320\271.png" new file mode 100644 index 0000000..5f17b0f Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\222\320\265\321\200\321\201\320\270\320\276\320\275\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265. \320\237\321\200\320\270\320\275\321\206\320\270\320\277 \320\276\320\277\321\200\320\265\320\264\320\265\320\273\320\265\320\275\320\270\321\217 \320\262\320\265\321\200\321\201\320\270\320\271.png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\272\320\273\320\260\321\201\321\201\320\276\320\262.png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\272\320\273\320\260\321\201\321\201\320\276\320\262.png" new file mode 100644 index 0000000..541a67a Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\272\320\273\320\260\321\201\321\201\320\276\320\262.png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\277\320\276\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270 (\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265 \320\270\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\271).png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\277\320\276\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270 (\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265 \320\270\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\271).png" new file mode 100644 index 0000000..dca445a Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\277\320\276\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270 (\320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\320\265 \320\270\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\271).png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\277\320\276\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270 (\321\204\320\270\320\272\321\201\320\260\321\206\320\270\321\217 \320\270\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\271).png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\277\320\276\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270 (\321\204\320\270\320\272\321\201\320\260\321\206\320\270\321\217 \320\270\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\271).png" new file mode 100644 index 0000000..d68d8bb Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\224\320\270\320\260\320\263\321\200\320\260\320\274\320\274\320\260 \320\277\320\276\321\201\320\273\320\265\320\264\320\276\320\262\320\260\321\202\320\265\320\273\321\214\320\275\320\276\321\201\321\202\320\270 (\321\204\320\270\320\272\321\201\320\260\321\206\320\270\321\217 \320\270\320\267\320\274\320\265\320\275\320\265\320\275\320\270\320\271).png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\230\320\274\320\277\320\276\321\200\321\202 \321\201\321\205\320\265\320\274\321\213 \320\264\320\260\320\275\320\275\321\213\321\205 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\230\320\274\320\277\320\276\321\200\321\202 \321\201\321\205\320\265\320\274\321\213 \320\264\320\260\320\275\320\275\321\213\321\205 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" new file mode 100644 index 0000000..bfa3a87 Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\230\320\274\320\277\320\276\321\200\321\202 \321\201\321\205\320\265\320\274\321\213 \320\264\320\260\320\275\320\275\321\213\321\205 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201 \320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\321\217 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201 \320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\321\217 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" new file mode 100644 index 0000000..b23b0d7 Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\230\320\275\321\202\320\265\321\200\321\204\320\265\320\271\321\201 \320\277\321\200\320\270\320\274\320\265\320\275\320\265\320\275\320\270\321\217 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260 \320\274\320\276\320\264\321\203\320\273\321\217.png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260 \320\274\320\276\320\264\321\203\320\273\321\217.png" new file mode 100644 index 0000000..17392f7 Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\235\320\260\321\201\321\202\321\200\320\276\320\271\320\272\320\260 \320\274\320\276\320\264\321\203\320\273\321\217.png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\237\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265 \320\270\320\274\320\277\320\276\321\200\321\202\320\260 \320\262 \320\274\320\276\320\274\320\265\320\275\321\202 \321\201\320\273\320\265\320\264\321\203\321\216\321\211\320\270\320\271 \320\267\320\260 \320\276\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\274 \320\264\320\260\320\274\320\277\320\260 \320\264\320\260\320\275\320\275\321\213\321\205.png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\237\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265 \320\270\320\274\320\277\320\276\321\200\321\202\320\260 \320\262 \320\274\320\276\320\274\320\265\320\275\321\202 \321\201\320\273\320\265\320\264\321\203\321\216\321\211\320\270\320\271 \320\267\320\260 \320\276\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\274 \320\264\320\260\320\274\320\277\320\260 \320\264\320\260\320\275\320\275\321\213\321\205.png" new file mode 100644 index 0000000..9f1eb07 Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\237\321\200\320\276\320\270\320\267\320\262\320\265\320\264\320\265\320\275\320\270\320\265 \320\270\320\274\320\277\320\276\321\200\321\202\320\260 \320\262 \320\274\320\276\320\274\320\265\320\275\321\202 \321\201\320\273\320\265\320\264\321\203\321\216\321\211\320\270\320\271 \320\267\320\260 \320\276\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\274 \320\264\320\260\320\274\320\277\320\260 \320\264\320\260\320\275\320\275\321\213\321\205.png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260 \320\277\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262 \320\277\321\200\320\270 \321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\265 \320\274\320\276\320\264\321\203\320\273\321\217.png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260 \320\277\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262 \320\277\321\200\320\270 \321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\265 \320\274\320\276\320\264\321\203\320\273\321\217.png" new file mode 100644 index 0000000..35a3d6a Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260 \320\277\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262 \320\277\321\200\320\270 \321\203\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\265 \320\274\320\276\320\264\321\203\320\273\321\217.png" differ diff --git "a/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\255\320\272\321\201\320\277\320\276\321\200\321\202 \321\201\321\205\320\265\320\274\321\213 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\255\320\272\321\201\320\277\320\276\321\200\321\202 \321\201\321\205\320\265\320\274\321\213 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" new file mode 100644 index 0000000..9e5e36b Binary files /dev/null and "b/articles/Bitrix/\320\234\320\276\320\264\321\203\320\273\321\214 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271/\320\255\320\272\321\201\320\277\320\276\321\200\321\202 \321\201\321\205\320\265\320\274\321\213 \320\274\320\270\320\263\321\200\320\260\321\206\320\270\320\271.png" differ diff --git a/articles/bitrix/property-link-to-section-information-block-in-a-new-window/README.md "b/articles/Bitrix/\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\276 - \320\277\321\200\320\270\320\262\321\217\320\267\320\272\320\260 \320\272 \321\200\320\260\320\267\320\264\320\265\320\273\320\260\320\274 \320\270\320\275\321\204\320\276\320\261\320\273\320\276\320\272\320\260 \320\262 \320\275\320\276\320\262\320\276\320\274 \320\276\320\272\320\275\320\265/README.md" similarity index 100% rename from articles/bitrix/property-link-to-section-information-block-in-a-new-window/README.md rename to "articles/Bitrix/\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\276 - \320\277\321\200\320\270\320\262\321\217\320\267\320\272\320\260 \320\272 \321\200\320\260\320\267\320\264\320\265\320\273\320\260\320\274 \320\270\320\275\321\204\320\276\320\261\320\273\320\276\320\272\320\260 \320\262 \320\275\320\276\320\262\320\276\320\274 \320\276\320\272\320\275\320\265/README.md" diff --git a/articles/bitrix/property-link-to-section-information-block-in-a-new-window/image-1.png "b/articles/Bitrix/\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\276 - \320\277\321\200\320\270\320\262\321\217\320\267\320\272\320\260 \320\272 \321\200\320\260\320\267\320\264\320\265\320\273\320\260\320\274 \320\270\320\275\321\204\320\276\320\261\320\273\320\276\320\272\320\260 \320\262 \320\275\320\276\320\262\320\276\320\274 \320\276\320\272\320\275\320\265/image-1.png" similarity index 100% rename from articles/bitrix/property-link-to-section-information-block-in-a-new-window/image-1.png rename to "articles/Bitrix/\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\276 - \320\277\321\200\320\270\320\262\321\217\320\267\320\272\320\260 \320\272 \321\200\320\260\320\267\320\264\320\265\320\273\320\260\320\274 \320\270\320\275\321\204\320\276\320\261\320\273\320\276\320\272\320\260 \320\262 \320\275\320\276\320\262\320\276\320\274 \320\276\320\272\320\275\320\265/image-1.png" diff --git a/articles/bitrix/property-link-to-section-information-block-in-a-new-window/image-2.png "b/articles/Bitrix/\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\276 - \320\277\321\200\320\270\320\262\321\217\320\267\320\272\320\260 \320\272 \321\200\320\260\320\267\320\264\320\265\320\273\320\260\320\274 \320\270\320\275\321\204\320\276\320\261\320\273\320\276\320\272\320\260 \320\262 \320\275\320\276\320\262\320\276\320\274 \320\276\320\272\320\275\320\265/image-2.png" similarity index 100% rename from articles/bitrix/property-link-to-section-information-block-in-a-new-window/image-2.png rename to "articles/Bitrix/\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\276 - \320\277\321\200\320\270\320\262\321\217\320\267\320\272\320\260 \320\272 \321\200\320\260\320\267\320\264\320\265\320\273\320\260\320\274 \320\270\320\275\321\204\320\276\320\261\320\273\320\276\320\272\320\260 \320\262 \320\275\320\276\320\262\320\276\320\274 \320\276\320\272\320\275\320\265/image-2.png" diff --git a/articles/bitrix/property-link-to-section-information-block-in-a-new-window/linksection.php "b/articles/Bitrix/\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\276 - \320\277\321\200\320\270\320\262\321\217\320\267\320\272\320\260 \320\272 \321\200\320\260\320\267\320\264\320\265\320\273\320\260\320\274 \320\270\320\275\321\204\320\276\320\261\320\273\320\276\320\272\320\260 \320\262 \320\275\320\276\320\262\320\276\320\274 \320\276\320\272\320\275\320\265/linksection.php" similarity index 100% rename from articles/bitrix/property-link-to-section-information-block-in-a-new-window/linksection.php rename to "articles/Bitrix/\320\241\320\262\320\276\320\271\321\201\321\202\320\262\320\276 - \320\277\321\200\320\270\320\262\321\217\320\267\320\272\320\260 \320\272 \321\200\320\260\320\267\320\264\320\265\320\273\320\260\320\274 \320\270\320\275\321\204\320\276\320\261\320\273\320\276\320\272\320\260 \320\262 \320\275\320\276\320\262\320\276\320\274 \320\276\320\272\320\275\320\265/linksection.php" diff --git a/articles/git/instruction/README.md "b/articles/Git/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217/README.md" similarity index 100% rename from articles/git/instruction/README.md rename to "articles/Git/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217/README.md" diff --git a/articles/git/instruction/deploy-scheme.png "b/articles/Git/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217/deploy-scheme.png" similarity index 100% rename from articles/git/instruction/deploy-scheme.png rename to "articles/Git/\320\230\320\275\321\201\321\202\321\200\321\203\320\272\321\206\320\270\321\217/deploy-scheme.png" diff --git a/articles/linux/shell.md b/articles/Linux/Shell/README.md similarity index 100% rename from articles/linux/shell.md rename to articles/Linux/Shell/README.md diff --git a/articles/phpstorm/how-create-templates/README.md "b/articles/PhpStorm/\320\232\320\260\320\272 \321\201\320\276\320\267\320\264\320\260\320\262\320\260\321\202\321\214 \321\210\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260/README.md" similarity index 100% rename from articles/phpstorm/how-create-templates/README.md rename to "articles/PhpStorm/\320\232\320\260\320\272 \321\201\320\276\320\267\320\264\320\260\320\262\320\260\321\202\321\214 \321\210\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260/README.md" diff --git a/articles/phpstorm/how-create-templates/image-1.png "b/articles/PhpStorm/\320\232\320\260\320\272 \321\201\320\276\320\267\320\264\320\260\320\262\320\260\321\202\321\214 \321\210\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260/image-1.png" similarity index 100% rename from articles/phpstorm/how-create-templates/image-1.png rename to "articles/PhpStorm/\320\232\320\260\320\272 \321\201\320\276\320\267\320\264\320\260\320\262\320\260\321\202\321\214 \321\210\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260/image-1.png" diff --git a/articles/phpstorm/how-create-templates/image-2.png "b/articles/PhpStorm/\320\232\320\260\320\272 \321\201\320\276\320\267\320\264\320\260\320\262\320\260\321\202\321\214 \321\210\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260/image-2.png" similarity index 100% rename from articles/phpstorm/how-create-templates/image-2.png rename to "articles/PhpStorm/\320\232\320\260\320\272 \321\201\320\276\320\267\320\264\320\260\320\262\320\260\321\202\321\214 \321\210\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260/image-2.png" diff --git a/articles/phpstorm/how-create-templates/image-3.png "b/articles/PhpStorm/\320\232\320\260\320\272 \321\201\320\276\320\267\320\264\320\260\320\262\320\260\321\202\321\214 \321\210\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260/image-3.png" similarity index 100% rename from articles/phpstorm/how-create-templates/image-3.png rename to "articles/PhpStorm/\320\232\320\260\320\272 \321\201\320\276\320\267\320\264\320\260\320\262\320\260\321\202\321\214 \321\210\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260/image-3.png" diff --git a/articles/phpstorm/bitrix-templates.md "b/articles/PhpStorm/\320\250\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260 \320\264\320\273\321\217 \321\200\320\260\320\261\320\276\321\202\321\213 \321\201 1\320\241-\320\221\320\270\321\202\321\200\320\270\320\272\321\201/README.md" similarity index 100% rename from articles/phpstorm/bitrix-templates.md rename to "articles/PhpStorm/\320\250\320\260\320\261\320\273\320\276\320\275\321\213 \320\272\320\276\320\264\320\260 \320\264\320\273\321\217 \321\200\320\260\320\261\320\276\321\202\321\213 \321\201 1\320\241-\320\221\320\270\321\202\321\200\320\270\320\272\321\201/README.md" diff --git a/media/regexp.pdf b/media/regexp.pdf new file mode 100644 index 0000000..5ea61f0 Binary files /dev/null and b/media/regexp.pdf differ