[Localizator] дефолтный язык

Добрый день. Давненько я не брал в руки шашки модекс.
Решил попробовать Localizator, такой вопрос, не освещенный в доках.

Обычно, когда мультиязычность на контекстах, редиректит на одну из версий сайта: example.com/ru или example.com/en

В локализатор, добавил два языка en ru, Но получается у нас 3 версии сайта: /ru, /en и сам example.com с «дефолтным языком»

Может надо контекст дефолтного указывать как один из языков? Например /ru, и использовать только один язык для перевода. Правда тогда sitemap.xml robots.txt переедут туда. и не будет возможность «обратного перевода». Например когда есть статья на английском и нужно на русский её перевести?

Может я что-то непонимаю.
Abu
Abu
31 декабря 2022, 16:19
modx.pro
312
0

[AjaxFormitLogin] AjaxForm на стрероидах и чистом JS

Приветствую, коллеги. Всех с наступающим! В честь этого праздника, я решил сделать сообществу подарок и собрал некоторые свои наработки в пакет. Надеюсь в новом году он кому-нибудь облегчит жизнь. Примеры вызовов можно найти в папке компонента в подпапке templates.
Артур Шевченко
30 декабря 2022, 20:27
modx.pro
1
2 062
+12

Вывод pdoSitemap в отдельный файл

Добрый день хочу вывести данные pdositemap в отдельный файл который будет храниться в виде xml файла и будет обновляться (буду обновлять через крон).
и вот возник вопрос как вывести данные из pdoSitemap в файл
Zhan
30 декабря 2022, 14:31
modx.pro
435
0

Как получить айди пользователя при смене а так же при создании заказа в плагине?

Как получить айди пользователя при смене заказа а так же при создании в плагине?

Пока что плагин такой
<?php
switch ($modx->event->name) {
    case "msOnChangeOrderStatus":
        // 1001
        if($status == 1001){
            $modx->log(1, 'ЗАКАЗ ЗАВЕРШЁН');
        }
        $modx->log(1, var_dump($order));
        break;
}
Пытался вывести объект $order но генерит вообще всё вместо того что нужно, пытался из этого объекта получить айди пользователя "
$order->getOne('User')
" но просто получаю ошибку
Vladimir
30 декабря 2022, 14:15
modx.pro
414
0

Как добавить поле галочку в заказ любой, а потом изменять её плагином?

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

Пытался так:

<?php
switch ($modx->event->name) {

	case 'OnMODXInit':
		$modx->loadClass('msOrder');
		$modx->map['msOrder']['fields']['regular_customer'] = 0;
		$modx->map['msOrder']['fieldMeta']['regular_customer'] = array(
			'dbtype' => 'tinyint',
			'precision' => 1,
			'attributes' => 'unsigned',
			'phptype' => 'boolean',
			'null' => false,
			'default' => 0,
		);
		break;
}
П.С ставил на событие «OnMODXInit»

Так же создал само поле в базе данных в этой таблице "
modx_ms2_orders
".
Но когда перехожу в заказы в админке, там не вижу моего поля.
Само поле создавал так через sql "
ALTER TABLE `modx_ms2_orders` ADD `regular_customer` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0' ;
"
Vladimir
30 декабря 2022, 08:39
modx.pro
491
0

Вывести значения только используемых TV в ресурсах по двум параметрам

Здравствуйте, делаю Ajax фильтр, с поиском по TV полям выглядит это так:


Опции формируются сниппетом, который собирает только используемые значения TV полей со всех ресурсов, объединяя дубли, вот код сниппета:

