【问题标题】:Concrete5 Single Page ThemeConcrete5 单页主题
【发布时间】:2015-06-19 18:14:47
【问题描述】:

我正在尝试实现一个将所有子页面加载到主(索引)页面的 Concrete5 主题。到目前为止,我只是遍历我的子页面数组,获取类型、上下文(区域等),然后为每个页面加载一个带有页面模板标记的元素。不幸的是,这很容易出错,必须有另一种方法 - 这是我的主页标记:

global $cp;

if(!$cp->canWrite()) {
    $childPages = $c->getCollectionChildrenArray(1);

    foreach($childPages as $childPage) {

        $page = Page::getByID($childPage);
        $cPages = $page->getCollectionChildrenArray(1);
        if($cPages) {
            $parentPage = $page;
            $page = $page->getByID($cPages[0]);
        }

        $layout = $page->getCollectionTypeHandle();
        $context = array('page' => $page);

        if(!$layout) {
            continue;
        }

        Loader::element('layouts/' . $layout, $context);
}

页面类型如下所示:

<?php defined('C5_EXECUTE') or die(_("Access Denied.")); ?>
<?php $this->inc('elements/header.php'); ?>

<?php
    global $c;
    $context = array('page' => $c);
    Loader::element('layouts/case_study', $context);
?>

<?php $this->inc('elements/footer.php'); ?>

Loader::() 引入的布局元素看起来像这样(只是普通的旧 HTML 和 Concrete5 Area sn-ps):

<section id="<?=$page->vObj->cvHandle; ?>">
    <div class="whatever">
        <?php
        $a = new Area($page->getCollectionName() . ' Page Content');
        $a->display($page);
    </div>
</section>

在大多数情况下这是可行的,但是在加载块等时我似乎仍然遇到一些错误......所以我不确定在使用 Concrete5 时是否有更好的方法来获得“单页”主题.我想知道是否有其他人有构建此类主题的经验,或者最好的方法。

感谢任何帮助。

【问题讨论】:

    标签: php concrete5


    【解决方案1】:

    我会使用更灵活的 PageList 类

    $c = Page::getCurrentPage();
    $pl = new PageList();
    $pl->filterByParentID($c->getCollectionID());
    $subPages = $pl->get(0);
    

    不太确定您收到了什么错误,我认为这是因为缺少 JavaScript 和 CSS 文件。会发生这种情况是因为这些脚本与当前页面没有关联,因此没有包含在页眉中。

    如果您遇到这种情况,这里有一个示例向您展示如何做到这一点,只需几行代码:https://github.com/mkly/area_from_another_mother/blob/master/blocks/area_from_another_mother/controller.php#L313-L359

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多