假设您为每个页面请求显示一个随机语句,并使用一个函数返回一个随机对象,例如:Statement::get()->sort("RAND()")->limit("1");但是现在在模板中您想要在不同的地方引用它两次,但它应该是相同的语句而不是随机不同的语句。您如何确保每个页面请求获得相同的随机对象? 最佳答案 如何定义一个带有记住对象的静态变量的函数?publicfunctionrndObj(){static$obj=null;if(!isset($obj)){$obj=Statement::get()->sort("RAND()")-
我在ModelAdmin中有一个具有以下字段的数据对象:classNavGroupextendsDataObject{privatestatic$db=array('GroupType'=>'Enum("Standard,NotStandard","Standard")','NumberOfBlocks'=>'Int');publicfunctiongetCMSFields(){$groupTypeOptions=singleton('NavGroup')->dbObject('GroupType')->enumValues();$fields=parent::getCMSFields
我知道我们可以随机排序DataList具有以下内容:$example=Example::get()->sort('RAND()');但是当我尝试对ArrayList进行随机排序时它不起作用。我可以对ArrayList进行排序通过IDDESC,但不是RAND().有没有办法制作ArrayList随机排序它的项目?例子:publicfunctionAllTheKits(){$kits=Versioned::get_by_stage('KitsPage','Live');$kitsArrayList=ArrayList::create();foreach($kitsas$kit){if($k
我希望能够在Controller中返回黑白图像,这样我就可以在模板中使用它。在thispage我发现GD类有一个灰度方法。不幸的是,我不了解GD类(class)以及如何使用它。我试过做$final=$image->getFormattedImage('greyscale',36,36,36);但这没有用。它确实会返回一个带有新URL的图像对象,但该图像不存在。任何人都可以向我解释如何在Silverstripe页面Controller中将图像对象制作成灰度图像吗? 最佳答案 好吧,我自己试了一下,这就是我想出的:_config.php
在Silverstripe中,如果您右键单击Sitetree中的一个页面,您可以复制单个页面或一个页面及其所有子页面。我们发现用户偶尔会复制包含大量子页面的页面,我们希望通过删除“此页面和子页面”选项或将其限制为仅限管理员用户来防止这种情况。如何实现? 最佳答案 查看codeincms/javascript/CMSMain.Tree.js在SilverStripe3.4中,目前似乎没有办法关闭它。我们有一个选择是向CMS添加一些CSS以隐藏每个人的菜单项:mysite/css/cms.css#vakata-contextmenua[
这如何在模板中完成?我已经通过ArrayData使用模板循环中的键访问模板中的值来完成此操作,但是如果我有一个没有键的任意字符串数组,我应该使用什么变量来访问这些值?如果在我的Controller中我有这个:publicfunctionArrayList(){$ArrayList=newArrayList(array('this','is','a','test'));return$ArrayList;}这在我的模板中:1我应该用什么代替1来让模板吐出“这是一个测试”? 最佳答案 据我所知这是不可能的,您需要将每个项目包装到一个Arr
我想创建一个自定义路由,涵盖任何开始的内容。是否可以在路由上设置通配符?例如http://example.com/*/show/urlsegment我尝试了很多事情而没有成功。Director::addRules(100,array('*/show//$EventUrlSegment'=>'MyTest_Controller'));什么是正确的语法涵盖任何内容/show?看答案在SilverStripe3中。*您应该使用在_config文件夹。您可以使用$就像你一样EventUrlSegmentDirector:rules:'$Action/show/$EventUrlSegment':'My
如何在AdminSilverstripe中添加自定义按钮及其功能?请告诉我解决方案。自定义按钮仅在一个菜单中添加。 最佳答案 就像评论中提到的@wmk一样,您可以只以GridFieldPrintButton的框架代码为基础,然后从那里开始。SilverStripe还有一个basictutorialforcreatingacustomActionProvider.我不会在这里重述教程,而是会为您提供一个非常基本的自定义操作提供程序,您可以复制和扩展它来执行您需要的操作。虽然您没有注意到您希望从按钮获得的确切结果,但我将只提供一个非常通