【问题标题】:Yootheme ZOO - Application layout change in phpYootheme ZOO - php 中的应用程序布局更改
【发布时间】:2014-02-14 04:14:37
【问题描述】:

在 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>';
    }

?>

【问题讨论】:

    标签: php joomla


    【解决方案1】:

    你必须设置一个参数来添加两列,这就是添加分隔符的代码。

    参数名称是template.categories_cols,它会被翻译成英文。

    这是一个商业支持的扩展,你也许可以在他们的论坛上获得一些支持

    【讨论】:

    • 我试过他们的论坛(yootheme.com/support/question/58989),但他们的支持很无聊,只回答如何更改颜色或更改字体大小的主题。在这种情况下 template.categories_cols = 3;
    • 我无法将 categories_cols 更改为 1,因为在模板设置中我已经设置了我想要的列数,并且我想要 3 列并且这个数字 *3 被添加到
      你应该使用这个而不是 while...each 循环: foreach($this->selected_categories as $key=>$category) {
    【解决方案2】:

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

    在您的 PHP 中,您可以一起删除列参数。删除以$columns... 开头的行,它与'.$columns.' 相呼应,你应该准备好了。

    PHP 是使用您的“columns”变量来拆分 div(默认为 2),但如果您定制容器,您可以完全避免列分配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      相关资源
      最近更新 更多