Всего 123 797 комментариев

Konstantin
27 ноября 2023, 12:15
0
А есть плагин с похожим функционалом для для версии Modx 3?
Володя
27 ноября 2023, 12:12
+1
Уже поправил, обновление доступно в modstore.pro
Володя
27 ноября 2023, 12:10
+1
Добрый день.
нужно задать в вызове ufForm
&active=`0`
И второй вопрос — при выводе общей кучи от всех пользователей какое условие надо дописать в вызов pdoResources, чтобы отключенные не выводились?
&where=`{
        "UserFile.active":1,
    }`
Артур Шевченко
27 ноября 2023, 11:50
0
Как я вам подскажу, если хук этот в глаза не видел?
Евгений
27 ноября 2023, 11:41
0
Изначально ставил MODX 2.8.6 на PHP 8.2 (на более младших версиях PHP получал ругань от Composer). Обнаружилась проблемка в генерации превью плагином UserFiles — при загрузке юзером превью в области вывода списка файлов видно, но при перезагрузке страницы его уже нет. Несмотря на выставленный в настройках компонента формата для превью jpg, при загрузке оно записывается как
<img alt="..." src="data:image/png;base64,и много букв" />
.
Остальные превьюхи в файлменеджере MODX и через pThumb видны. Плагин использует dropzone — может быть это причиной такой баги?
Anton
27 ноября 2023, 03:13
+1
Я, как человек, который работает с modx практически с момента выхода Revo, года с 2011 точно, снимаю перед тобой шляпу! Баха, ты — молодец!
Anton
27 ноября 2023, 03:03
0
Подтверждаю сообщение Макса на счет хука для телеграм. Проверил несколько вариантов, которые раньше работали с formit. Они плюс минус отличаются набором полей, которые передаются из формы. Сегодня перебрал все (гуглятся по запросу modx telegram). Консоль отдает: /assets/components/sendit/action.php 500 (Internal Server Error). Идея компонента кайфовая, Артур! Если подскажешь, как подружить с телегой — будет вообще огонь!
Евгений
26 ноября 2023, 08:03
0
А можно ли реализовать модерацию изображений? То есть чтобы чтобы при загрузке им автоматом выставлялся статус «отключено», но при этом юзер у себя в списке видел то, что его картинка загрузилась, а админ после просмотра уже вручную «включал» картинку.
И второй вопрос — при выводе общей кучи от всех пользователей какое условие надо дописать в вызов pdoResources, чтобы отключенные не выводились?
Джон
25 ноября 2023, 20:08
0
'modification/set', form
Мне помогло, но оно не корректно работает с ценой, если не заполнена основная цена то в форме выводит 0 а нужно чтобы тогда выводила цену из модификатора!
Как это сделать?
Дмитрий
25 ноября 2023, 16:58
+1
В моём способе вы, находясь на одной странице, получаете ссылки на редактирование любого ресурса, на который есть ссылка на данной странице (навели курсор на ссылку на фронте — получили в popup ссылку для редактирования ресурса, на который ведет эта ссылка), текущий ресурс можно отредактировать наведя курсор на заголовок h1.

Ваш метод позволяет перейти по ссылке только на один конкретный ресурс, на котором вы сейчас находитесь на фронте. На практике мне оказалось удобнее иметь ссылки на все видимые на странице ресурсы, и я могу быстро открыть для редактирования сразу несколько ресурсов, не переходя при этом на другие страницы. Например, в случае с интернет-магазином, когда вы находитесь в каталоге товаров, можно открыть сразу несколько карточек товаров и что-то быстро отредактировать. При частой работе с контентом и внезапных изменениях (ошибки какие-нибудь исправить и т.п.) такой подход показался мне удобным.
Алексей Смирнов
25 ноября 2023, 16:33
0
Это дело пишется в MIGX в конфигурации этого поля в конфиге: joxi.ru/D2PYbP1TqDpdMA

