+7 495 008 8452 пн.-пт. 10:00 – 17:00
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Как известно, поисковые машины любят и хорошо индексируют контент в формате PDF. Да и посетители сайтов при возможности охотно сохраняют страницы сайтов в этом формате, чтобы затем изучить на досуге. Разумеется, на это есть встроенные функции языка PHP. Но как увязать их с CMS «Битрикс»?

1. Подключаем библиотеку mPDF

Скачиваем библиотеку mPDF, затем распаковываем и копируем в коренной каталог сайта.

2. Создаем обработчик для создания файла PDF

Создаем обработчик, который будет автоматически выводить в PDF элемент инфоблока

function IBlockAfterSave($arFields)
{
   require($_SERVER["DOCUMENT_ROOT"]."/MPDF57/mpdf.php");
   if(!CModule::IncludeModule("iblock"))
   return;

   $res = CIBlockElement::GetByID($arFields['ID']);

   if($ar_res = $res->GetNext()){
      $HTML = "
      <div class=\"post-pdf\">
         <h1>$ar_res[NAME]</h1>
         <div class=\"post-pdf-text\">$ar_res[DETAIL_TEXT]</div>
      </div>";

      $HTML = iconv('cp1251', 'utf-8', $HTML);
      $PDF_NAME = $arFields['ID'].".PDF";
      $BE_DIR = $_SERVER["DOCUMENT_ROOT"]."/".COption::GetOptionString("main", "upload_dir")."/pdf/";
      $mpdf=new mPDF();
      $mpdf->SetHeader($ar_res["DATE_CREATE"].'|{PAGENO}|Блог WEB программиста');
      $mpdf->SetFooter('|{PAGENO} | http://'.COption::GetOptionString("main", "server_name").$ar_res["DETAIL_PAGE_URL"]);
      $mpdf->WriteHTML($HTML);
      $mpdf->Output($BE_DIR.$PDF_NAME,"F");
   }

}


3. Создаем обработчик для удаления ненужного файла

После удаления элемента инфоблока соответствующий ему файл PDF надо удалить, чтобы не вводить в заблуждение людей и роботов. Для этого используем код:

<?
AddEventHandler("iblock", "OnBeforeIBlockElementDelete", "IBlockBeforeDel");

 
function IBlockBeforeDel($ID)

{

        if(file_exists($_SERVER["DOCUMENT_ROOT"]."/".COption::GetOptionString("main", "upload_dir")."/pdf/".$ID.".PDF"))

                unlink($_SERVER["DOCUMENT_ROOT"]."/".COption::GetOptionString("main", "upload_dir")."/pdf/".$ID.".PDF");

}
?>


4. Подключаем обработчики

В файле init.php подключаем оба обработчика

<?php
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "IBlockAfterSave");

AddEventHandler("iblock", "OnAfterIBlockElementAdd", "IBlockAfterSave");
?>



Готово!

Назад в раздел

Подписаться на новые материалы раздела:












CAPTCHA