architect/_archive/2025-11-cleanup/library/drupal/README.md

Библиотека Drupal модулей и патчей

Workspace: /opt/claude-workspace/library/drupal
Дата создания: 2025-11-15


📦 Содержимое

1. docker/

Тип: Dockerfile для Drupal 11 + Commerce
Базовый образ: php:8.3-apache
Назначение: Контейнер с поддержкой JPEG/WebP/FreeType в GD

Проблема: Стандартный PHP 8.3 образ не поддерживает JPEG при обработке изображений

Решение: Добавлены libjpeg-dev, libwebp-dev, libfreetype6-dev и настройка docker-php-ext-configure gd

Файлы:
- docker/Dockerfile - готовый к использованию Dockerfile
- docker/README.md - подробная документация

Использование:

cp /opt/claude-workspace/library/drupal/docker/Dockerfile /your/project/
docker compose build

Проекты:
- ✅ pim.0kt.ru (8801) - применён 2025-11-16
- ✅ pim.dev.0kt.ru (8811) - применён 2025-11-16
- ✅ pim-demo.0kt.ru (8812) - применён 2025-11-16


2. cmlexchange-patched

Тип: Патч для модуля Drupal
Модуль: drupal/cmlexchange (версия 1.20.0)
Назначение: Интеграция с 1С через CommerceML

Проблема: Модуль не поддерживает Basic Auth при работе через reverse proxy (Nginx → Apache → PHP)

Решение: Добавлена поддержка парсинга заголовка HTTP_AUTHORIZATION

Файлы:
- cmlexchange-patched/ - полная копия исправленного модуля (196 KB, 26 файлов)
- cmlexchange-patched-1.20.0.tar.gz - архив модуля (25 KB)
- README_PATCH.md - подробная документация (8 KB)
- MANIFEST.md - полный манифест модуля
- cmlexchange_config.yaml - конфигурация модуля (1.5 KB)
- cmlexchange-http-auth.patch - patch файл для Composer
- checksums.md5 - контрольные суммы PHP файлов

Использование:

# Вариант 1: Применить патч вручную
cd /path/to/drupal
patch -p1 < library/drupal/cmlexchange-patched/cmlexchange-http-auth.patch
drush cr

# Вариант 2: Скопировать весь модуль
cp -r library/drupal/cmlexchange-patched/* \
  /path/to/drupal/web/modules/contrib/cmlexchange/
drush cr

# Вариант 3: Использовать Composer Patches
# Добавить в composer.json:
{
  "extra": {
    "patches": {
      "drupal/cmlexchange": {
        "Fix HTTP_AUTHORIZATION": "library/drupal/cmlexchange-patched/cmlexchange-http-auth.patch"
      }
    }
  }
}

Проекты:
- ✅ pim-drupal (pim.0kt.ru) - применён и работает
- ✅ pim.dev.0kt.ru - готов к применению
- ✅ pim-demo.0kt.ru - готов к применению

Тестирование:

curl -u "1c_exchange:1C_Exchange_2025_Strong" \
  "https://your-domain.com/cmlexchange?type=catalog&mode=checkauth"

# Ожидается:
# success
# catalog
# <UUID>

🔧 Применение в новых проектах

Для нового Drupal проекта с 1С

  1. Установить модули:
composer require 'drupal/cmlapi:^1.28'
composer require 'drupal/cmlexchange:^1.20'
composer require 'drupal/cmlmigrations:^1.36'
  1. Применить патч:
cd web/modules/contrib/cmlexchange
patch -p1 < /opt/claude-workspace/library/drupal/cmlexchange-patched/cmlexchange-http-auth.patch
  1. Включить модули:
drush en cmlapi cmlexchange cmlmigrations -y
  1. Настроить:
drush config:set cmlexchange.settings auth 1 -y
drush config:set cmlexchange.settings auth-user '1c_exchange' -y
drush config:set cmlexchange.settings auth-pass 'YOUR_PASSWORD' -y
drush config:set cmlexchange.settings cmlmigrations 1 -y
drush cr
  1. Создать пользователя:
drush user:create 1c_exchange \
  --mail='1c@example.com' \
  --password='YOUR_PASSWORD'
drush user:role:add administrator 1c_exchange
  1. Тестировать:
curl -u "1c_exchange:YOUR_PASSWORD" \
  "https://your-domain.com/cmlexchange?type=catalog&mode=checkauth"

📚 Документация

Подробная документация для каждого компонента находится в соответствующих директориях:
- cmlexchange-patched/README_PATCH.md - полное описание патча и настройки


🔄 Обновление библиотеки

При обновлении модулей в рабочих проектах:

  1. Проверьте что патч актуален для новой версии
  2. Обновите версию в документации
  3. Пересоздайте patch файл если нужно
  4. Обновите копию модуля в library

📞 Контакты

Проект: Claude Workspace
Путь: /opt/claude-workspace
Документация проектов: projects/*/management/


Создано: 2025-11-15
Автор: Claude Code