Василий Stepanov

Василий Stepanov

С нами с 10 января 2014; Место в рейтинге пользователей: #159
Василий Stepanov
15 мая 2017, 16:30
0
На подобный вопрос Василий Наумкин отвечал тут https://modx.pro/help/946/#comment-8243
Василий Stepanov
15 мая 2017, 16:29
0
При создании ресурса вы забыли в массиве указать class_key:
'class_key' => 'msProduct'
Попробуй так:
$response = $modx->runProcessor('resource/create', array(
'class_key' => 'msProduct',
'pagetitle' => 'Заголовок',
'longtitle' => '',
'description' => '',
'introtext' => '',
'content' => 'Содержимое тестовой страницы',
'alias' => '',
'template' => 5,
'published' => 1,
'parent' => '19'    // укажи свою категорию
));
if ($response->isError()) {
return $modx->error->failure($response->getMessage());
}

$newResource = $response->response['object'];
P.S.: без знаков препинания ваш вопрос очень сложно понять
Василий Stepanov
12 мая 2017, 08:53
+3
Создай простой сниппет для смены шаблона у ресурсов:
$resources = $modx->getCollection('modResource',array('parent' => 19));   //берем ресурсы из категории "19"
foreach ($resources as $res) {
    $res->set('template', 3);                                             //устанавливаем им шаблон "3"
    $res->save();                                                         //сохраняем...
}
Василий Stepanov
29 апреля 2017, 18:09
0
[[*gal_img2:notempty=`<li><a href="[[*gal_img2?]]" class="gallery"><img src="[[*gal_img2?]]" alt="[[*pagetitle]]2"></a></li>`]]
Василий Stepanov
02 апреля 2017, 04:18
2
+1
Сделал вот так. Работает.
//собираем заголовки из категории ресурсов
$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;
    }
}
Василий Stepanov
02 апреля 2017, 04:05
+1
Согласен, отличный мощный компонент для реализации сильных проектов. В моем случае стоит задача спарсить лишь одну ленту с десятью новостями и создать ресурсы, задача на первый взгляд простая и есть инетерес написать сниппет самим.
Василий Stepanov
09 февраля 2014, 23:07
0
Делаю каталог, использую minishop2. В качестве рейтинга ресурсов установил LikeDislike.
Василий Stepanov
09 февраля 2014, 22:32
0
Спасибо за твою работу!
Василий Stepanov
09 февраля 2014, 19:52
0
Добрый вечер. Вывожу количество комментариев на сайте через сниппет countComments:
$sql = "SELECT COUNT(id) AS count FROM modx_tickets_comments;";
$query = new xPDOCriteria($modx, $sql);

if ($query->prepare() && $query->stmt->execute()){
    $res = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
}

foreach ($res as $row) {
        //$total = $row[1];
        //print_r($row);
        print_r($res[0]['count']);
}
И вывожу в нужном месте:
[[!countComments?]]
Все работает, но может можно сделать проще?