• Jimako
    Main Admin
    Posts: 359
    Joined: 1 year ago
    Mon Oct 29 2018, 13:12  Jimako
    Adding print options has 2 parts: 1. add button with option /link to print displayed page 2. solve printing itself.

    Adding print button

    Already existing print button in core: news: -
    new way
    {PRINTICON} {PRINTICON: class=btn btn-default} forum: -
    semiold way
    {PRINTITEM}
    PRINTICON
    require_once(e_HANDLER.'emailprint_class.php');
    return emailprint::render_emailprint($plugin_name, $record_id, 2, $parm);
    note: this shortcode can be used only for news. There are attemps to make it as general solution, but it's not finished, print.php still counts of text "plugin" in first parameter.
    {PRINTITEM}
    using single shortcode 
    {PRINT_ITEM=Print^plugin:forum. $record_id}
    for any of this way link for printing is created this way: href='".e_HTTP."print.php?".$print.".".$record_id."' where $print is 'news' or plugin:$plugin_name For custom plugin is maybe better direct method (
    old way
    ) Note: I don't see point to call shortcode, then template for next shortcode inside. Example: {REVIEWER_VIEW_PRINT} - custom shortcode
    SC_BEGIN REVIEWER_VIEW_PRINT
    global $reviewer_reviewer_ep;
    $reviewer_print .= " <a href='../../print.php?plugin:reviewer.$reviewer_reviewer_ep' title='" . REVIEWER_V022 . "'><img src='" . e_IMAGE . "generic/" . IMODE . "/printer.png' style='border:0;' alt='" . REVIEWER_V022 . "' /></a>";
    return $reviewer_print;
    SC_END
    Note: There is still used ICONPRINT with path THEME."images/".ICONPRINT or e_IMAGE_ABS."generic/printer.png"; and hardcoded glyphicon icons: <span class='glyphicon glyphicon-print' aria-hidden='true'></span>

    Printing itself

    Printing is managed by print.php file. Each printable plugin has to have e_emailprint.php addons. Function print_item() defines what is printed. News are exception, news are reading directly in print.php and news_template is used for output. Print.php can use THEME.'print_template.php' there is no core print_template.php file. If template doesn't exist, it just display print content with white background and button with window.print(). Note: old Reviewer plugin is example of fully customized solution for plugin with printing option.