R2m0x94 (Vasily)

R2m0x94 (Vasily)

С нами с 07 мая 2018; Место в рейтинге пользователей: #362
R2m0x94 (Vasily)
05 июня 2022, 02:17
0
Сам спросил, сам ответил: dbtype:varchar, phptype:string, что там такого, а в Ext.form.ComboBox пишешь store: new Ext.data.ArrayStore
R2m0x94 (Vasily)
04 июня 2022, 23:34
0
Как добавить выпадающий список и какой phptype, dbtype должен быть для выпадающего списка, чтобы в профиле пользователя он был, такой как пол или страна?

Попробовал добавить тип modx-combo в профиль пользователя, но не могу понять какой тип указывать, так как он trigger, то phptype вроде бы должен быть twintrigger, пробовал json, так он объект в объекте показывает, нет выпадашки, точнее как добавить Ext, в сам компонент. В какой файл?
R2m0x94 (Vasily)
25 мая 2022, 10:12
0
Можно ли выпадающий список сделать как: y==||y==1||m==1?
R2m0x94 (Vasily)
25 мая 2022, 09:26
0
Как мне в Ext добавить delimiter '==' или '||' в Кастомный выпадающий список или Группу флажков?
Например у меня записывается в поле значение такого рода y==y==1m==1
R2m0x94 (Vasily)
23 мая 2022, 16:03
0
Я делал через Office+HybridAuth, только немного пришлось доработать обработчик на активацию
R2m0x94 (Vasily)
23 мая 2022, 15:57
0
Точнее в шаблоне 404 ошибки вызывайте этот сниппет и всё будет ОК.
R2m0x94 (Vasily)
23 мая 2022, 15:55
0
Или если нет страницы, то в плагине на событие OnHandleRequest отдать этот ответ.
R2m0x94 (Vasily)
23 мая 2022, 15:53
0
У меня даже почему-то она с параметром идёт domain.ru/admin/?attempt=1
Не знаю почему, но ответ можете отдать какой угодно.
Сниппет:
<?php
header(' ', true, 404);
R2m0x94 (Vasily)
23 мая 2022, 15:14
0
А как в всплывающем окне TinyMce [HTML] textarea заменить на редактор кода Ace?
R2m0x94 (Vasily)
22 мая 2022, 09:59
0
Нет, тут необходима кастомизация только для Ace с TinyMce
R2m0x94 (Vasily)
22 мая 2022, 09:56
0
У меня такая потребность появляется, потому что я редактирую в Ace, а контент-менеджер в Mce, поэтому мне надо угодить ему, чтобы было удобно в Mce открыть htmlSource и оперативно верстать при помощи emmet, затем сохранять обратно в Mce.

Думаю тут будет уместным разобрать вопрос, чтобы к нему уже не возвращаться. По факту надо найти функцию Сhange и при переключении toggle подменять на Ace, но как это сделать в Ext ума не приложу, так как если делать на onReady подмену textarea, то только Ace грузится в поле content, нормально объяснил?
R2m0x94 (Vasily)
21 мая 2022, 15:08
0
Или же как-то во FrontendEditor включить Ace?
R2m0x94 (Vasily)
19 мая 2022, 18:29
0
Да, вроде log_level стояло значение 3 (INFO), исправил на 1 (ERROR) и всё прошло. Так как INFO это просто оповещение информации о том, что кэш-файл был удалён с сервера.
R2m0x94 (Vasily)
10 мая 2022, 03:18
0
А если с pdoPage, то $idx не пашет, как вариант просто отключить удаление, чтоб id не сбивался.
Возможно в ext.как-то заменить record.id и будет от последнего из бд, а не из record.id x2
R2m0x94 (Vasily)
03 мая 2022, 00:10
0
в FAQ_get_questions добавьте idx для удобства в отображении корректных нумераций
// строка ~37
$idx = 0;
foreach ($items as $item) {
    $idx += 1;
    $list[] = $modx->getChunk($tpl, array_merge($item->toArray(), ['idx' => $idx]));
}
В чанке просто [[+idx]] или {$idx}
R2m0x94 (Vasily)
02 мая 2022, 12:54
0
По сути на обновление надо повесить ace, и на создание, вопрос как?
FAQ.window.UpdateItem = function (config) {
    config = config || {};
    if (!config.id) {
        config.id = 'faq-item-window-update';
    }
    Ext.applyIf(config, {
        title: _('faq_item_update'),
        width: 550,
        autoHeight: true,
        url: FAQ.config.connector_url,
        action: 'mgr/item/update',
        fields: this.getFields(config),
        keys: [{
            key: Ext.EventObject.ENTER, shift: true, fn: function () {
                this.submit()
            }, scope: this
        }]
    });
    MODx.ux.Ace.replaceTextAreas(Ext.query('[name="answer"]')); // вроде правильно, но не работает
    FAQ.window.UpdateItem.superclass.constructor.call(this, config);
};
R2m0x94 (Vasily)
02 мая 2022, 12:44
0
А как в Ответ «answer» к полю в окне редактирования включить редактор Ace?

