Вывод содержимого PDF файла
Актуально для версии 2.9
На многих сайтах может возникнуть потребность в выводе содержимого PDF файла непосредственно на страницу. Это может быть удобно интернет магазинам для вывода, к примеру, инструкции от устройства, которые как правило хранятся в PDF формате. Это позволит посмотреть файл не скачивая его. Вывод содержимого файла на страницу осуществляется кодом:
<object data="http://путь к файлу" type="application/pdf" width="ширина" height="высота">
alt: <a href="http://путь к файлу"></a>
</object>
Для того чтобы не пришлось вставлять код для каждого товара в отдельности, можно написать нехитрый макрос, который будет выводить содержимое файла хранящегося в поле типа "Файл".
public function pdf_view($field,$width,$height){
$current_page_id = cmsController::getInstance()->getCurrentElementId();
$hierarchy = umiHierarchy::getInstance();
$page = $hierarchy->getElement($current_page_id);
if (!$page instanceof umiHierarchyElement) {
throw new publicException(getLabel('error-page-does-not-exist'));
}
$pdf_source=$page->getValue($field);
$pdf_code="<object data=\"$pdf_source\" type=\"application/pdf\" width=\"$width\" height=\"$height\">alt: <a href=\"$pdf_source\"></a></object>";
return $pdf_code;
}
В качестве первого параметра, макрос будет применять идентификатор поля типа "Файл", в котором находится нужный файл, второй и третий параметр будут задавать ширину и высоту выводимой области. Благодаря атрибуту alt заданному в выводимом коде, в браузерах, которые не поддерживают подобный функционал, будет выводится ссылка на скачивание файла.