Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 代码点火器防止重复数据_Php_Html_Css_Codeigniter - Fatal编程技术网

Php 代码点火器防止重复数据

Php 代码点火器防止重复数据,php,html,css,codeigniter,Php,Html,Css,Codeigniter,我有一个具有2个功能的控制器: 图像 录像带 我已经创建了一个页眉和页脚模板来加载我的视图,我想将css样式表设置为用户首选的设置“亮”或“暗”。例如,用户将他们的主题设置为暗,我想用dark.css更新标题视图,但我目前正在重复我的代码,我想防止出现这种情况。我不得不这样做两次。一次用于图像: public function images() { //is the user logged in? if not redirect to login page if ( ! $th

我有一个具有2个功能的控制器:

  • 图像
  • 录像带
  • 我已经创建了一个
    页眉
    页脚
    模板来加载我的视图,我想将css样式表设置为用户首选的设置“亮”或“暗”。例如,用户将他们的主题设置为暗,我想用dark.css更新
    标题
    视图,但我目前正在重复我的代码,我想防止出现这种情况。我不得不这样做两次。一次用于图像:

    public function images() 
    {
        //is the user logged in? if not redirect to login page
        if ( ! $this->my_auth->logged_in())
        {
          redirect('auth/login', 'refresh');
        }
    
        //set the view data
        $data['title'] = 'Upload Images | My Idea Cloud';
        $data['heading'] = 'Upload Images';
        $data['attributes'] = array(
          'class' => 'dropzone',
          'id' => 'image-dropzone'                
        );
    
        // get users style and set the correct style sheet
        $user_data = $this->my_auth->user()->row();
    
        if ($user_data->style == 'light')
        {
            $data['flat_css'] = 'flat-ui-light.css';
            $data['navbar_class'] = 'navbar-default';
            $data['footer_class'] = 'bottom-menu-default';
            $data['custom_css'] = 'custom-light.css';
            $data['dropzone_css'] = 'dropzone-light.css';
        }
        elseif ($user_data->style == 'dark')
        {
            $data['flat_css'] = 'flat-ui-dark.css';
            $data['navbar_class'] = 'navbar-inverse';
            $data['footer_class'] = 'bottom-menu-inverse';
            $data['custom_css'] = 'custom-dark.css';
            $data['dropzone_css'] = 'dropzone-dark.css';
        }
        else
        {
            $data['flat_css'] = 'flat-ui-dark.css';
            $data['navbar_class'] = 'navbar-inverse';
            $data['footer_class'] = 'bottom-menu-inverse';
            $data['custom_css'] = 'custom-dark.css';
            $data['dropzone_css'] = 'dropzone-dark.css';
        }
    
    
        //load the views    
        $this->load->view('templates/frontend/front_header', $data);
        $this->load->view('templates/frontend/front_navbar');
        $this->load->view('frontend/upload_images', $data);
        $this->load->view('templates/frontend/front_footer', $data);
    
    一次用于视频功能

    public function videos() 
    {
        if ( ! $this->my_auth->logged_in())
        {
          redirect('auth/login', 'refresh');
        }
    
        $data['title'] = 'Upload Videos| My Idea Cloud';
        $data['heading'] = 'Upload Videos';
        $data['attributes'] = array(
          'class' => 'dropzone',
          'id' => 'video-dropzone'                
        );
    
        // get users style and set the correct style sheet
        $user_data = $this->my_auth->user()->row();
    
        if ($user_data->style == 'light')
        {
            $data['flat_css'] = 'flat-ui-light.css';
            $data['navbar_class'] = 'navbar-default';
            $data['footer_class'] = 'bottom-menu-default';
            $data['custom_css'] = 'custom-light.css';
            $data['dropzone_css'] = 'dropzone-light.css';
        }
        elseif ($user_data->style == 'dark')
        {
            $data['flat_css'] = 'flat-ui-dark.css';
            $data['navbar_class'] = 'navbar-inverse';
            $data['footer_class'] = 'bottom-menu-inverse';
            $data['custom_css'] = 'custom-dark.css';
            $data['dropzone_css'] = 'dropzone-dark.css';
        }
        else
        {
            $data['flat_css'] = 'flat-ui-dark.css';
            $data['navbar_class'] = 'navbar-inverse';
            $data['footer_class'] = 'bottom-menu-inverse';
            $data['custom_css'] = 'custom-dark.css';
            $data['dropzone_css'] = 'dropzone-dark.css';
        }
    
        $this->load->view('templates/frontend/front_header', $data);
        $this->load->view('templates/frontend/front_navbar');
        $this->load->view('frontend/upload_videos', $data);
        $this->load->view('templates/frontend/front_footer', $data);      
    
    有更多的代码,所以我没有将两者结合起来。我只显示部分代码


    是否有人可以指导我如何整合代码的正确方向?

    如果代码中有
    elseif
    块,那么也没有用,如果您提取公共数据以通过数据传递,这是我可以想到的一种最小化尝试

    若要应用此功能,请从代码中删除
    if
    elseif
    else
    块并放置

    if($user_data->style == 'light')
    {
        $intensity = 'light';
        $default = 'default';
    }
    else
    {
        $intensity = 'dark';
        $default = 'inverse';
    }
    
    $data['flat_css']     = "flat-ui-{$intensity}.css";
    $data['navbar_class'] = "navbar-{$default}";
    $data['footer_class'] = "bottom-menu-{$default}";
    $data['custom_css']   = "custom-{$intensity}.css";
    $data['dropzone_css'] = "dropzone-{$intensity}.css";
    
    如果要使其更通用,请在同一控制器中创建函数

    function apply(&$data,$style)
    {
        if($style == 'light')
        {
            $intensity = 'light';
            $default = 'default';
        }
        else
        {
            $intensity = 'dark';
            $default = 'inverse';
        }
    
        $data['flat_css']     = "flat-ui-{$intensity}.css";
        $data['navbar_class'] = "navbar-{$default}";
        $data['footer_class'] = "bottom-menu-{$default}";
        $data['custom_css']   = "custom-{$intensity}.css";
        $data['dropzone_css'] = "dropzone-{$intensity}.css";
    }
    
    并用一行代码替换我答案中显示的第一个代码块

    $this->apply($data,$user_data->style);
    

    您将在
    $data

    中定义这五个变量,谢谢!如果我希望这适用于我的所有观点,我该怎么做?我不想每次在控制器中添加带有视图的新函数时都添加这个。太棒了!我要试试这个。它奏效了!我会接受这个答案。这可以变成一个库吗?这样我就不必在每个控制器中创建这个函数,而只需加载库?我想我回答了我自己的问题。谢谢或者,您可以在助手中复制相同的函数,并通过
    apply($data,$user\u data->style)调用,这将更可取