bringyourownideas/inheritage-by-sitetree

允许您从父页面继承信息

0.2.5 2018-04-20 10:18 UTC

This package is auto-updated.

Last update: 2024-09-05 08:20:45 UTC


README

允许您从父页面继承任何属性(任何级别)。查看使用示例了解其工作原理。

特性

  • 从直接或间接父页面加载信息。

  • 此功能仅针对数据库字段进行了测试。Has_one或has_many尚未确认.*

使用说明

以下示例展示了两个页面类型的可能用例,这两个页面类型在信息架构中具有固定位置,并使用继承将“颜色”字段应用到子着陆页。

<?php
/**
 * In the SiteTree this page will be directly under the homepage.
 *
 * URL structure /landing
 */
class LandingPage extends Page
{
    /**
     * @var array
     */
    $db = [
        'Color' => 'Varchar',
    ];
}
class LandingPage_Controller extends Page_Controller
{
    /* ... */
}
<?php
/**
 * In the SiteTree this page will be directly under the landing page.
 *
 * URL structure /landing/sublanding
 */
class SubLandingPage extends Page
{
    /* ... */
}
class SubLandingPage_Controller extends Page_Controller
{
    /* ... */
}

在SubLandingPage.ss中,您现在可以这样做

<div>
<% cached 'color', $Top.ID, $Top.LastEdited %>
$GetFromParentPage(Color)
<% end_cached %>
</div>

以检索父页面上设置的Color值。请确保您为任何调用应用了适当的缓存。

需求和安装

需求

  • SilverStripe框架和CMS ^3.0

安装

  1. 运行以下命令安装包

    # install the package
    composer require bringyourownideas/inheritage-by-sitetree;
    git add composer.json composer.lock;
    git commit -m 'MINOR: adding inheritage-by-sitetree';
    
  2. 设置您的扩展

    这可以通过yml配置文件(例如mysite/_config/config.yml)来完成

    Page:
      extensions:
        InheritageBySiteTreeExtension

    或者通过检查InheritageBySiteTreeExtension.php并将模块的“非扩展”版本添加到您的Page.php文件中。第二种方法性能更高。

  3. 运行dev/build加载扩展

    # run dev/build to load extension
    php ./framework/cli-script.php dev/build

其他: 未来想法/开发、问题贡献许可

此项目由bring your own ideas Ltd.支持。bring your own ideas Ltd.帮助您将项目想法变为现实。

bring your own ideas