Nikita

Nikita

Был в сети 27 января 2026, 10:22
Заказы не принимаю
t.g
t.g
gluck
gluck
Да, вручную, я смоделировал работу редактора.
Полчаса назад сделал точно как вы описали здесь, только еще добавил и время создания. Мало ли редактору захочется написать > 1 новости сегодня…

if ( $resource->get('parent') == 9 && $mode == 'new')
{
    $resource->set('alias',$resource->get('alias').'-'.$resource->get('createdon'));
}
Повесился только на один OnBeforeDocFormSave, это было ключевым моментом, спасибо за подсказку. Если повеситься на несколько событий — не происходило ничего.
Василий Stepanov
Василий Stepanov
Сделал вот так. Работает.
//собираем заголовки из категории ресурсов
$docfind = $modx->getCollection('modResource',array('parent' => '19'));
foreach ($docfind as $k => $res) {
    $title_m = $res->get('pagetitle');
    $titles[] = $title_m;
}

$path = 'http://www.amur.info/index.rss';
$ctx = stream_context_create(array('http' => array('timeout' => 6)));
$file = file_get_contents($path, 0, $ctx);

if ($file) {
    $rss = simplexml_load_string($file);
    $i = 0;
    foreach ($rss->channel->item as $item){
        $namespaces = $item->getNameSpaces(true);
        $yandex = $item->children($namespaces['yandex']); 
        
        $full_text = (string)$yandex->{'full-text'};       //полный текст статьи
        $title = $item->title;                             //заголовок статьи
        $pubdate = $item->pubDate;                         //дата публикации
        $link = $item->link;                               //ссылка на новость
        
	//создаем ресурсы в MODX, если ресурсов с такими заголовками еще нет
        if (in_array($title, $titles) == false) {
            $response = $modx->runProcessor('resource/create', array(
                'pagetitle' => $title,
                'longtitle' => $pubdate,
                'description' => $link,
                'introtext' => '',
                'content' => $full,
                'template' => $template,
            	'hidemenu' => 1,
            	'published' => 1,
            	'parent' => '19'
            ));
        }
        
        $i++;
        if ($i == 5) break;
    }
}
but1head
but1head
<?php
if($modx->event->name != 'msOnGetProductPrice') return;

if($modx->user  && $modx->user->isMember('Wholesaler')){
    $values = & $modx->event->returnedValues;
    $resource = $modx->getObject('msProduct', $product->id);
    $wholesale_price = $resource->getTVValue('price_opt');
    if($wholesale_price){
        $values['old_price'] = $values['price'];
        $values['price'] = $wholesale_price;
    }
}
Элементарная оптовая цена для юзеров в группе «оптовик», сделаная через tv, 3 минуты работы. Очень сложно?
Важное качество программиста «гуглить», а не просить сделать других его работу. Не умеете — не беритесь.