PS. поздно понял что вы в ручную все вводите. учитесь через конфигуратор делать. это удобнее
а в вашем случае нужно дописать параметры imagePlus в параметр config
[{
    "caption":"Добавить", 
    "fields": [{
    "field":"image",
    "caption":"Изображение",
    "inputTVtype":"imageplus",
    "configs": {    "targetWidth":"920",
       "targetHeight":"600",
       "targetRatio":"1.53" }
    ]}
}]
я условно написал не уверен что правильное имя configs
Miša Bulic
25 ноября 2023, 16:29
0
А зачем вообще делать эти всплывашки на элементы? Сначала подумал, что прям на фронте изменения делать можно, но это просто ссылки на админку.

Вот просто кнопка редактировать внизу без JS:
{if $_modx->user.id > 0 && $_modx->isMember('Administrator')}
    <div class="adminpanel">
        <a href="/manager/?a=resource/update&id={$_modx->resource.id}">Редактировать</a>
    </div>
{/if}
CSS:
.adminpanel {
    bottom: 10px;
    left: 10px;
    position: fixed;
    z-index: 99;
}
.adminpanel a {
    background: rgba(0,0,0,.502);
    border-radius: 10px;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px 20px;
    text-decoration: none;
}
Антон
25 ноября 2023, 14:01
0
Делаю также мультизагрузку через MIGX и ImagePlus. Одиночная загрузка работает, вопросов нет. В мультизагрузке не отображаются превью изображений в админке. Конфигурация MIGX выглядит таким образом:
{
  "formtabs":[
    {
      "MIGX_id":3,
      "caption":"bscarousel",
      "print_before_tabs":"0",
      "fields":[
        {
          "MIGX_id":6,
          "field":"slide",
          "caption":"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
          "description":"",
          "description_is_code":"0",
          "inputTV":"",
          "inputTVtype":"imageplus",
          "validation":"",
          "configs":"",
          "restrictive_condition":"",
          "display":"",
          "sourceFrom":"migx",
          "sources":[
            {
              "MIGX_id":2,
              "context":"web",
              "sourceid":4
            }
          ],
          "inputOptionValues":"",
          "default":"",
          "useDefaultIfEmpty":"0",
          "pos":1
        }
      ],
      "pos":1
    }
  ],
  "contextmenus":"",
  "actionbuttons":"uploadfiles",
  "columnbuttons":"",
  "filters":"",
  "extended":{
    "migx_add":"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0444\u043e\u0442\u043e \u043c\u043e\u0434\u0435\u043b\u0438",
    "disable_add_item":"",
    "add_items_directly":"",
    "formcaption":"",
    "update_win_title":"",
    "win_id":"",
    "maxRecords":"",
    "addNewItemAt":"bottom",
    "media_source_id":"",
    "multiple_formtabs":"",
    "multiple_formtabs_label":"",
    "multiple_formtabs_field":"",
    "multiple_formtabs_optionstext":"",
    "multiple_formtabs_optionsvalue":"",
    "actionbuttonsperrow":4,
    "winbuttonslist":"",
    "extrahandlers":"",
    "filtersperrow":4,
    "packageName":"",
    "classname":"",
    "task":"",
    "getlistsort":"",
    "getlistsortdir":"",
    "sortconfig":"",
    "gridpagesize":"",
    "use_custom_prefix":"0",
    "prefix":"",
    "grid":"",
    "gridload_mode":1,
    "check_resid":1,
    "check_resid_TV":"",
    "join_alias":"",
    "has_jointable":"yes",
    "getlistwhere":"",
    "joins":"",
    "hooksnippets":"",
    "cmpmaincaption":"",
    "cmptabcaption":"",
    "cmptabdescription":"",
    "cmptabcontroller":"",
    "winbuttons":"",
    "onsubmitsuccess":"",
    "submitparams":""
  },
  "permissions":{
    "apiaccess":"",
    "view":"",
    "list":"",
    "save":"",
    "create":"",
    "remove":"",
    "delete":"",
    "publish":"",
    "unpublish":"",
    "viewdeleted":"",
    "viewunpublished":""
  },
  "fieldpermissions":"",
  "columns":[
    {
      "MIGX_id":1,
      "header":"\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
      "dataIndex":"slide",
      "width":50,
      "sortable":true,
      "show_in_grid":1,
      "customrenderer":"",
      "renderer":"ImagePlus.MIGX_Renderer",
      "clickaction":"",
      "selectorconfig":"",
      "renderchunktpl":"",
      "renderoptions":"",
      "editor":""
    }
  ],
  "category":""
}
Что блин не так? Почему превью не видны? Да и ощущение, что файлы не добавились в таблицу в документе
Кровельный
24 ноября 2023, 15:57
0
Удалить изображения в базе
$q = $modx->newQuery('msProduct');
$q->innerJoin('msProductData', 'Data', 'msProduct.id = Data.id');
$q->where(array(
    'msProduct.parent:IN' => [30396,30397,30398], 
    'msProduct.published' => 1, 
    'msProduct.deleted' => 0)
);
$q->sortby('msProduct.id','ASC');
$products = $modx->getIterator('msProduct', $q);
foreach ($products as $product) {
    if ($images = $modx->getCollection('msProductFile', array('product_id' => $product->id, 'parent' => 0))) {
        $ids = array();
        foreach ($images as $im) {
            $ids[] = $im->get('id');
        }
        $response = $modx->runProcessor('gallery/multiple',
        	array('method' => 'remove', 'ids' => json_encode($ids)),
        	array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/')
        );
        // remove files on dir
        $remove_files = glob(MODX_BASE_PATH.'assets/images/products/'. $id.'/*');
        foreach ($remove_files as $remove_file) {
            if (is_file($remove_file)) {
                unlink($remove_file); // delete file
            }
        }
    }
}
Перегенерировать превью товара при загрузке после импорта
$q = $modx->newQuery('msProduct');
$q->innerJoin('msProductData', 'Data', 'msProduct.id = Data.id');
$q->where(array('msProduct.parent:IN' => [30396,30397,30398], 
    'msProduct.published' => 1, 'msProduct.deleted' => 0));
