banzai72

Шаблон PDF

Recommended Posts

посоветуйте пожалуйста, что прописать в шаблоне PDF, что бы в нем было не одно фото а все(или несколько).

Сейчас такой

1.thumb.jpg.83312c4f86753f4cf1acb6e66446d30e.jpg

 

А нужно, что то такое

2.thumb.jpg.213e6b3bdf323539e88526e48d1de4f1.jpg

 

Код у меня в шаблоне PDF такой:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
{literal}
<style>
    @page { margin: 0px; }
    body { margin: 20px 20px 200px 20px; font-family: "verdana";  font-size: 14px;}
    .pg {
        width: 100%;
        /*border: 1px solid silver;*/
    }
    
    .title {
        font-size: 18px;
    }
    
    .optiontable {
        /*width: 290px;*/
        /*border: 1px solid silver;*/
        /*font-weight: bold;*/
        
    }
    
    .option {
    width: 330px;
    display: inline-block;
    }
    .option-paramscol {
        width: 140px;
        display: inline-block;
        text-align: left;
        font-weight: bold;
        padding-right: 20px;
    }
    
    .option-paramsval {
        width: 190px;
        display: inline-block;
    }
    
    .optiontable .paramscol {
        width: 150px;
        /*border: 1px solid silver;*/
        text-align: left;
        font-weight: bold;
        padding-right: 20px;
    }
    
    .optiontable .valuecol {
        width: 190px;
        /*border: 1px solid silver;*/
    }
    
    .photoblock div.img {
        /*float: left;
        width: 160px;
        border: 1px solid silver;*/
    }
    
    .imgsmall {
        display: inline-block;
        
        width: 160px;
        /*border: 1px solid silver;*/
        max-height: 100px;
        overflow: hidden;
        /*padding: 5px;*/
    }
    
    .imgbig {
        width: 320px;
        /*border: 1px solid silver;*/
        max-height: 300px;
        overflow: hidden;
        /*padding: 5px;*/
    }
    

</style>
{/literal}
{assign var=this_item_key_mode value='hide'}
{if $smarty.session.Accessor.mode=='free'}
    {assign var=this_item_key_mode value='open'}
{elseif $smarty.session.Accessor.key!=''}
    {if $smarty.session.Accessor.is_key_ranged==1}
        {if in_array($data_shared.id.value, $smarty.session.Accessor.items)}
            {assign var=this_item_key_mode value='open'}
        {/if}
    {elseif $smarty.session.Accessor.mode=='opened'}
        {assign var=this_item_key_mode value='open'}
    {elseif $smarty.session.Accessor.mode=='semiopened'}
        {if in_array($data_shared[$smarty.session.Accessor.limitedby].value, $smarty.session.Accessor[$smarty.session.Accessor.limitedby])}
            {assign var=this_item_key_mode value='open'}
        {/if}
    {/if}
{else}
    {assign var=this_item_key_mode value='have_no_keys'}
{/if}


</head>
<body>

<table class="pg">
    <tr>
        <td><img src="{$_core_folder}/template/frontend/real-spaces/images/logo.png" width="276px" height="45px"></td>
        <td style="text-align: right; font-weight: bold; font-size: 16px;">
        {if $data.user_id.value==46}{$data_shared.fio.value}{else}{if $data_shared.fio.value != ''}{$data_shared.fio.value}{else}{$user_data.fio.value}{/if}{/if}<br>
        
                              {if $data.user_id.value==46 || $data.user_id.value==120}
                                    {if $this_item_key_mode=='open'}
                                        {if $data_shared.phone.value != ''}{$data_shared.phone.value}<br>{/if}
                                    {else}
                                        Контактные данные проверенных собственников скрыты. <a href="https://72realty.ru/access_select/" role="button" class="btn btn-danger btn-mini">Получить доступ</a><br>
                                    {/if} 
                              {else}
                              
                              {if $data_shared.phone.value != ''}
                                {$data_shared.phone.value}<br>
                              {else}
                                {if $user_data.phone.value != ''} {$user_data.phone.value}<br>{/if}
                                {if $user_data.mobile.value != ''} {$user_data.mobile.value}<br>{/if}
                                {if $user_data.email.value != ''}
                                <a href="mailto:{$user_data.email.value}"> {$user_data.email.value}<br></a>
                                {/if}
                              {/if}

                              {/if}
        
        
            WEB: <a href="https://72realty.ru/">https://72realty.ru/</a>
        </td>
    </tr>
</table>
<hr />
<table class="pg">
    <tr>
        <td style=" font-size: 18px;">
            <b>ID:{$data.id.value}</b><br />
            <span style="color:red">
            {if $data.price_on_request.value==1}
                <b>Цена по запросу</b>
            {else}
                <b>{$data.currency_id.value_string} {$data.price.value|number_format:0:'.':','}</b>
            {/if}
            </span>
        </td>
        <td style="text-align: right;">
            
        </td>
    </tr>
