如何在新窗口中打开杂货店中的自定义操作?

问题描述 投票:1回答:2

我想要做的是当我在使用杂货店crud渲染的表中单击自定义动作时,它将在新窗口中打开。

public function list() {
        try {
            $crud = new grocery_CRUD();

            $crud->set_theme('flexigrid');
            $crud->set_table('employee');

            $crud->add_action('Create Payslip', base_url().'design/images/img.png', 'roll/emp');

            $output = $crud->render();

            $this->output($output);
        } catch(Exception $e) {
            show_error($e->getMessage().' --- '.$e->getTraceAsString());
        }
    }

我应该添加什么?

php codeigniter custom-action grocery-crud
2个回答
0
投票

你可以修改默认的杂货店crud,添加一个jquery处理程序(或者你可以使用回调添加它,如果你出于某种原因更喜欢这个)。

这个jquery处理程序将创建一些确定类的链接(例如add_action生成按钮的class属性可以是class =“edit_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text- icon-primary“)在新窗口中打开(target =”_ blank“)。

你的处理程序将是这样的:

//在这里添加你需要在新窗口中打开链接的按钮类$(“。YOUR_CLASS_NAME”)。attr(“target”,“_ blank”);


0
投票

这是一个快速的技巧,可以在没有Grocery Crud CORE文件的任何变化的情况下完成这项工作。在将输出传递给控制器​​中的打印功能之前,只需添加对str_replace()的调用,例如:

GC主题:数据表

...
$crud->add_action('Print', '', 'admin/print_monthly_fess', 'ui-icon-print');
$output = $crud->render();

$output->output = str_replace('class="edit_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary"', 'class="edit_button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" target="_blank"', $output->output); //additional line
$this->_example_output('example_template.php', $output);

GC主题:flexigrid

...
$crud->add_action('Print', base_url().'assets/grocery_crud/themes/flexigrid/css/images/print.png', 'admin/print_monthly_fess');
$output = $crud->render();

$output->output = str_replace('title="Print"', 'title="Print" target="_blank"', $output->output); //additional line
$this->_example_output('example_template.php', $output);

在我的情况下,添加的动作具有给定的类/标题,但你应该做一个“视图源”并查看最终输出,然后找出拼接target="_blank"的位置

解决方案来源:GC forum

© www.soinside.com 2019 - 2024. All rights reserved.