Yootheme ZOO - php中的应用程序布局更改

时间:2014-02-14 04:14:38

标签: php joomla

在ZOO Application / templates / uikit / _categories.php中有以下代码:

<?php  

    // init vars  
    $i = 0;  
    $columns = $this->params->get('template.categories_cols', 2);  
    reset($this->selected_categories);  

    // render rows  
    while ((list($key, $category) = each($this->selected_categories))) {  
        if ($category && !($category->totalItemCount() || $this->params->get('config.show_empty_categories', false))) continue;  
        if ($i % $columns == 0) echo ($i > 0 ? '</div><hr class="uk-grid-divider"><div class="uk-grid">' : '<div class="uk-grid">');  
        echo '<div class="uk-width-1-'.$columns.'">'.$this->partial('category', compact('category')).'</div>';  
        $i++;  
    }  
    if (!empty($this->selected_categories)) {  
        echo '</div>';  
    }  

?>

呈现如下:

<div class="uk-grid">  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
</div>  

<hr class="uk-grid-divider">  

<div class="uk-grid">  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
</div>

我想要这个(所有div.uk-width *只有一个div.uk-grid而没有hr.uk-grid.divider):

<div class="uk-grid">  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
   <div class="uk-width-1-3"></div>  
</div>

有人可以帮我这个,我不擅长PHP吗?

感谢。

我的修改后的代码不起作用:(

<?php

    $columns = $this->params->get('template.categories_cols', 2); // I dont know why is at end ", 2"
    reset($this->selected_categories); // I dont know why is needed reset array

    // render rows
    while ((list($key, $category) = each($this->selected_categories))) {

        if ($category && !($category->totalItemCount() || $this->params->get('config.show_empty_categories', false))) { 
    echo '<div class="uk-grid">'; // I dont know why is not rendered
    }
        echo '<div class="uk-width-1-'.$columns.'">'.$this->partial('category', compact('category')).'</div>';
    }
    if (!empty($this->selected_categories)) {
        echo '</div>';
    }

?>

2 个答案:

答案 0 :(得分:0)

您必须设置一个参数才能添加两列,这就是添加分隔符的代码中的内容。

参数的名称是template.categories_cols,它将被翻译为英文内容。

这是商业支持的扩展程序,您可以在论坛上获得一些支持

答案 1 :(得分:0)

您最好的选择是将列设置为1,然后使用UIKit的CSS来调整div的大小。这意味着您希望容器类为uk-grid uk-grid-width-1-3,然后从内部div中删除uk-width-1-3。这里的额外好处是,您可以根据您的屏幕尺寸改变布局&gt; Grid Component - UIKit

在PHP中,您可以一起删除列param。删除以$columns...开头的行,它是一个回显&#d; '.$columns.'的单一地点,您应该全部设置。

PHP 使用您的&#34;列&#34;变量以拆分div (默认为2),但如果你定制容器,你可以完全避免列分配。