Jump to content
SpravkaCRM.ru - Ваш справочник по CRM
Sign in to follow this  
Ptica

Создание модуля листинга

Recommended Posts

Создаю модуль листинга недвижимости. На выходе должен получиться PDF файл с объектами недвижимости.

Для начала создаю пункт меню в crm-ке по аналогии.

В файле \custom\modules\logic_hooks.php

$hook_array['after_ui_frame'][] = Array(3, 'Add zLIST button to listview', 'modules/zLIST/add_action.php','zLISTAction', 'addCustomButtonAction');

Где 3 - порядковый номер хука, далее название (какое угодно для души), потом файл который будет выполнятся, класс и метод этого файла соответственно.

В \modules\zLIST\add_action.php пишу это:

 

class zLISTAction {
    function addCustomButtonAction(){
        
            $html = "
                <script src='modules/zLIST/js/add_button.js'></script>
         ";
            echo $html;
    }

}

То есть выполняю скрипт add_button.js 

В \modules\zLIST\js\add_button.js :

if (!$("#actionLinkTop > .sugar_action_button > .subnav > li").hasClass('list_li'))
    $('#actionLinkTop > .sugar_action_button > .subnav').append(
        '<li class="list_li"><a href="#" name="zlist" id="zlist" class="list" onclick="open_(); return false;">Сгенерировать Листинг</a></li>');
if (!$("#actionLinkBottom > .sugar_action_button > .subnav > li").hasClass('list_li'))
    $('#actionLinkBottom > .sugar_action_button > .subnav').append(
        '<li class="list_li"><a href="#" name="zlist" id="zlist" class="list" onclick="open_(); return false;">Сгенерировать Листинг</a></li>');

Здесь добавляем в меню еще один пункт. Выглядит теперь так

Screenshot_4.png

 

В этом же файле:

function open_ () {
       window.open('index.php?module=zLIST&action=generate_listing');
    }

В новом окне открывается файл generate_listing.php сохраненный в modules\zLIST :

 

require_once 'modules/zLIST/send_listing.php';
$file = GenerateListing();
//var_dump($file);
if (file_exists($file))
{
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename("$file")).'"';
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: '.filesize("{$file}"));
    ob_clean();
    flush();
    readfile("{$file}");
    exit;
}

После чего выполняется modules\zLIST\send_listing.php :

require_once 'fpdf17/fpdf.php';

function GenerateListing()
{
    
    $pdf = new FPDF();
    $pdf->AddFont('TimesNewRomanPSMT','','times.php');
    $pdf->AddFont('Times-Italic','I','timesi.php');
    $pdf->SetAuthor('OfficeWorld');
    $pdf->SetTitle('Listing');
    $pdf->SetFont('TimesNewRomanPSMT','',35);
    $pdf->SetTextColor(100,100,100);
    $pdf->AddPage('L');
    $pdf->SetDisplayMode('real','default');
    $pdf->Image('modules/zLIST/images/Presentation.jpeg', , , 297, 180);
    $pdf->Image('modules/zLIST/images/Footer.jpeg', , 195, 297, 15);
    $pdf->Text(100, 100, 'hi');

    $pathfolder = 'modules/zLIST/listings/';

    $pdf->Output($pathfolder. 'Листинг - ['.'].pdf');
    return ($pathfolder . 'Листинг - ['.'].pdf');
}

 

Нужно обработать в файле modules\zLIST\send_listing.php выделенные записи. То есть получить их id и прочие параметры (с помощью retrieve, я думаю)

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...