bringyourownideas / inheritage-by-sitetree
允许您从父页面继承信息
0.2.5
2018-04-20 10:18 UTC
Requires
- silverstripe/cms: ^3.0
- silverstripe/framework: ^3.0
Replaces
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
安装
-
运行以下命令安装包
# install the package composer require bringyourownideas/inheritage-by-sitetree; git add composer.json composer.lock; git commit -m 'MINOR: adding inheritage-by-sitetree';
-
设置您的扩展
这可以通过yml配置文件(例如mysite/_config/config.yml)来完成
Page: extensions: InheritageBySiteTreeExtension
或者通过检查InheritageBySiteTreeExtension.php并将模块的“非扩展”版本添加到您的Page.php文件中。第二种方法性能更高。
-
运行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.帮助您将项目想法变为现实。