Вопросы

FormIt и расширение модели

Добрый день,

Подскажите затупку как расширить модель FormIt

Я хочу добавить в общую табличку картинку вот так
yadi.sk/i/NiuxZK7tNXPp6w

Я создал в БД поле
yadi.sk/i/TbDR0LDMHw5H4g

Потом в файле, который отвечает за рендер таблички прописал поля

yadi.sk/i/7A618k_pdx00oQ

Потом пошел в shema и прописал там
<?xml version="1.0" encoding="UTF-8"?>
<model package="formit" baseClass="xPDOObject" platform="mysql" defaultEngine="InnoDB" phpdoc-package="formit">
    <object class="FormItForm" table="formit_forms" extends="xPDOSimpleObject">
        <field key="form" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
        <field key="context_key" dbtype="varchar" precision="100" phptype="string" null="false" default=""/>
        <field key="values" dbtype="text" phptype="string" null="false" default=""/>
        <field key="ip" dbtype="varchar" precision="100" phptype="string" null="false" default=""/>
        <field key="date" dbtype="int" precision="11" phptype="integer" null="false" default=""/>
        <field key="encrypted" dbtype="tinyint" precision="1" phptype="boolean" null="false" default="0"/>
        <field key="encryption_type" dbtype="int" precision="2" phptype="integer" null="false" default="1"/>
        <field key="hash" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
      <field key="images" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
    </object>
</model>
в formitform.map.inc.php

прописал
<?php
/**
 * @package formit
 */
$xpdo_meta_map['FormItForm']= array (
  'package' => 'formit',
  'version' => NULL,
  'table' => 'formit_forms',
  'extends' => 'xPDOSimpleObject',
  'tableMeta' => 
  array (
    'engine' => 'InnoDB',
  ),
  'fields' => 
  array (
    'form' => '',
    'context_key' => '',
    'values' => '',
    'ip' => '',
    'date' => 0,
    'encrypted' => 0,
    'encryption_type' => 1,
    'hash' => '',
  ),
  'fieldMeta' => 
  array (
    'form' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '255',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
    'context_key' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '100',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
    'values' => 
    array (
      'dbtype' => 'text',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
    'ip' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '100',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
    'date' => 
    array (
      'dbtype' => 'int',
      'precision' => '11',
      'phptype' => 'integer',
      'null' => false,
      'default' => 0,
    ),
    'encrypted' => 
    array (
      'dbtype' => 'tinyint',
      'precision' => '1',
      'phptype' => 'boolean',
      'null' => false,
      'default' => 0,
    ),
    'encryption_type' => 
    array (
      'dbtype' => 'int',
      'precision' => '2',
      'phptype' => 'integer',
      'null' => false,
      'default' => 1,
    ),
    'hash' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '255',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
   
    'images' => 
    array (
      'dbtype' => 'varchar',
      'precision' => '255',
      'phptype' => 'string',
      'null' => false,
      'default' => '',
    ),
  ),
);
Что еще нужно сделать?) или это вообще не правильно?)
perfkirill
10 декабря 2020, 16:17
modx.pro
1 185
0

Не корректно выводится слайдер через AjaxSnippet

Добрый день!

Не корректно выводится слайдер при загрузке через AjaxSnippet. Без AjaxSnippet все работает и отображается как положено. Подскажите пожалуйста решение.

Вывожу так:
[[!AjaxSnippet?
    &snippet=`pdoResources`
    &resources=`getTickets`
    &parents=`1893` 
    &limit=`10` 
    &includeTVs=`image`
    &tpl=`tpl.gallery.big`

]]
На выходе получаю это:
Денис
10 декабря 2020, 11:43
modx.pro
1 298
0

Как можно стилизовать колонку в таблице заказов minishop2 по условию?

Здравствуйте!

Можете, пожалуйста, подсказать. Мне нужно сделать такое оформление:
Если цена в заказе превышает определенное значение, то сделать ее красной в блоке заказов в админке minishop2, если цена меньше определенного значения, то сделать ее зеленой.

Как можно такое реализовать?
Lori
10 декабря 2020, 10:59
modx.pro
676
0

Баг minishop2 v2.6.0

В версии v2.6.0 minishop2 есть один баг. Для пользователя с ограниченными правами не доступен просмотр категорий и товаров. В частности отключен resourcegroup_resource_list (если его включить, то пользователь начнет создавать ресурсы в «Группы ресурсов» и если они запрещены к удалению, то он не сможет их удалять). Может уже кто решил данную проблему?
Сергей
09 декабря 2020, 17:22
modx.pro
693
0

Удалить данные migx поля

Подскажите как лучше реализовать удаление данных migx поля по заданной дате. Логика такая, что одно из полей migx — поле типа дата и оно сравнивается с текущей датой, как только дата удаления равна текущей, данные migx поля удаляются. Наверное тут нужен небольшой плагин и если да то на какое событие его лучше вешать?
dokreg
09 декабря 2020, 15:54
modx.pro
1 065
0

