0

我正在“随时随地”学习 PHP,因为我正在为一个我必须在工作中做的网站编辑模板,我有点迷路了。原始代码如下所示:

<!-- start of top menubar -->
<table border="0" cellpadding="0" cellspacing="0" width="{$web_var_main_width}" align="center">
<tr style="background-color:#{$web_var_top_tabs_background};">
{php}
    global $lang;
    $this->assign('web_var_top_folder', $this->get_template_vars('web_var_top_folder_'.$lang));
{/php}
<td align="right" style="{if $web_var_top_tabs_image ne "" and $web_var_top_tabs_image ne 0}background:url(http://{$lang}.{$website_name}/{$RSwebPath}utilities/getScaledPicture.php?imageID={$web_var_top_tabs_image}&w={$web_var_top_tabs_image_x}&h={$web_var_top_tabs_image_y}&adj=d) top left repeat-y;{/if}background-color:#{$web_var_top_tabs_background_right};">
{if $folders_structure|@count gt 0}
{if $web_var_top_folder gt 0}
{section name=findtop loop=$folders_structure}
{if $folders_structure[findtop].key eq $web_var_top_folder}{assign var="top_menu" value=$folders_structure[findtop].childs}{/if}
{/section}
{if $top_menu|@count gt 0}
<table border="0" cellpadding="0" cellspacing="0" align="right">
<tr>
{if $web_var_top_font_size eq "small"}
    {assign var="web_var_top_font_size" value="10px"}
{elseif $web_var_top_font_size eq "medium"}
    {assign var="web_var_top_font_size" value="12px"}
{elseif $web_var_top_font_size eq "large"}
    {assign var="web_var_top_font_size" value="14px"}
{elseif $web_var_top_font_size eq "extra large"}
    {assign var="web_var_top_font_size" value="16px"}
{/if} 
{section name=mytopsec loop=$top_menu}
    <td width="5"></td>
{strip}
{if $top_menu[mytopsec].key eq $folders_selected[1]}
    {assign var="topsel" value="1"}
    <td bgcolor="#{$web_var_top_selected_tabs_color}" style="padding:6px 30px"><span style="font-family:{$web_var_top_font_family}; color:#{$web_var_top_font_color}; font-size:{$web_var_top_font_size}; font-weight:{$web_var_top_font_weight}; font-style:{$web_var_top_font_style}; text-decoration:none">{$top_menu[mytopsec].name}</span></td>
{else}
    <td bgcolor="#{$web_var_top_tabs_color}" onMouseOver="this.style.backgroundColor='#{$web_var_top_tabs_hover}'; style.cursor='pointer'; style.cursor='hand'" onMouseOut="this.style.backgroundColor='#{$web_var_top_tabs_color}'" style="padding:6px 30px"><a href="index.php?folderID={$top_menu[mytopsec].key}" style=" font-family:{$web_var_top_font_family}; color:#{$web_var_top_font_color}; font-size:{$web_var_top_font_size}; font-weight:{$web_var_top_font_weight}; font-style:{$web_var_top_font_style}; text-decoration:none">{$top_menu[mytopsec].name}</a></td>
{/if}
{/strip}
{/section}
</tr>
</table>
{/if}
{/if}
{/if}
</td>
</tr>
<!-- end of top menubar -->

我必须发送一个文件夹 ID,这是代码扫描到并显示其所有子项的文件夹 ID。

扫描文件夹并将它们列为菜单项的功能是这个:

<?
include_once "folderFunctions.php";

global $lang;

$global_deep=0;

$this->assign("folder_structure",getFolderChilds(0,$_SESSION["rs_domain_id"],$lang,"WEB",0,$global_deep));
$this->assign("folder_deep",$global_deep);
?>

它使用来自 folderFunctions.php 的函数 GetFolderChilds:

