Всего 123 792 комментария

Николай Савин
09 июля 2023, 12:52
0
Очистите каталог с кэшем core/cache и посмотрите, заполняется ли он заново при входе. Такая проблема бывает, когда не доступен на запись этот каталог
sergey
09 июля 2023, 11:41
0
В моем случае проблема не в этом. По прежнему не могу попасть в админку. При вводе правильного логина и пароля страница просто перезагружается, при этом если ввести неверный пароль то по прежнему сообщает об ошибке (неверный пароль).
Miša Bulic
09 июля 2023, 10:14
0
GoogleSheets дополнение для этого использую
Alexey
09 июля 2023, 09:45
0
Сталкивался с такой проблемой, когда заканчивалось место на диске.
steve.kon
08 июля 2023, 22:50
+1
Решил. Если кто столкнется с подобным:
нельзя использовать нижнее подчёркивание в TV для данной конфигурации. Заменил на тире — заработало
Артур Шевченко
08 июля 2023, 20:52
0
Есть это
// тут нужно получить данные из гугл таблицы и преобразовать в массив $items
foreach($items as $item){
$product = $mdox->getObject('modResource', $item['id']);
$product->set('price', $item['price']);
$product->save();
}
И если товаров много, то можно повесить задание в планировщике
ruslan
08 июля 2023, 13:14
0
добрый день
я так понимаю он больше не доступен? хотелось бы протестировать
ruslan
08 июля 2023, 12:41
0
добрый день
компонент нельзя загрузить с репозитория
Андрей Шевяков
08 июля 2023, 10:53
0
Добрый день! Хотел потестить компонент, он еще работает?
Максим
07 июля 2023, 08:19
+3
Кончился похоже modx.
Wordpress вон живёт и вроде не скоро еще собирается умирать)) Хотя, на мой взгляд, там проблем поболее… Так что…
Кровельный
06 июля 2023, 15:07
0
Хорошая вещь, и после переиндексации слов вывести сниппет keywords_mse2.
<?php
/* Ключевые слова из индекса слов с ключевыми фразами или TV keywords. */
$q = $modx->query('SELECT resource, word FROM modx_mse2_words WHERE resource = '.$modx->resource->id);
if (is_object($q)) {
    while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
        $result .= $row['word'].', ';
    }
}

$seoKeywords = $modx->getObject('seoKeywords', array('resource' => $modx->resource->id));
if (is_object($seoKeywords)) {
    // try seoPro
    if (!$seoKeywords->get('keywords')) {
        return mb_strtolower(substr($result,0,-2));
    } else {
        return mb_strtolower($result) . $seoKeywords->get('keywords');
    }
} else {
    //try {$_modx->resource['keywords']}
    $resource = $modx->getObject('modResource', $modx->resource->id);
    if (!$resource->getTVValue('keywords')) {
        return mb_strtolower(substr($result,0,-2));
    } else {
        return mb_strtolower($result) . $resource->getTVValue('keywords');
    }
}
Николай Савин
06 июля 2023, 08:31
+2
Антон — тебе спасибо.
Антон Тарасов
05 июля 2023, 23:16
+3
Большое спасибо всем вам за неиссякаемый энтузиазм и новые релизы, задонатил.
Владимир
05 июля 2023, 19:24
+2
спасибо, ребята! отличная работа! народ, поддерживайте ребят обязательно! их работа дорогого стоит. здесь все реквизиты: modx.pro/about
Dan
Dan
05 июля 2023, 07:46
0
А у вас напрямую этот запрос указан или он генерируется? Покажите часть кода
Vladimir
04 июля 2023, 23:15
0
Плагин работает, если в нем добавить 1 строку. Сейчас методом изучения логов и курению апи вк нашел проблему.
в файле core/components/msocial/custom/network/vk/vk.class.php
В разделе конструктора запроса видимо (не пинайте я не программист) не хватает версии api для вк. надо добавить везде где только можно эту строку $this->vkKeys['v'] = '5.131';

public $vkKeys;

