Разработка собственного компонента комментариев в 1С-Битрикс

Внимание! Работает режим премодерации. Все сообщения публикуются после проверки!
Страницы: 1
Ответить
RSS
Разработка собственного компонента комментариев в 1С-Битрикс
Как создать свой компонент комментариев на 1С-Битрикс: старый и новый подходы (component.php vs class.php)

Платформа 1С-Битрикс предоставляет разработчикам возможности для  создания различных компонентов, которые расширяют функционал сайта.  Ранее для создания компонента использовался файл component.php, однако с появлением нового ядра D7 структура и подходы к разработке компонентов претерпели значительные изменения. Вместо component.php теперь используется class.php,  что позволяет значительно улучшить организацию кода, повысить его  читаемость и использовать объектно-ориентированные принципы разработки.
Изменено: Валерий Макеев - 29.09.2025 10:34:58
Реализация компонента для отображения и добавления комментариев через API Битрикс D7.
Код
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();

use Bitrix\Main\Application;
use Bitrix\Main\Loader;
use Bitrix\Iblock\Elements\ElementCommentsTable;

class CustomCommentsComponent extends CBitrixComponent
{
    public function executeComponent()
    {
        try {
            Loader::includeModule('iblock');
            
            $this->processForm();
            $this->getComments();
            $this->includeComponentTemplate();
            
        } catch (Exception $e) {
            ShowError($e->getMessage());
        }
    }

    private function processForm()
    {
        $request = Application::getInstance()->getContext()->getRequest();
        
        if ($request->isPost() && $request->getPost('submit_comment')) {
            $this->addComment($request->getPost('comment_text'));
        }
    }

    private function addComment($text)
    {
        $result = ElementCommentsTable::createObject();
        $result->setName('Комментарий ' . time());
        $result->setPreviewText($text);
        $result->setIblockId($this->arParams['IBLOCK_ID']);
        $result->save();
    }

    private function getComments()
    {
        $comments = ElementCommentsTable::getList([
            'filter' => [
                'IBLOCK_ID' => $this->arParams['IBLOCK_ID'],
                'ACTIVE' => 'Y'
            ],
            'order' => ['ID' => 'DESC']
        ])->fetchAll();

        $this->arResult['COMMENTS'] = $comments;
    }
}
Изменено: Валерий Макеев - 11.09.2025 09:28:41
Страницы: 1
Ответить
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Аутсорсинг

готов помочь, если нет времени

договорная

Могу взять на себя работы по full-stack

* на основе готовой верстки

Техническая поддержка

сайтов на CMS 1C-Битрикс

от 20 000 рублей/месяц
Оптимизация производительности действующих интернет-проектов, наполнение и сопровождение, полная техническая поддержка и продвижение в поисковых сетях.

* стоимость зависит от объема и сложности выполняемых работ

Перенос сайтов на «1С-Битрикс»

сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость

от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.

* зависит от объема выполняемых работ.