问题标签 [silverstripe-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
540 浏览

silverstripe - 如何在 silverstripe 中将图像排序为 many_many 的一部分?

我在主页上为 $slideImages 创建了一个 $many_many 数组。经过大量阅读和尝试后,我仍然无法告诉 CMS 我希望图像出现在模板中的顺序。默认情况下,它们按我相信的上传日期排序。

我可以创建网格字段,但似乎无法让文本字段输入排序编号。现在我刚刚完成了一条引导我到 gridFieldComponent 的兔子路径,但是我收到了一个错误,并且文档没有帮助我。

我得到的错误是:

“未捕获的错误:无法实例化接口 SilverStripe\Forms\GridField\GridFieldComponent”

0 投票
1 回答
76 浏览

silverstripe - 我应该使用 Pages 还是 DataObjects 来处理大量条目?

我想知道在这种情况下最好的方法或最佳实践是什么:

  • 我有几类数据(比如说:新闻、事件、广告、装备)
  • 记录的数量从几十到几千不等
  • 我需要为所有这些类别提供一个共同的视图,并为每个类别提供单独的视图

一开始,我想我会创建一个基本页面,我会使用一个持有者页面模式,但现在我有一些疑问。使用 DataObjects 并简单地使用 Pages 来管理它们不是更好吗?

您对数千页使用 holder-page 模式有何经验?是否有意义?

0 投票
1 回答
949 浏览

php - silverstrip Object->__call():“HasManyList”上不存在“fortemplate”方法,或者该方法不是公共的

我在前端模板中收到此错误,我的模板文件为空,当我尝试addFieldToTab. 我认为$has_many变量有问题。

我的代码如下:

错误 :

[用户错误] 未捕获的异常:Object->__call():“HasManyList”上不存在“fortemplate”方法,或者该方法不是公共的。

PasteBin 网址:https ://pastebin.com/YZJn3a4t

当我删除$has_many变量时,它工作得很好。在我的前端模板中是空的。

如何解决这个我不明白的错误?

0 投票
1 回答
273 浏览

silverstripe - 我无法删除 Silverstripe 中 $has_one 的默认下拉菜单

我试过:removeFieldFromTab removeByName replaceField

但该领域仍然存在。

我没有收到任何错误,但具有 id #'s 的默认下拉字段位于顶部。

0 投票
1 回答
304 浏览

php - 在 silverstripe 4 中的控制器中动作是如何工作的?

有人可以解释一下 Silverstripe 4 中的操作是如何工作的吗?

我有这样的控制器:

当我在浏览器中启动它时,我得到了这个:

我不明白为什么在 RequestHandler 将规则“add-shop”与操作“shopForm”匹配之后,控制器没有执行“shopForm”操作。它没有执行找到的操作,而是调用 errorPageController...

0 投票
1 回答
565 浏览

silverstripe - Silverstripe 下拉字段未显示已选择的保存值

我在 CMS 中创建了一个下拉字段,如下所示:

问题是当我选择一个值并保存/发布页面时,下拉菜单会返回到“选择一个”,而不是显示保存的选择。

我没有检查数据库以查看是否正在存储该值,但我认为它是。

编辑:不是重复的。建议的副本涉及从 CMS 中删除字段。这个问题涉及将下拉值设置为保存的选择。

然而,答案是相似的。用户必须始终将 ID 附加到 has_one 字段,以便 CMS 与之交互。

0 投票
2 回答
726 浏览

php - 如何阻止 SilverStripe 4 在文件上传时自动生成图像缩略图?

我正在建立一个网站,其中包含大量要响应式提供的大图像,以便手机可以看到该图像的小版本,而 4k 显示器可以看到该图像的大版本。其目的是允许 SilverStripe 中的作者上传大小为 4000 像素 x 3000 像素甚至更大的图像,然后将其传递给imgix之类的服务,以完成图像大小调整和压缩的繁重工作,以提供服务在主题中响应地提升图像。

但是,在大多数托管环境中上传这种大小的图像会导致 PHP 内存错误,这是因为 SilverStripe 会自动处理图像并为管理界面生成一些缩略图。我想禁用该缩略图生成,以便上传图像 - 全尺寸 - 并且在整个过程中不受操纵,以免服务器上的图像操作可能导致 PHP 内存错误。

我在 SilverStripe 的功能中看到的可能禁用图像缩略图生成的最接近的事情是在ImageManipulation特征中,但我无法在我的代码中连接如何利用它的点:

我尝试使用 File 类而不是 Image 类作为我的 Photo 字段,认为 SilverStripe 可能只尝试在图像而不是文件上生成缩略图,但这并不能解决问题。

有任何想法吗?

0 投票
3 回答
1126 浏览

silverstripe - How to automaticaly publish files uploaded to a dataobject in Silverstripe model admin

In Silverstripe 4 a file that is uploaded must be published before it is visible to the public side of the site.

If I create a $Page with a $has_one Image::Class and then also assign that image to $owns[] the uploaded image will be published when I publish the page.

However If I create the following data object structure it will not.

If I create a catalog and within it create items with images and then save it, it will not publish the images that were uploaded. I will have to manually: 1. Select the image 2. Edit Original 3. Publish

There has to be an easier way for the user.

0 投票
3 回答
573 浏览

mysql - SilverStripe MYSQL 查询错误:only_full_group_by

我正在将一些旧的 SS 2.4 代码升级到 SS4。执行以下查询时出现以下错误:

错误:

列表的表达式#1SELECT不在子句中,并且包含在功能上不依赖于子句中的列的GROUP BY非聚合列;这与.'t.Total'GROUP BY
sql_mode=only_full_group_by

如何更新此查询以与 mysql 严格模式兼容?编辑my.cnf mysql_mode 好像没有生效

0 投票
1 回答
38 浏览

silverstripe-4 - 获取 $this->File() 返回空类

我有一个简单的 SilverStripe 4.0 DataObject,它有一个图像(即。$has_one = array("Image" => Image:class))。当试图获取这个对象时,Image我得到一个空Image对象。

例如:

到底是怎么回事?!我对 SilverStripe 3 很了解,所以我被这个与 SilverStripe 4 隔离的问题难住了。