Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 099 комментариев

Николай Савин
Николай Савин
Твой код верный. Должен работать. Я бы его немного вот так переделал, чтобы фильтровать GET и проверить существование заголовка HTTP_ACCEPT_LANGUAGE
<?php
  /* Запускаем плагин только на фронтенде и с включенными sef-url */
  if ($modx->context->key == 'mgr' || !$modx->getOption('friendly_urls') || $modx->event->name != 'OnHandleRequest') {
      return;
  }

HTTP_ACCEPT_LANGUAGE есть в 95% случаев, но обычно не гарантия что он обязательно будет
  /* Разрешенные контексты */
  $allowedContexts = ['en' => 'en', 'ru' => 'web'];

  /* Проверяем GET-параметр cultureKey */
  $cultureKey = filter_input(INPUT_GET, 'cultureKey', FILTER_SANITIZE_STRING);
  if (!empty($cultureKey)) {
      $targetContext = isset($allowedContexts[$cultureKey]) ? $allowedContexts[$cultureKey] : 'web';
      $modx->switchContext($targetContext);
  } else {
      /* Если cultureKey не указан, проверяем язык браузера */
      $acceptLanguage = $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '';
      if (!empty($acceptLanguage)) {
          $browserLang = strtolower(substr($acceptLanguage, 0, 2));
          if ($browserLang === 'en') {
              $modx->switchContext('en');
          }
      }
      /* В остальных случаях оставляем текущий контекст */
  }
Артур Шевченко
Артур Шевченко
Виталий
Виталий
привествую!
Если пригодится, буду только рад )
Все описанное — про линукс (ubuntu)

PS с друпала уходить не планирую. Нравится система и очень, особенно текущая 11 версия. Для разработки, имхо, пока выглядит гораздо «прямее», чем модх.
Дима Касаткин
Дима Касаткин
Спасибо что поделился и добро пожаловать с MODX!
Я тоже когда-то с Drupal перешел на MODX, назад ни разу желания не возникало возвращаться))

Можешь только уточить, на windows или на mac работаешь с описанным в статье?
(я всегда работаю сразу на хостинге, но кому нужно локально, лучше уточнять, когда речь о докере)
Сергей
Сергей
Это да. Ну в таблице можно вывод ограничить, например максимум 50 первых знаков, а вместо остальных полей просто из тип img, list, link и т.д. Ну это так, мысли вслух)
Aleksandr Huz
Aleksandr Huz
С картинкой исправить можно, а вот с таблицей сложнее, ведь там могут быть разные поля и сама строчка таблицы может быть раздута из-за больших данных.
Поэтому, реально, только картинку исправить
Сергей
Сергей
А вот здесь хочется, чтобы в колонке «значения» тоже фото отображалось и пункты таблицы или не отображалось, тогда чтобы при создания поля можно было поставить галочку отображать или нет. А то, чисто интуитивно, когда видишь «Фото: Array» как будто это ошибка.
Сергей
Сергей
Ещё важный вопрос, у меня есть большой сайт, который сделан на modParser и переходить на fenom нереально и нет смысла. Может ли pageBlocks работать без fenom? То есть, простые поля то работают, а вот как делать вывод с foreach непонятно и возможно ли это?
Сергей
Сергей
Да, есть, неправильно написал. Моя проблема в этом:
При загрузке изображения в админке вместо фото отображается «Array», а при выводе на страницу недостаточно вывести просто {$img} нужно делать так {$img.url}.