</table>
<table class="pg">
    <tr>
        <td{if $photo|count>0} colspan="2"{/if}><h1 class="title">{$title}</h1></td>
    </tr>
    <tr>
    {if $photo|count>0}
        <td class="photoblock" style="width: 340px;">
            <div class="imgbig"><img src="{$_core_folder}/img/data/{$photo[0].normal}" style="width: 320px;" /></div>
        </td>
        <td style="width: 340px;">
            <table class="optiontable">
                {foreach from=$hvd_tabbed item=tab key=tabname}
                    {if $tab|count>0}
                        {foreach from=$tab item=data_item}
                        
                            {if $data_item.type eq "primary_key" or $data_item.value eq "0" or $data_item.value eq "" or $data_item.name eq "currency_id" or $data_item.name eq "export_cian" or $data_item.name eq "user_id" or $data_item.name eq "price"  or $data_item.name eq "youtube" or $data_item.type eq "hidden" or $data_item.name eq "text" or $data_item.type eq "geodata" or $data_item.name eq "meta_keywords"  or $data_item.name eq "meta_description" or $data_item.name eq "meta_title" or $data_item.type eq "uploads"}
                    
                            {elseif $data_item.name eq "owner_fio" or $data_item.name eq "owner_phone" or $data_item.name eq "private_text" or $data_item.name eq "uniq_id" or $data_item.name eq "address"}
                            {elseif $data_item.name eq "fio"}
                                {assign var="agent_fio" value=$data_item.value}
                            {elseif $data_item.name eq "phone"}
                                {assign var="agent_phone" value=$data_item.value}
                            {elseif $data_item.name eq "email"}
                                {assign var="agent_email" value=$data_item.value}
                            {elseif $data_item.type eq "select_by_query"}
                                {if $data_item.value_string!=''}
                                    <tr><td class="paramscol">{$data_item.title}</td><td>{$data_item.value_string}</td></tr>
                                {/if}
                            {elseif $data_item.type eq "select_box_structure"}
                                {if $data_item.value_string!=''}
                                    <tr><td class="paramscol">{$data_item.title}</td><td>{$data_item.value_string}</td></tr>
                                {/if}
                            {elseif $data_item.type eq "checkbox"}
                                {if $data_item.name ne 'hot' and $data_item.name ne 'active'}
                                    {if $data_item.value eq 1}
                                        <tr><td class="paramscol">{$data_item.title}</td><td><input type="checkbox" checked="checked" disabled="disabled" /></td></tr>
                                    {/if}
                                {/if}            
                            {elseif $data_item.type eq "select_box"}
                                {if $data_item.value_string!=''}
                                    <tr><td class="paramscol">{$data_item.title}</td><td>{$data_item.value_string}</td></tr>
                                {/if}
                            {elseif $data_item.type eq "tlocation"}
                                <tr><td class="paramscol">{$data_item.title}</td><td>{$data_item.tlocation_string}</td></tr>
                            {else}
                                {if $data_item.value!=''}
                                    {if $data_item.name eq "text"}
                                        <tr><td class="paramscol">{$data_item.title}</td><td>{$data_item.value|nl2br}</td></tr>
                                    {else}
                                        <tr><td class="paramscol">{$data_item.title}</td><td>{if is_array($data_item.value)}{$data_item.value|implode:','}{else}{$data_item.value}{/if}</td></tr>
                                    {/if}
                                {/if}
                            {/if}
                        
                        {/foreach}
                    {/if}
                {/foreach}
            </table>
            
        </td>
    {else}
    
    
        
    
    <td style="width: 680px;">
        {assign var=x value=array()}
            
                
        {foreach from=$hvd_tabbed item=tab key=tabname}
                    {if $tab|count>0}
                        {foreach from=$tab item=data_item}
                        
                            {if $data_item.type eq "primary_key" or $data_item.value eq "0" or $data_item.value eq "" or $data_item.name eq "currency_id" or $data_item.name eq "export_cian" or $data_item.name eq "user_id" or $data_item.name eq "price"  or $data_item.name eq "youtube" or $data_item.type eq "hidden" or $data_item.name eq "text" or $data_item.type eq "geodata" or $data_item.name eq "meta_keywords"  or $data_item.name eq "meta_description" or $data_item.name eq "meta_title" or $data_item.type eq "uploads"}
                    
                            {elseif $data_item.name eq "fio"}
                                {assign var="agent_fio" value=$data_item.value}
                            {elseif $data_item.name eq "phone"}
                                {assign var="agent_phone" value=$data_item.value}
                            {elseif $data_item.name eq "email"}
                                {assign var="agent_email" value=$data_item.value}
                            {elseif $data_item.type eq "select_by_query"}
                                {if $data_item.value_string!=''}
                                    {append var=x value=$data_item.title}
                                    {append var=x value=$data_item.value_string}
                                {/if}
                            {elseif $data_item.type eq "select_box_structure"}
                                {if $data_item.value_string!=''}
                                    {append var=x value=$data_item.title}
                                    {append var=x value=$data_item.value_string}
                                {/if}
                            {elseif $data_item.type eq "checkbox"}
                                {if $data_item.name ne 'hot' and $data_item.name ne 'active'}
                                    {if $data_item.value eq 1}
                                        {append var=x value=$data_item.title}
                                        {append var=x value='<input type="checkbox" checked="checked" disabled="disabled" />'}
                                    {/if}
                                {/if}            
                            {elseif $data_item.type eq "select_box"}
                                {if $data_item.value_string!=''}
                                    {append var=x value=$data_item.title}
                                    {append var=x value=$data_item.value_string}
                                {/if}
                            {elseif $data_item.type eq "tlocation"}
                                {append var=x value=$data_item.title}
                                {append var=x value=$data_item.tlocation_string}
                            {else}
                                {if $data_item.value!=''}
                                    {if $data_item.name eq "text"}
                                        {append var=x value=$data_item.title}
                                        {append var=x value=$data_item.value|nl2br}
                                    {else}
                                        {append var=x value=$data_item.title}
                                        {if is_array($data_item.value)}
                                            {append var=x value=$data_item.value|implode:','}
                                        {else}
                                            {append var=x value=$data_item.value}
                                        {/if}
                                    {/if}
                                {/if}
                            {/if}
                        
                        {/foreach}
                    {/if}
                {/foreach}
                
                {assign var=cnt value=($x|count-1)}
                {assign var=i value=0}
                <table class="optiontable">
                {while $i <= $cnt}
                    {if isset($x[$i])}
                        <tr>
                        <td class="paramscol">{$x[$i]}</td><td class="valuecol">{$x[$i+1]}</td>
                        {if isset($x[$i+2])}
                        <td class="paramscol">{$x[$i+2]}</td><td class="valuecol">{$x[$i+3]}</td>
                        {else}
                        <td class="paramscol"></td>
                        {/if}
                        </tr>
                    {/if}
                    {assign var=i value=$i+4}
                {/while}
                
                
                </table>
    

        </td>
    
    {/if}
        
    </tr>
    
    
