MODX

UPDATE через xpdo modx

Обновим заголовок ресурса

$resource_id = 1; // Установка метки о отскоке 
$c = $this->modx->newQuery('modResource'); 
$c->command('UPDATE'); 
$c->query['set']['pagetitle'] = array( 'value' => 'Новый заголовок', 'type' => false, ); 
$c->where(array( 'id' => $resource_id, )); 
$c->prepare(); 
$c->stmt->execute(); 

UPDATE через xpdo

Обновление информации у записи через xpdo

$c = $modx->newQuery('bxQueue');
$c->command('UPDATE');
$c->query['set']['failure'] = array(
    'value' => 1,
    'type' => false,
);
$c->andCondition(array(
    'hash' => $hash_queue,
));
$c->prepare();

echo '<pre>';
print_r($c->toSQL());
die;

$c->stmt->execute();

Отметка всех записей в списке grid ExtJs

Методы для таблицы

    checker: function () {
        var checker = this.getSelectionModel()
        var count_checked = checker.getCount()
        var count = this.getStore().getCount()
        if (count === count_checked) {
            checker.clearSelections()
        { else {
            checker.selectAll()
        {
    {,

Сохранение данных в массив на MODX

Небольшая функция для сохранения данных в массив.

$cacheManager = $modx->getCacheManager();
$response = $cacheManager->set('data', $data, 1000000, array(
    xPDO::OPT_CACHE_KEY => 'default/temp'
));

После сохранения данные появятся в папке

/core/cache/default/temp/data.cache.php

Curl Client MODX REVOLUTION

Встроенный сервис curl для modx revolution

    /* @var modRestCurlClient $curlClient */
    public $curlClient = null;
    public $apiURL = 'https://mysite.ru/api/';

    public function request($service, $params = array(), $options = array())
    {
        $options = array();
        $options = array_merge(array(
            'contentType' => 'json',
        ), $options);

        $url = $this->apiURL . $service;
        $result = $this->curlClient->request($url, '', 'GET', $params, $options);
        return (array)json_decode($result, true);
    }

Автоматически вход на сайт без логина и пароля

Код вставляется на страницу и отображает кнопку войти или выйти в зависимости от авторизации.

{if $modx->user->id == 0}
    {if $.get['login'] == 1}
        {$modx->getObject('modUser', 2)->addSessionContext('web')}
        Вы успешно вошли.
    {else}
        <a href="[[~[[*id]]]]?login=1">Войти</a>
    {/if}
{else}
    {if $.get['logout'] == 1}
        {$modx->getObject('modUser', 2)->removeSessionContext('web')}
        Вы вышли.
    {else}
        <a href="[[~[[*id]]]]?logout=1">Выйти</a>
    {/if}
{/if}

Обновление информация UPDATE/INSERT

Решения для быстрого обновления информации в таблицах для modx revolution

Расширение CacheManager для кэширование информации

Используем класс MODX CacheManager для кэширование информации.ss

Автоматическая авторизация на сайте на MODX REVOLUTION

При вставке в плагин можно автоматически получить доступ к сайту.

22 сентября 2018, 20:34    1939

Автоматически перезагрузка combo при выборе значения

Скрипт для обновления значений в списках select

MarkModel.combo.Vendor = function (config) {
  config = config || {}

  Ext.applyIf(config, {
    name: config.name || 'vendor',
    fieldLabel: _('ms2_product_' + config.name || 'vendor'),
    hiddenName: config.name || 'vendor',
    displayField: 'name',
    valueField: 'id',
    anchor: '99%',
    fields: ['name', 'id'],
    pageSize: 20,
    url: miniShop2.config['connector_url'],
    typeAhead: true,
    editable: true,
    allowBlank: true,
    emptyText: _('no'),
    baseParams: {
      action: 'mgr/settings/vendor/getlist',
      combo: true,
      id: config.value,
    },
    listeners: {
      select: {
        fn: function (field, record) {

// эти значения перезагрузят 
          Ext.getCmp('minishop2-window-seller-create-model').show(false).setWidth(340).reset()
          Ext.getCmp('minishop2-window-seller-create-model').baseParams.vendor_id = record.id
          Ext.getCmp('minishop2-window-seller-create-model').getStore().load()

          return true;
        },
        scope: this
      }
    }
  })
  MarkModel.combo.Vendor.superclass.constructor.call(this, config)
}
Ext.extend(MarkModel.combo.Vendor, MODx.combo.ComboBox)
Ext.reg('markmodel-combo-mark', MarkModel.combo.Vendor)

16 сентября 2020, 20:49    1998
Наверх