Файл: system/controllers/comments/hooks/content_before_item.php
Строк: 53
<?php
class onCommentsContentBeforeItem extends cmsAction {
    public function run($data){
        list($ctype, $item, $fields) = $data;
        if ($ctype['is_comments'] && $item['is_approved'] && !empty($item['is_comments_on'])){
            $this->target_controller = 'content';
            $this->target_subject    = $ctype['name'];
            $this->target_id         = $item['id'];
            $this->target_user_id    = $item['user_id'];
            if(!empty($ctype['options']['comments_labels'])){
                $this->setLabels($ctype['options']['comments_labels']);
            }
            if (!empty($ctype['options']['comments_title_pattern'])){
                $this->comments_title = string_replace_keys_values_extended($ctype['options']['comments_title_pattern'], $this->getItemSeo($item, $fields));
            }
            if (!empty($ctype['options']['comments_template'])){
                $this->comment_template = $ctype['options']['comments_template'];
            }
            $item['comments_widget'] = $this->getWidget();
        }
        return array($ctype, $item, $fields);
    }
    private function getItemSeo($item, $fields) {
        $_item = $item;
        foreach ($fields as $field) {
            if (!isset($item[$field['name']])) { $_item[$field['name']] = '';  continue; }
            if (empty($item[$field['name']]) && $item[$field['name']] !== '0') {
                $_item[$field['name']] = null; continue;
            }
            $_item[$field['name']] = $field['string_value'];
        }
        if(!empty($item['category']['title'])){
            $_item['category'] = $item['category']['title'];
        } else {
            $_item['category'] = null;
        }
        return $_item;
    }
}