</table>

<table class="pg">
    {if $data.text.value ne ''}
    <tr>
        <td>{$data.text.value}</td>
    </tr>
    {/if}
            
</table>
{if $data.geo.value.lat!='' && $data.geo.value.lng!=''}
<table class="pg" border="0" cellpadding="0" cellspacing="0">
    <tr style="text-align: center;">
        <td><img src="https://static-maps.yandex.ru/1.x/?ll={$data.geo.value.lng},{$data.geo.value.lat}&size=600,350&z=14&l=map&pt={$data.geo.value.lng},{$data.geo.value.lat},round"></td>
    </tr>
</table>
{/if}


</body></html>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
		{if $photo|count>1}
		<div style="clear: both; width: 100%"></div>
		{section name=j loop=$photo}
			<div class="img_mini"><img src="{$_core_folder}/img/data/{$photo[j].preview}"/></div>
			{if $smarty.section.j.iteration%3==0}
			<div style="clear: both; width: 100%"></div>
			{/if}
		{/section}
		<div style="clear: both; width: 100%"></div>
		{/if}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, rumantic сказал:

		{if $photo|count>1}
		<div style="clear: both; width: 100%"></div>
		{section name=j loop=$photo}
			<div class="img_mini"><img src="{$_core_folder}/img/data/{$photo[j].preview}"/></div>
			{if $smarty.section.j.iteration%3==0}
			<div style="clear: both; width: 100%"></div>
			{/if}
		{/section}
		<div style="clear: both; width: 100%"></div>
		{/if}

 

Спасибо. Установил код вниз. Как дополнительные фотографии. Скажите пожалуйста, можно их как то упорядочить(например три в ряд)?

vsya-prodaja-kvartirikomnatiprodaja-tyumenskaya-oblast-tyumen-sozidateley-1-800-000.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, 72realty сказал:

Спасибо. Установил код вниз. Как дополнительные фотографии. Скажите пожалуйста, можно их как то упорядочить(например три в ряд)?

vsya-prodaja-kvartirikomnatiprodaja-tyumenskaya-oblast-tyumen-sozidateley-1-800-000.pdf

Можно, но в этом случае нужно будет делать фиксированные размеры фото, что не очень хорошо может в будущем сказаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, TopRaN сказал:

Можно, но в этом случае нужно будет делать фиксированные размеры фото, что не очень хорошо может в будущем сказаться.