public function __construct(modX & $modx, $setting)
{
$this->modx = $modx;
$this->setting = $setting;
$this->vkKeys['owner_id'] = trim($this->modx->getOption('msocial_vk_id'));
$this->vkKeys['access_token'] = trim($this->modx->getOption('msocial_vk_at'));
$this->vkKeys['from_group'] = trim($this->modx->getOption('msocial_im_fg'));
$this->vkKeys['message'] = $this->setting['message'];
$this->vkKeys['v'] = '5.131';
}
и с 78 строке сделать так
$server = $this->request('https://api.vk.com/method/photos.getWallUploadServer', array(
'group_id' => $group_id,
'access_token' => $this->vkKeys['access_token'],
'v' => '5.131'
));

$vkPhoto = $this->request($server->response->upload_url, $file);

$result = $this->request('https://api.vk.com/method/photos.saveWallPhoto', array(
'group_id' => $group_id,
'photo' => $vkPhoto->photo,
'server' => $vkPhoto->server,
'hash' => $vkPhoto->hash,
'access_token' => $this->vkKeys['access_token'],
'v' => '5.131'
));
Дима Касаткин
04 июля 2023, 21:50
+1
Привет, спасибо за релиз, большое УРА, и маленькая поправочка к:

Более подробная информация уже доступна в документации
docs.modx.pro/components/minishop2/interface/utilities/ (прям открытой ссылкой, не зря же мы за ЧПУ бились:) )
Евгений Лазарев
04 июля 2023, 18:32
0
Подскажите пожалуйста почему поле может не получать данные после повторной перезагрузки страницы?
<?php
switch ($modx->event->name) {
    case "OnMODXInit":
        $map = array(
            'modUserProfile' => array(
                'fields' => array(
                    'building' => null,
                    'layer' => null,
                ),
                'fieldMeta' => array(
                    'building' => array(
                        'dbtype' => 'varchar',
                        'precision' => '255',
                        'phptype' => 'json',
                        'null' => true,
                    ),
                    'layer' => array(
                        'dbtype' => 'varchar',
                        'precision' => '255',
                        'phptype' => 'json',
                        'null' => true,
                    ),
                ),
            ),
        );

        foreach ($map as $class => $data) {
            $modx->loadClass($class);

            foreach ($data as $tmp => $fields) {
                if ($tmp == 'fields') {
                    foreach ($fields as $field => $value) {
                        foreach (array('fields', 'fieldMeta', 'indexes') as $key) {
                            if (isset($data[$key][$field])) {
                                $modx->map[$class][$key][$field] = $data[$key][$field];
                            }
                        }
                    }
                } elseif ($tmp == 'composites' || $tmp == 'aggregates') {
                    foreach ($fields as $alias => $relation) {
                        if (!isset($modx->map[$class][$tmp][$alias])) {
                            $modx->map[$class][$tmp][$alias] = $relation;
                        }
                    }
                }
            }
        }
        break;
    
    case "OnUserFormPrerender":
        if (!isset($user) || $user->get('id') < 1) {
            return;
        }
        
        if (!$modx->getCount('modPlugin', array('name' => 'AjaxManager', 'disabled' => false))) {
            $buildings = [];
            $layers = [];
            if ($user->Profile->building){
                foreach (json_decode($user->Profile->building) as $id){
                    if (!$scBuilding = $modx->getObject('scBuilding', ['id' => $id, 'active' => true])) continue;
                    $buildings[] = (object)$scBuilding->toArray();
                }   
            }
            var_dump($user->Profile->email); var_dump($user->Profile->layer); die();
В данном случае при первой перезагрузке страницы выведется и email и layer, при повторной же emal выведется а свое поле будет null
B так каждый раз пока кэш не очистишь
Николай Савин
04 июля 2023, 16:56
+1
Огромное спасибо
vit
vit
04 июля 2023, 16:21
0
В том и дело что в БД оно null если это запрос вставить в бд он выводит результат правильно, а внутри MODX не работает.
В чем может быть проблема или у меня ошибка в коде выше?