编辑foreach循环中生成的元素

时间:2013-09-04 16:44:03

标签: php kohana

我正在为我的网站使用一个插件,该插件基于使用Kohana的基于PHP的CMS。

该插件会生成一个新的下拉菜单。我相信实际的菜单是由脚本“sharing_bar.php生成的。这个脚本在下面。我相信底部的foreach函数是我需要编辑的地方。

我想做两件事:

  1. 隐藏菜单的第一个项目

  2. 更改菜单第二项中的文字。目前,通过函数生成的文本是动态的。

  3. 相关网站位于:http://tinyurl.com/c8djrvr 我想要更改的框位于右侧,称为“网站过滤器”,包含3个项目:

    • 所有
    • Crowdsourced Architectural Salvage
    • 档案

    我想将其更改为显示两项:

    • 所有网站:隐藏
    • 众包建筑救助> “当前”
    • 档案>没有变化

    在foreach函数结束时是div“site_name”。上面的现有列表是站点名称(Crowdsourced Architectural Salvage& Archives)。该功能动态地提取其名称。我需要在这里“硬编辑”这些名字,我真的不知道该怎么做。

    <div class="cat-filters clearingfix" style="margin-top:20px;">
        <strong><?php echo Kohana::lang('sharing_two.site_filter');?>
            <span>[<a href="javascript:toggleLayer('sharing_switch_link','sharing_switch')" id="sharing_switch_link">
                <?php echo Kohana::lang('ui_main.hide'); ?></a>]
            </span>
        </strong>
    </div>
    
    <ul id="sharing_switch" class="category-filters">
        <li><a href="#" id="share_all" <?php if (Kohana::config('sharing_two.default_sharing_filter') == 'all') echo' class="active"'; ?>>
            <div class="swatch" style="background-color:#<?php echo Kohana::config('settings.default_map_all'); ?>"></div>
            <div><?php echo Kohana::lang('sharing_two.all_sites') ?></div>
        </a></li>
        <li><a href="#" id="share_main"<?php if (Kohana::config('sharing_two.default_sharing_filter') == 'main') echo' class="active"'; ?>>
                    <div class="swatch" style="background-color:#<?php echo Kohana::config('settings.default_map_all'); ?>"></div>
                    <div><?php echo Kohana::config('settings.site_name') ?></div>
        </a></li>
        <?php
            foreach ($sites as $site)
            {
                $class = (Kohana::config('sharing_two.default_sharing_filter') == $site->id) ? "active" : '';
                echo '<li><a href="#" id="share_'. $site->id .'" class="'.$class.'"><div class="swatch" style="background-color:#'.$site->site_color.'"></div><div>'.$site->site_name.'</div></a></li>';
            }
        ?>
    </ul>
    

1 个答案:

答案 0 :(得分:1)

删除第一个<li>以删除“全部”。对于第二个<li>,您必须在设置中添加另一个项current并使用它。有关配置的详细信息,请查看http://docs.kohanaphp.com/core/kohana#methods_config

<ul id="sharing_switch" class="category-filters">
    <li><a href="#" id="share_main"<?php if (Kohana::config('sharing_two.default_sharing_filter') == 'main') echo' class="active"'; ?>>
                <div class="swatch" style="background-color:#<?php echo Kohana::config('settings.default_map_all'); ?>"></div>
                <div><?php echo Kohana::config('settings.current') ?></div>
    </a></li>
    <?php
        foreach ($sites as $site)
        {
            $class = (Kohana::config('sharing_two.default_sharing_filter') == $site->id) ? "active" : '';
            echo '<li><a href="#" id="share_'. $site->id .'" class="'.$class.'"><div class="swatch" style="background-color:#'.$site->site_color.'"></div><div>'.$site->site_name.'</div></a></li>';
        }
    ?>
</ul>

或者,您只需将<?php echo Kohana::config('settings.site_name') ?>替换为Current即可。但这不是一个好习惯。