Нет так нет. Понял. Может тогда посоветуете куда его лучше вставить, что бы как то по приличнее смотрелось?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, 72realty сказал:

Нет так нет. Понял. Может тогда посоветуете куда его лучше вставить, что бы как то по приличнее смотрелось?

Тут у каждого своя точка зрения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, 72realty сказал:

Спасибо. Установил код вниз. Как дополнительные фотографии. Скажите пожалуйста, можно их как то упорядочить(например три в ряд)?

vsya-prodaja-kvartirikomnatiprodaja-tyumenskaya-oblast-tyumen-sozidateley-1-800-000.pdf

Добавьте сверху в шаблоне вот эти стили

				.img_mini {
					width: 240px;
					height: 200px;
					max-height: 200px;
					overflow: hidden;
					margin: 0 10px 10px 0;
					float: left;
					
				}
				.img_mini img {
					width: 100%;
				}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, rumantic сказал:

Добавьте сверху в шаблоне вот эти стили


				.img_mini {
					width: 240px;
					height: 200px;
					max-height: 200px;
					overflow: hidden;
					margin: 0 10px 10px 0;
					float: left;
					
				}
				.img_mini img {
					width: 100%;
				}

 

Огромное спасибо Дмитрий!

Теперь всё как надо!

Как и всегда благодаря Вам!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё было отлично. С PDF больше ничего не делал. А сегодня почему то выдает ошибку. Если кто знает, подскажите пожалуйста как исправить

Fatal error: Uncaught exception 'DOMPDF_Exception' with message 'No block-level parent found. Not good.' in /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/inline_positioner.cls.php:38 Stack trace: #0 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/frame_decorator.cls.php(546): Inline_Positioner->position() #1 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/text_frame_reflower.cls.php(331): Frame_Decorator->position() #2 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/frame_decorator.cls.php(556): Text_Frame_Reflower->reflow(NULL) #3 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/page_frame_reflower.cls.php(138): Frame_Decorator->reflow() #4 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/frame_decorator.cls.php(556): Page_Frame_Reflower->reflow(NULL) #5 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/dompdf.cls.php(817): Frame_Decorator->reflow() #6 /home/dwjmxiya/public_html/apps/system/lib/frontend/view/kvartira_view.php(605): in /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/inline_positioner.cls.phpon line 38

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, 72realty сказал:

Всё было отлично. С PDF больше ничего не делал. А сегодня почему то выдает ошибку. Если кто знает, подскажите пожалуйста как исправить

Fatal error: Uncaught exception 'DOMPDF_Exception' with message 'No block-level parent found. Not good.' in /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/inline_positioner.cls.php:38 Stack trace: #0 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/frame_decorator.cls.php(546): Inline_Positioner->position() #1 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/text_frame_reflower.cls.php(331): Frame_Decorator->position() #2 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/frame_decorator.cls.php(556): Text_Frame_Reflower->reflow(NULL) #3 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/page_frame_reflower.cls.php(138): Frame_Decorator->reflow() #4 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/frame_decorator.cls.php(556): Page_Frame_Reflower->reflow(NULL) #5 /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/dompdf.cls.php(817): Frame_Decorator->reflow() #6 /home/dwjmxiya/public_html/apps/system/lib/frontend/view/kvartira_view.php(605): in /home/dwjmxiya/public_html/apps/pdfreport/lib/dompdf/include/inline_positioner.cls.phpon line 38

Выпустили обновление для pdfreport.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
22 часа назад, rumantic сказал:

Выпустили обновление для pdfreport.

Ещё бы оптимизацию этого приложения провести. А то при запуске на печать двух объектов 

504 Gateway time-out выдает

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: banzai72
      Есть ли какая либо возможность отправлять избранные варианты на почту?
      Модуль PDF есть. Но нужно не с личного кабинета отправлять списки и не с отдельно взятого объекта брать PDF, а добавить понравившиеся объекты в избранное и уже из этой вкладки отправить на почту (себе или клиенту). не зависимо от того, зарегистрирован ли пользователь на данном сайте.
      Хоть как отправить. Хоть письмом с ссылками на данные объекты, хоть PDF.......... Главное, что бы из избранного и без регистрации.
      Подскажите пожалуйста, если кто знает
    • Автор: Pavel88
      Увидел изменения в приложении PDFReport, судя по настройками теперь можно для каждого пользователя применить разные шаблоны презентации.
      Соответственно вопрос, эта штука должна работать или это пока только пробные этапы?

      Потому что при попытке добавить новый шаблон выдает ошибку о несуществующей таблице:

    • Автор: Дмитрий Кондин
      С помощью этого приложения вы сможете экспортировать объявление в PDF-файл. И этот файл распечатать или отправить по почте. http://www.sitebill.ru/export-objavleniy-v-pdf