function getFolderChilds($identification,$website,$lang,$type,$local_deep,&$global_deep){
    $child_list=array();

    $childs = @mysql_query("SELECT `HB_IDENTIFICATION`,`HB_TITLE`,`HB_DESCRIPTION`,`HB_IMAGE_IDENTIFICATION`,`HB_LINK` FROM `hb_folders` WHERE `HB_PARENT_IDENTIFICATION` = ".$identification." AND `HB_DELETED`=0 AND `HB_PUBLISHED`=1 AND HB_WEBSITE_ID=".$website.(($type=='image')?(''):(" AND HB_LANGUAGE_ID='".$lang."'"))." AND HB_TYPE='".$type."' ORDER BY HB_ORDER");

    $local_deep++;
    if($local_deep>$global_deep&&@mysql_num_rows($childs)>0) $global_deep=$local_deep;

    while($child = @mysql_fetch_assoc($childs)){
        //$auxPermissions=getPermissions($_SESSION["rs_user_login"],$_SESSION["rs_user_pass"],$website,$child['HB_IDENTIFICATION'],'FOLDER');
        //if($auxPermissions['read']==1){
            $child_list[]=array("key"=>$child['HB_IDENTIFICATION'], "name"=>$child['HB_TITLE'], "desc"=>$child['HB_DESCRIPTION'], "image"=>$child['HB_IMAGE_IDENTIFICATION'], "link"=>$child['HB_LINK'], "childs"=>getFolderChilds($child['HB_IDENTIFICATION'],$website,$lang,$type,$local_deep,$global_deep));
        //}
    }

    return $child_list;
}

它的输出是这样的(当鼠标在它上面时选项卡会改变颜色,等等):

实际代码结果

嗯,这就是我直到现在才想到的。

问题是我想用这些 PHP 函数做一个菜单,也就是说,在服务器中创建文件夹并循环扫描并在我的菜单中显示它们。

问题是,该代码使用表格,并且有很多我不需要的东西,例如图像选项卡等(我只想有一个没有图像的文本菜单)。

我的问题是,我怎样才能实现获取文件夹并将它们列出的功能不是在表格中,而是在列表中,所以输出与此类似(我想尽可能简单以了解什么正在任何时候完成)?

<header>


       <ul class="navigation0">

            <li><a href="#" class="active">start</a></li>
            <li><a href="#">about us</a></li>
            <li><a href="#">contact</a></li>

    </ul> 
</header>

这表明:

预期结果

非常感谢。

4

1 回答 1

0

我相信我已经解决了它:

{php}
    global $lang;
    $this->assign('web_var_top_left_folder', $this->get_template_vars('web_var_top_left_folder_'.$lang));
{/php}

{if $folders_structure_left|@count gt 0}
{if $web_var_top_left_folder gt 0}
{section name=findtopleft loop=$folders_structure_left}
{if $folders_structure_left[findtopleft].key eq $web_var_top_left_folder}{assign var="top_left_menu" value=$folders_structure_left[findtopleft].childs}{/if}
{/section}
{if $top_left_menu|@count gt 0}

{if $web_var_top_font_size eq "small"}
    {assign var="web_var_top_font_size" value="10px"}
{elseif $web_var_top_font_size eq "medium"}
    {assign var="web_var_top_font_size" value="12px"}
{elseif $web_var_top_font_size eq "large"}
    {assign var="web_var_top_font_size" value="14px"}
{elseif $web_var_top_font_size eq "extra large"}
    {assign var="web_var_top_font_size" value="16px"}
{/if} 

<ul class"leftmenu">
{section name=mytopsecleft loop=$top_left_menu}
{strip}
    {if $top_left_menu[mytopsecleft].key eq $folders_selected[1]}
    {assign var="topselleft" value="1"}
    <li><span style="font-family:{$web_var_top_font_family}; color:#{$web_var_top_font_color}; font-size:{$web_var_top_font_size}; font-weight:{$web_var_top_font_weight}; font-style:{$web_var_top_font_style}; text-decoration:none">{$top_left_menu[mytopsecleft].name}</span></li>
{else}
    <li onMouseOver="style.cursor='pointer'; style.cursor='hand'><a href="index.php?folderID={$top_left_menu[mytopsecleft].key}" style=" font-family:{$web_var_top_font_family}; color:#{$web_var_top_font_color}; font-size:{$web_var_top_font_size}; font-weight:{$web_var_top_font_weight}; font-style:{$web_var_top_font_style}; text-decoration:none">{$top_left_menu[mytopsecleft].name}</a></li>
{/if}
{/strip}
{/section}
</ul>

{/if}
{/if}
{/if}
于 2012-11-02T16:41:24.210 回答