$q->sortby('msProduct.id','ASC');
$products = $modx->getIterator('msProduct', $q);
$i = 0;
foreach ($products as $product) {
    $i++;
    
    if ($images = $modx->getCollection('msProductFile', array('product_id' => $product->id, 'parent' => 0, 'rank' => 0))) {
        $ids = array();
        foreach ($images as $im) {
            $ids[] = $im->get('id');
            $image = $im->get('url');
        }
        $response = $modx->runProcessor('gallery/multiple',
        	array('method' => 'generate', 'ids' => json_encode($ids)),
        	array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/')
        );
        $product = $modx->getObject('msProduct', $product->id);
        $product->set('image', $image);
        $product->save();
    }
}
Номера родительских категорий следует сменить, смотрите внимательно. На всякий случай сделайте бэкап.
Pandemic
24 ноября 2023, 11:59
0
А продолжение будет? интересная затейка
steve.kon
24 ноября 2023, 11:58
0
Ну принцип-то должен работать, вроде. Я его везде на 2.8 использую, всё в порядке, но тут вот решил сделать правильно (пустой вывод убрать).
Пробую так (может видно будет в чем ошибка):
[!+ss_meta.keywords? toPlaceholder=`keywords`]]
    [[+keywords:ne=``:then=`<meta name="[[+name]]" content="[[+value:escape]]" />`]]    //такой вариант не работает
    [[+keywords:ne=``:then=`[[!+ss_meta.keywords]]`]]    // и такой тоже
Miša Bulic
24 ноября 2023, 11:47
0
Seo Suite давно не поддерживается для 2.8, они на 3-ку перешли. А по делу проверь нет ли у тебя там пробела в поле keywords.
tararaxnes
23 ноября 2023, 14:53
+1
Хорошо, я попробую, спасибо, что уделили время