Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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_Algorithm_Navigation - Fatal编程技术网

Php 更好的动态导航菜单

Php 更好的动态导航菜单,php,algorithm,navigation,Php,Algorithm,Navigation,目前我有以下方法: ctop = $cnew = $cmine = ''; if($actual == 'top') $ctop = 'class="active"'; if($actual == 'last') $new = 'class="active"'; if($actual == 'mine') $cmine = 'class="active"'; $html = '<aside class="panel_derecho">

目前我有以下方法:

    ctop = $cnew = $cmine = '';
    if($actual == 'top') $ctop = 'class="active"';
    if($actual == 'last') $new = 'class="active"';
    if($actual == 'mine') $cmine = 'class="active"';
    $html = '<aside class="panel_derecho">
                <div class="tabs"><h4>$donde</h4>
                    <ul>';
                                $js = "refrescar_submenu('last_$donde')";
                                $js_t = "refrescar_submenu('top_$donde')";
                                $js_r = "refrescar_submenu('mine_$donde')";
                        $html .= '<li '.$ctop.'><a href="#sub_menu" onclick="'.$js_t.'">top</a></li>';
                        $html .= '<li '.$cnew.'><a href="#sub_menu" onclick="'.$js.'">ultimos</a></li>';
                        $html .= '<li '.$mine.'><a href="#sub_menu" onclick="'.$js_r.'">like</a></li>';
   $html .= '       </ul>
            </aside>';
    return $html;
ctop=$cnew=$cmine='';
如果($actual=='top')$ctop='class=“active”';
如果($actual=='last')$new='class=“active”';
如果($actual=='mine')$cmine='class='active';
$html=“”;
$html.=';
$html.=';
$html.='
';
返回$html;
wich按预期工作:

它生成一个列表,其中包含所需的副本、所需的javascript函数参数和活动类(对于所需的类)

但我觉得它可以少重复;我已经看到,添加/编辑/删除copy、params、elements等将非常昂贵。。我只是不知道到哪里去乞讨

如果有帮助:

  • $donde
    表示数据类型(文章、歌曲、视频等)
  • $actual
    代表一个atribute(新文章、顶级文章、, (我喜欢的文章)
  • //菜单:链接=>文本
    $menu=数组(
    “顶部”=>“顶部”,
    “last”=>“ultimos”,
    “我的”=>“喜欢”
    );
    $html=“”;
    }
    $html.='
    ';
    返回$html;
    
    //菜单:链接=>文本
    $menu=数组(
    “顶部”=>“顶部”,
    “last”=>“ultimos”,
    “我的”=>“喜欢”
    );
    $html=“”;
    }
    $html.='
    ';
    返回$html;
    
    $attributes=array(“top”=>“top”、“last”=>“ultimos”、“mine”=>“like”);
    $html=“”;
    $html.=“
    ";
    返回$html;
    
    $attributes=array(“top”=>“top”、“last”=>“ultimos”、“mine”=>“like”);
    $html=“”;
    $html.=“
    ";
    返回$html;
    
    我不确定您是否使用框架,但如果您使用任何形式的MVC,您都可以在控制器中分配活动类,然后将其传递给视图。这实际上并不比你所做的更有效率。我在想,也许我应该用
  • 的值来做关联数组,这些值应该用$actual和$donde填充?我不确定你是否使用框架,但是,如果您使用任何形式的MVC,您都可以在控制器中分配活动类,然后将其传递给视图。这实际上并不比你所做的更有效率。我在想,也许我应该用
  • 的值做关联数组,这些值应该用$actual和$donde填充?当你有一个重复的列表时,你应该使用某种数组来处理:)是的,我也给出了你的答案。有趣的是,我们的解决方案竟然如此相似!;-)当你有一个重复的列表时,你应该使用某种数组来处理:)是的,我也给出了你的答案。有趣的是,我们的解决方案竟然如此相似!;-)
    // Menu: link => text
    $menu = array(
         "top" => "top",
         "last" => "ultimos",
         "mine" => "like"
    );
    
    $html = '<aside class="panel_derecho">
                <div class="tabs"><h4>$donde</h4>
                    <ul>';
    foreach ($menu as $link => $text)
    {
        $html .= '<li '.( $link==$actual ? 'class="active"' : '').'><a href="#sub_menu" onclick="refrescar_submenu(\''.$link.'_'.$donde.'\')">'.$text.'</a></li>';
    }
    $html .= '       </ul>
            </aside>';
    return $html;
    
        $attributes = array("top" => "top", "last" => "ultimos", "mine" => "like");
        $html = "<aside class=\"panel_derecho\">
        <div class=\"tabs\"><h4>{$donde}</h4>
            <ul>";
        foreach ($attributes as $key=>$value)
            $html .= "          <li ". ($actual == $key ? "class=\"active\"" : "") ."><a href=\"#sub_menu\" onclick=\"refrescar_submenu('{$key}_{$donde}'\">{$value}</a></li>";
       $html .= "       </ul>
       </div>
    </aside>";
    
        return $html;