Владимир

Владимир

С нами с 28 декабря 2012; Место в рейтинге пользователей: #53
Марат Марабар
20 июля 2016, 16:31
1
+2
Удалять не обязательно, если он используется.
Достаточно во всех русских файлах лексикона удалить символ "." (точка) перед <?php — и будет работать.
Andrey
19 июля 2016, 22:24
1
+1
Надо было использовать where без JSON

&where=`modResource.publishedon > UNIX_TIMESTAMP('[[getDateWeekAgo]]')`
и все заработало
Stan Ezersky
19 июля 2016, 21:33
1
+1
Решил сам.
Кустарно конечно, но как требуется — работает.

$('#product_model').css({display: 'none'});
 
    $('#vendor input:checkbox').change(function () {
        
        if ($(this).is(':checked')) {
            $('#product_model').fadeIn();
            return;
        } 
        $('#product_model').fadeOut();
 
    });

и CSS

label.disabled {
	display: none;
}
Павел Гвоздь
11 июля 2016, 09:01
3
+2
Феномом получить список тегов и вывести второй по счёту:
{if $_modx->resource.tags?}
	{var $tags = json_decode($_modx->resource.tags, 1)}
	{$tags[1] ?: ''}
{/if}
Как-то так…
but1head
10 июля 2016, 01:09
1
+1
У меня на одном проекте
{$_modx->config.cultureKey}
не отрабатывает, а вот
{$_modx->config['cultureKey']}
работает прекрасно.
Марат Марабар
07 июля 2016, 22:43
2
+3
Или так:
if ($time == 1){
	return strtotime("last Monday - 1 week"); // 27.06.2016 : 00:00 
}

if ($time == 2){
	return strtotime("last Monday - 1 sec"); // 03.07.2016 : 23:59
}
Как вариант.
Илья Уткин
07 июля 2016, 22:22
2
+1
Можно проще и более удобочитаемо
if ($time == 1){
  return strtotime('last Monday', strtotime('Monday this week')); 
}

if ($time == 2){
  return strtotime('last Sunday', strtotime('Sunday this week')); 
}
Илья Уткин
03 июля 2016, 13:12
3
+2
Возможно, вот такой вариант сможет и из Console обработать любое количество ресурсов:
<?php
$field = $modx->getOption('videogallery_field_image');

// Сколько ресурсов обрабатывать за раз
$step = 1;
// Если процесс уже остановлен, сбрасываем OFFSET
if (!isset($_SESSION['Console']['completed'])) {
    $_SESSION['console_offset'] = 0;
}
$offset = isset($_SESSION['console_offset']) && $_SESSION['console_offset'] ? $_SESSION['console_offset'] : 0;

$q = $modx->newQuery('modResource');
$q->innerJoin('modTemplateVarResource', 'modTemplateVarResource', 'modTemplateVarResource.contentid = modResource.id');
$q->innerJoin('modTemplateVar', 'modTemplateVar', 'modTemplateVar.id = modTemplateVarResource.tmplvarid');
$q->select(array(
    'modResource.id as resource_id',
    'modTemplateVar.id as tv_id',
    'modTemplateVar.name as tv_name',
    'modTemplateVarResource.value as tv_value',
    'modTemplateVarResource.id as id',
));
$q->where(array(
    'modTemplateVar.type' => 'videoGallery',
));

// Подсчитываем общее количество
$total = $modx->getCount('modResource', $q);

// Пропускаем все уже обработанные объекты
$q->limit($step, $offset);

$q->prepare();
$q->stmt->execute();
$rows = $q->stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
    // print_r($row);
    $data = $modx->fromJSON($row['tv_value']);
    if (is_array($data) && isset($data['video'])) {
        $old['fileurl'] = $data['image'];
        $old['filepath'] = str_replace(MODX_ASSETS_URL, MODX_ASSETS_PATH, $old['fileurl']);
        
        $resp = $modx->runProcessor('gallery/handle', array(
            'resource' => $row['resource_id'],
            'tv' => $row['tv_id'],
            'video' => $data['video'],
        ), array('processors_path' => MODX_CORE_PATH . 'components/videogallery/processors/mgr/'));
        
        $resp = $resp->response;
        // print_r($resp['object']['image'].PHP_EOL);
        
        if ($resp['success']) {
            if ($resource = $modx->getObject('modResource', array('id' => $row['resource_id']))) {
                $resource->setTVValue($row['tv_name'], $resp['object']['json']);
                $resource->save();
                
                // Если в настройках указано поле для хранения изображений - сохраним в него новый путь до картинки
                if ($field) {
                    if (stristr($field, 'tv.')) {
                        $resource->setTVValue(str_replace('tv.', '', $field), $resp['object']['image']);
                    } else {
                        $resource->set($field, $resp['object']['image']);
                    }
                    $resource->save();
                }
                
                // Удалим старое изображение
                if (file_exists($old['filepath']) && $old['fileurl'] != $resp['object']['image']) {
                    @unlink($old['filepath']);
                }
            }
        }
    }
}

// Меняем offset
$_SESSION['console_offset'] = $offset + $step;
if ($_SESSION['console_offset'] >= $total) {
  $sucsess = 100;
  $_SESSION['Console']['completed'] = true;
  unset($_SESSION['console_offset']);
} else {
  $sucsess = round($_SESSION['console_offset'] / $total, 2) * 100;
  $_SESSION['Console']['completed'] = false;
}
for ($i=0; $i<=100; $i++) {
    if ($i <= $sucsess) {
        print '=';
    } else {
        print '_';
    }
}
print "\n";
print $sucsess.'% ('.$_SESSION['console_offset'].')'."\n\n";
Максим Кузнецов
29 июня 2016, 16:05
7
+2
'where' => '{
	"id:!=": '~ $_modx->resource.id ~'
}'