<?php
// $tvid = 7; // id нужного ТВ параметра
$res = array(); // Сюда забиваем результаты
$counter = 1;
$output = '';
$q = $modx->newQuery('modTemplateVarResource', array('tmplvarid' => $tvid, ));
$q->select('value');
$q->groupby('value'); // исключаем дубли
if ($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		$res[$counter] = $row['value'];
		$counter++;
	}
}
foreach($res as $val){
   $output .= '<option value="'.$val.'">'.$val.'</option>';
}
echo $output;
Все работало нормально до тех пор как не было добавлено новое TV поле с двумя значениями Аренда==1||Продажа==2 и теперь фильтр для аренды должен отобразить только значения используемых TV ресурсов согласно этому новому полю, т.е. идея в том чтобы фильтр не показывал опции ресурсы которых «для продажи» и наоборот.

Подскажите пожалуйста как для этого изменить сниппет? Догадываюсь что в запрос
$q = $modx->newQuery('modTemplateVarResource', array('tmplvarid' => $tvid, ));
нужно подставить еще один параметр — со значением Аренды или Продажи… Но своих знаний маловато как это сделать… Буду благодарен за любую помощь )
Konstantin
29 декабря 2022, 23:35
modx.pro
865
0

в плагине не правильная группа у пользователя

регистрирую пользователя через компонент Office в группу «Users» с ID=2, потом вручную меняю пользователю группу, например на «РРЦ» с ID=41.
при вызове в плагине
$modx->user->getUserGroups()
отображается все равно старая группа с ID=2, хотя в БД все поменялось как надо.
в чем может быть проблема? как будто закешировались данные
alexandr.skyrda
28 декабря 2022, 13:19
modx.pro
376
0

как установить/зарегистрировать плагин не из транспортного архива?

если плагин в таком виде
как его установить правильно? транспортного архива нет
alexandr.skyrda
28 декабря 2022, 13:11
modx.pro
493
0

ms2form не создает товары

Здравствуйте,
Не могу сделать чтоб создовались товары из фронтенда. Усановил miniShop2 4.0.0 и ms2Form 1.4.5-beta2
Добавил «Доступ к контекстам» группе «Users» «ms2formUserPolicy» и «miniShopManagerPolicy»

Создал в шаблоне
[[!ms2form?
  &parent=`13`
  &template=`8`
  &allowedFields=`parent,pagetitle,content`
  &requiredFields=`parent,pagetitle,content`
  &tplCreate=`my.tpl.ms2form.create`
]]
В чанке my.tpl.ms2form.create
<form class="well create" method="post" action="" id="ms2form" role="form" data-reset="true">
  <input type="hidden" id="ms2formFormKey" name="form_key" value="[[+formKey]]">
  <input type="hidden" name="pid" value="0">
  <input type="hidden" name="parent" value="[[+parent]]">
  <input type="hidden" name="published" value="1"/>
  <input type="hidden" name="hidemenu" value="0"/>
  <input type="hidden" name="redirectPublished" value="[[+redirectPublished]]"/>
  <input type="hidden" id="ms2formTagsNew" value="[[+tagsNew]]"/>

  <div class="form-group">
    <label>[[%ms2form_pagetitle]]</label>
    <span class="text-danger">*</span>
    <input type="text" class="form-control" placeholder="[[%ms2form_pagetitle]]" name="pagetitle" value="" maxlength="50" id="ms2formPagetitle"/>
  </div>

  <div class="form-group popover-help" id="formGroupContent">
    <input id="content" name="content" type="hidden" value="[[+content]]"/>
    [[$tpl.ms2form.editor.[[+editor]]]]
  </div>
  <div class="form-group">
    <div class="ticket-form-files">
      [[+files]]
    </div>
  </div>
  <div class="form-actions">
    <input type="submit" id="ms2formSubmit" class="btn btn-primary submit" value="[[%ms2form_save]]"/>
  </div>
</form>
Авторизуюсь под «users»
На сайте выводится форма но форма не отпровляется. Не пойму в чем проблема. Может кто сталкиволся с таким поведением.

Выскакивает ошибка:
/core/components/ms2form/model/ms2form/ms2form.class.php : 348) PHP warning: Undefined array key "tags"
guitar_plus
28 декабря 2022, 08:10
modx.pro
477
0

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

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


Danil
25 декабря 2022, 19:26
modx.pro
490
0