Как в плагине получить все блоки PageBlocks вместе?
        Может кто-то подсказать, как правильно написать плагин, который срабатывает на сохранение документа и записывает количество символов всех блоков PageBlocks в TV-переменную «symbols»? 
Этот код возвращает «0»:
    
    
                                                                                
            Этот код возвращает «0»:
<?php
$contentblocks = $modx->getService('PageBlocks', 'PageBlocks', MODX_CORE_PATH . 'components/pageblocks/model/');
$contentblocks = strlen(strip_tags($contentblocks));
switch ($modx->event->name) {
    case 'OnDocFormSave':
        $resource->setTVvalue('symbols', $contentblocks);
        break;
}    Комментарии: 2
                Я думаю надо изучить схему компонента, получить методом getIterator() все блоки привязанные к текущему ресурсу, потом в цикле получить у каждого блока поле с контентом, потом вырезать тэги и посчитать количество символов, путём инкрементирования какой-нибудь переменной, например, $count. А потом записать это значение в TV symbols.            
                    
                Изучил, вроде делаю все как надо, в снипете конструкция работает, а в плагине нет… понять не могу почему.
                    <?php
$contentblocks = $modx->getService('PageBlocks', 'PageBlocks', MODX_CORE_PATH . 'components/pageblocks/model/');
$blocks = $contentblocks->getCollection('pageBlock');
$output = '';
foreach ($blocks as $block) {
    $output .= $modx->getChunk($block->chunk, $block->values);
}
$count = strlen(strip_tags($output)); 
 
switch ($modx->event->name) {
    case 'OnDocFormSave':
        $resource->setTVvalue('symbols', $count);
        break;
}            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.