Formit и Fenom. Не работают плейсхолдеры в формах

Коллеги, привет, помогите!
По Formit и Fenom вопрос. Вызовы плейсхолдеров Formit не работают. Например:
{$_modx->getPlaceholder('fi.id')}
Не работает в форме. Отсутствует он. Работает старый плейсхолдер:
[[+fi.id]]}
Остальные тэги на fenom работают. Но модификаторы старые не работают, соответственно чекбоксы, например, не работают.
[[!+fi.secondarySplashTabs:FormItIsChecked=`1`]]
Несколько строк кода формы:
<div class="container container_mini">
<h1 class="wrap mt-3">{$_modx->getPlaceholder('fi.id')}-нет, а [[+fi.id]] - есть</h1>
Максим Логинов
09 декабря 2020, 01:33
modx.pro
1 059
0

Дублировать сниппет php

На сайте реализовал появление случайного текста в поле, через вызов сниппета:

<?php
function StrCharPosBack($haystack, $needle) {
    for ($i = strlen($haystack) ; $i>=0 ; $i--){
        if (substr($haystack, $i, 1) === $needle)
            return $i;
    }
    return false;
}

while (strpos($str, "{") !== false){
    $pos1 = strpos($str, "}");
    $buf_mas = substr($str, 0, $pos1);
    $pos2 = StrCharPosBack ($buf_mas, "{");
    $buf_mas = substr($buf_mas, $pos2+1);
    $exploded_buf_mas = explode ("|", $buf_mas);
    $rnd = rand(0, count($exploded_buf_mas)-1);
    $str = substr_replace($str, $exploded_buf_mas[$rnd], $pos2, $pos1+1-$pos2);
}

$str = (isset($str )) ? $str : '';
return $str ;
Иван
08 декабря 2020, 15:30
modx.pro
665
0

Как написать size в pagetitle?

У всех товаров уже заполнены размеры. И для экспорта возникла необходимость прописать эти размеры в pagetitle и longtitle, но никак не получается…
Подскажите, пожалуйста, есть ли такая возможность и как это сделать, если есть?
Фарит
08 декабря 2020, 12:06
modx.pro
835
0

Перенос каталога товаров

С одного сайта на другой нужно перенести каталог с товарами. Доступ к БД обоих сайтов есть. Как это сделать корректно? Какие таблицы нужно скопировать и будет ли работать?
Кефирка
08 декабря 2020, 10:09
modx.pro
976
0

дополнительное поле для товара minishop2

есть пример

docs.modx.pro/komponentyi/msearch2/rasshirenie/primer-filtraczii-tovarov
docs.modx.org/current/ru/extending-modx/custom-manager-pages/modext/modx.combo.combobox

создал по примеру

Пример фильтрации товаров
docs.modx.pro/komponentyi/msearch2/rasshirenie/primer-filtraczii-tovarov

дополнительный plugin с названием upakovka

в данном файле пробую адаптировать пример, чтобы через combo-list листились данные параметы, или даже просто хоть както отображались
конечно желательно как tags родной ms2 field

//Добавляем виджеты ExtJS для этого поля (availability) в админку:

// Файл /assets/components/minishop2/plugins/upakovka/msproductdata.js


// Combo Box со списком единиц

Doodles.combo.Units = function(config) {
    config = config || {};
    Ext.applyIf(config,{
        store: new Ext.data.ArrayStore({
            id: 0
            ,fields: ['unit','display']
            ,data: [
                ['MB','Megabyte']
                ,['GB','Gigabyte']
                ,['TB','Terabyte']
                ,['PB','Petabyte']
                ,['EB','Exabyte']
                ,['ZB','Zettabyte']
                ,['YB','Yottabyte']
            ]
        })
        ,mode: 'local'
        ,displayField: 'display'
        ,valueField: 'unit'
    });
    Doodles.combo.Units.superclass.constructor.call(this,config);
};
Ext.extend(Doodles.combo.Units,MODx.combo.ComboBox);
Ext.reg('doodle-combo-units',Doodles.combo.Units);


miniShop2.plugin.pluginname = {


    getFields: function(config) {


        return {
        
        upakovka: {
          header: _('usergroup')
          ,dataIndex: 'usergroup'
          ,width: 140
          ,editor: { xtype: 'modx-combo-usergroup', renderer: true}

        }



        return {
            upakovka: {xtype: 'textfield', description: _('ms2_product_upakovka_help')}                          
        }
   
    }


    ,getColumns: function() {

        // Вызов Combo Box из сетки


        upakovka: {
             header: _('unit')
             ,dataIndex: 'unit'
             ,sortable: false
             ,width: 50
             ,editor: { xtype: 'doodle-combo-units', renderer: true }
         }


        return {
            upakovka: {width:50, sortable:true, editor: {xtype:'textfield'}} 
        }

    }

       
};

Кирилл
08 декабря 2020, 08:23
modx.pro
1 424
0