// assets/components/faq/js/mgr/widgets/items.windows.js
Ext.onReady(function(){
	if(MODx.ux.Ace.replaceTextAreas) {
		MODx.ux.Ace.replaceTextAreas(Ext.query('[name="answer"]'));
	}
});
добавляю Ext, но почему-то не получилось
R2m0x94 (Vasily)
17 апреля 2022, 10:26
1
0
В сниппете mFilter2 раскомментируйте или добавьте строку на ~408, чтобы посмотреть в журнале ошибок — на какой странице проблема.
<?php
if (in_array($v['type'], array('number', 'decimal')) && isset($suggestions[$filter_key])) {
    $tmp = $suggestions[$filter_key];
    array_walk($tmp, function($v, $k) use (&$tmp) {
        if (empty($v)) {
            unset($tmp[$k]);
        }
    });
    $tmp = array_keys($tmp);
    if ($v['type'] == 'number') {
        $current_value = ($idx == 0)
            ? floor(min($tmp))
            : ceil(max($tmp));
            //$modx->log(modX::LOG_LEVEL_ERROR, 'PHP warning: min & max: [mSearch2] array("number", "decimal"): on "'.urldecode($_SERVER['REQUEST_URI']).'"');
    } else {
        $current_value = ($idx == 0)
            ? min($tmp)
            : max($tmp);
    }
}
Далее, проверьте в самом вызове сниппета параметр &suggestions — какой фильтр используется, потом перейдите в чанк с input type=[number] и добавьте к input атрибуты min=«0» и max=«1000», max можно не указывать. Надеюсь помог.
R2m0x94 (Vasily)
18 марта 2022, 19:11
0
Получилось, спасибо. Более детально описал ниже.
R2m0x94 (Vasily)
18 марта 2022, 19:10
0
Возможное решение:
Решение не совсем правильное, так как если выгрузить на хостинг ошибка пропадает, зато если разработка ведётся локально, то напрягает, поэтому временно идём в Медиа > Источники файлов, там ставим в графах basePath & baseUrl полный путь с диска до корня, например: E:\OSPanel\domains\site.ru\

Ошибка пропадает, изображение грузится ОК, но при этом выбор файла не доступен. Удачных разработок и перед выгрузкой на хостинг ставим медиа источник обратно.

Лирика:
Конечно времени ездить по файлом почти ни у кого нет core\model\phpthumb\phpthumb.class.php:3474 функция SetCacheFilename(), там есть такой код:
if ($this->md5s) {
	// source image MD5 hash provided
	// do not source image modification date --
	// cached image will be used even if file was modified or removed
} elseif (!$this->config_cache_source_filemtime_ignore_remote && preg_match('#^(f|ht)tps?\://#i', $this->src)) {
	$this->cache_filename .= '_dat'.intval(phpthumb_functions::filedate_remote($this->src));
} elseif (!$this->config_cache_source_filemtime_ignore_local && $this->src && !$this->rawImageData) {
	$this->cache_filename .= '_dat'.intval(@filemtime($this->sourceFilename));
}
Можно увидеть, что в строке есть функция filemtime(), которая отдаёт 0, почему? Потому, что если убрать ссылку @ от функции, то вы увидите в журнале не корректный путь, который конечно можно перезапрограмировать в этой строке:
$this->cache_filename .= '_dat'.intval(@filemtime($this->sourceFilename));
Надеюсь помог, и не забываем про обратный слэш \/

Скорей всего в новых версиях ModX >= 3 это уже исправят.