Sign in to follow this  
Followers 0
Ptica

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

    1 post in this topic

    Posted

    Создаю модуль листинга недвижимости. На выходе должен получиться 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 = "
                    
             ";
                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(
            '
  • open_(); return false;">Сгенерировать Листинг
  • '
    ); if (!$("#actionLinkBottom > .sugar_action_button > .subnav > li").hasClass('list_li')) $('#actionLinkBottom > .sugar_action_button > .subnav').append( '
  • open_(); return false;">Сгенерировать Листинг
  • '
    );

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

    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

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!


    Register a new account

    Sign in

    Already have an account? Sign in here.


    Sign In Now
    Sign in to follow this  
    Followers 0