我基本上是在设置这个部分,因为我正在创建的站点有教师,所以概念完全相同
当我从页面链接导师时,当我搜索文本字段时,我得到的结果不会显示名字字段
我的字段是dataobject上的FistName和LastName,在dataobject上我设置了$searchable_字段和$summary_字段来匹配这些列,但我仍然得到上面的结果
此外,我的搜索字段会注意占位符文本中的“部分匹配”。它不应该只显示字段名吗
使用3.1,基本上只是复制和粘贴导师部分的教程5。本教程似乎是开箱即用的,那么我还缺少什
我在扩展数据对象中使用Link类作为$has\u one。但当我保存对象时,链接值丢失
<?php
class Teaser extends DataObject {
private static $db = array (
'Title' => 'Varchar',
'Description' => 'HTMLText'
);
private static $has_one = array (
'
我不熟悉HTML5的应用程序缓存,但熟悉它的基础知识。我正在为一个SilverStripe站点开发一个缓存清单文件,每当content manager上传一个新图像时,该文件都需要动态更新。我知道图像将使用循环附加到下面的Manifest函数中,但我发现挑战的部分是每次更新日期和版本号。我是否需要将日期和版本列为变量?或者,考虑到清单函数的设置,这是不可能的
public function Manifest() {
$static = <<<EOT
我想在论坛上回答这个问题:
简而言之:
是否可以应用权限方法:
canView, canEdit, canDelete, canCreate etc
通过数据扩展
我试过了,但还没有成功,我想知道我是否错过了什么
子类化可能会这样做,但由于DataExtension中有空的权限方法,它们的用途是什么
public function canEdit($member) {
}
假设SS3.0+的简短答案是,这取决于
直接的DataObject->can[Create | Edit | Vi
SilverStripe 3是否可以创建一个默认的电子邮件模板/样式,应用于所有已发送的电子邮件,而不必单独覆盖每个电子邮件模板
理想情况下,这可以作为主题的一部分
我尝试定义一个自定义GenericEmail.ss模板,但到目前为止它被忽略了
查看框架源代码,创建一个自定义的Email类并重写parseVariables()可能会实现它,但这似乎有点过头了?在刚才尝试之后,可以使用自定义模板有效地重写默认的电子邮件模板。我把我的放在主题的“模板”文件夹下(而不是任何子文件夹),即
/主题/my
我想知道如何定制这个上传字段,以便从$BETHENS\u MUN\u MUN Act表中获取
代码的一部分
<?
class MultipleBlock extends DataObject {
private static $db = array(
'Act' => 'Varchar',
private static $many_many = array(
'MultipleBlockColumns' => 'Mult
在asp.net中,服务器端控件有一个名为ClientID的属性,该属性可用于获取模板引擎为服务器端控件生成的id。SilverStripe中是否有类似的内容,用于获取输入元素的id而不是其.field包装器
谢谢看看FormField的ID方法
在模板中,您应该能够使用
$Fields.FieldByName(FieldName).ID
您是指Silverstripe附带的标准FormFields(例如TextField、CheckboxField等)还是扩展FormField的其他自定义
我在设置嵌套关系的排序顺序时遇到问题,其中子项可以通过的模块拖放重新排序。我也在使用
我有一个页面,其中有许多复杂的行程。这些ComplexStrip对象有许多“LinkedObjects”
问题:
<?php
class TextBlock extends DataObject {
private static $db = array(
'SortOrder' => 'Int'
);
private static $default_sor
在Silverstripe模板中,我需要将变量$date_ok与当前日期进行如下比较:if($date_ok
我想在html编辑器字段中添加创建“div”的选项
如何向格式下拉列表中添加一个选项,以创建具有特定类的div
我已经使用editor.css中的代码成功地将样式添加到样式下拉列表中
。响应表{
溢出-x:滚动;
}
我正在使用silverstripe 3,希望能够将我自己的选项添加到格式下拉列表中,以创建各种元素。在silverstripe 3中,我们可以通过将以下内容添加到我们的mysite/_config.php来编辑我们的htmleditor字段中的样式下拉列表项:
HtmlEdito
我对Silverstripe很陌生。我想使草稿文件对登录用户可见
当我执行如下查询时
File::get()->Where($query)
我只得到发布的文件
如何为具有查看文件权限的登录用户获取所有文件
感谢您的回答从未尝试过对文件执行此操作,但您可以尝试通过Versioned::get_by_stage()
有关详细信息,请参阅。谢谢Aaryn
这适用于文件,
但是,我不明白它的工作与许多关系保存在一个
数据对象。
当迭代数据对象时,many_many字段始终为空。
在这个字段中,
我们在Silverstripe上有一个项目,它为/admin/部分定义了一些良好的流程:
做一件事
然后做另一件事
然后做第三件事
我想知道Silverstripe(或模块)中是否有支持/admin/部分中此类行为的现有功能
ModelAdmin自动生成编辑/管理模型的界面-但在这种情况下,我们需要指导站点管理员完成1-2-3过程,该过程涉及许多不同的模型
如果您有任何想法,我们将不胜感激。您可以尝试制作一个选项卡,列出管理员需要遵循的步骤,也许可以帮助您?从未使用过它,但它用于构建阶梯形,至少
SilverStripe CMS界面您可以使表格可编辑,例如添加和删除行,以及编辑单元格内的文本和信息。是否有任何组件可以提供帮助
举个例子
谢谢你将我的评论作为回答,因为它似乎对提问者有所帮助
这里有一个扩展网格字段功能的有用模块。根据文档,有一个组件允许内联编辑GridFieldEditableColumns-允许内联编辑记录。我自己并没有使用过那个特定的组件,所以我不能给出它如何工作的任何细节,但值得一看
这里有一个扩展网格字段功能的有用模块。根据文档,有一个组件允许内联编辑GridFi
我有一个带有textfield和uploadfield的Dataobject。我想使用Silverstripe Gridfield扩展的内联编辑功能,但它表明我做错了什么,或者扩展不是为uploadfields设计的
这就是我迄今为止所尝试的
...
'Visual' => function($record, $column, $grid) {
return new UploadField($column);
}
或
有人能帮我吗
提前谢谢你 我假设您正在
我正在运行一个安装了swipestripe的本地silverstripe实例。我按照手动安装SwipestFound,但每次尝试转到签出时都会收到此错误。我已按照指示安装支票付款方法
[User Error] Method Cheque not defined in factory
GET /checkout/
Line 50 in /Users/username/Sites/silverstripe/payment/code/PaymentProcessor.php
Source
41
我正在尝试使用silverstripe获得类似twitter的url结构,其中帐户在url根上有自己的url,如:
但也有其他应该可用的路由,比如,不在用户上映射的路由
在控制器上执行类似操作相当容易,但随后您会得到如下结果:
是否有可行的方法在站点的根目录上实现此目的?您需要为此定义路由。第一步是定义所有“特殊”的路由,如搜索等。第二步是捕获所有剩余的请求,并将它们转发给处理成员配置文件页面的控制器。例如:
---
Name: customroutes
After: framework/ro
我正在使用SilverStripe(3.1.6版)和advancedworkflow插件
我的网站主要是建立在数据对象上的。
我已在.yml文件中指定了对象和模型管理员,如文档中所述:
MyObject:
extensions:
- WorkflowApplicable
MyObjectAdmin:
extensions:
- AdvancedWorkflowExtension
我还在对象的“工作流”选项卡中指定了工作流。
我正在使用模板审阅和批
当我使用内容编辑器编辑html以显示图像时,什么也不显示?下面是标记
<p><img style="width: 304px; height: 228px;" title="" src="$ThemeDir/images/image1.jpg" alt="image1" /></p>
改用themes/theme name/images/image1.jpg$ThemeDir从SilverStripe 4.0中删除,因此使用src=“themes/them
我不知道如何做到这一点,在silverstripe网站上找不到一个例子
我想在CMS字段列表中做一个复选框。选中后,页面将显示我的代码块。如果未选中,则不会显示
在我的page.ss中,我会有如下内容:
<% if $showPrintButton %>
$showPrintButton
<% end_if %>
$showPrintButton
以下是相关代码
private static $db = [
'ShowPrintButton' =>
我想根据他们所属的组将成功登录的成员重定向到特定页面
在过去,我在SS3中通过以下方式实现了这一点:
CustomLoginForm.php:
class CustomLoginForm extends MemberLoginForm
{
public function dologin($data)
{
// Redirect functionality here
}
}
Injector:
MemberLoginForm:
class:
是否可以从扩展名更改数据库中Content的字段类型
似乎我无法这样覆盖它:
class ParsedownExtension extends DataExtension {
private static $db = array(
'Content' => 'ParsedownField'
);
}
“我的字段类型和扩展名”确实有效,因为它适用于与内容不同的字段名可以通过在\u config.php文件中设置字段类型来更改字段类型
mysite/_con
关于Silverstripe,我有一个非常简短的问题。我还没有在互联网上或这里找到解决方案。我目前在SS4上有一个表单,提交时将运行AJax请求并呈现新内容(第页)。我遇到的问题是,内容不显示,这似乎与在中呈现的内容由不同的页面控制器管理这一事实有关。因此,当从另一个页面通过Ajax呈现时,它无法找到内容。在不刷新页面的情况下,如何解决此问题
提前谢谢 您将提交到同一页面,该页面具有生成/返回新页面的功能。请注意,通过ajax提交时,您需要在提交的字段中包含FormAction按钮。hi,我如何
我需要在SilverStripe 3.2网站的页面模型中实现字段级权限
假设我有一个ArticlePage.php模型。它有一些常用字段,如$MenuTitle和$Content,我还添加了其他属性,如$Subtitle和$Author
我可以使用providePermissions()和相关的canEdit()方法来保护整个模型,但我需要保护单个字段/页面属性
我需要做的是:
管理员应该能够编辑所有字段
其他权限组中的用户只能编辑和保存$Subtitle
这在SilverStripe 3.
我最近为一个规模相对较小的网站项目选择了SilverStripe(v4.5),并且在我的本地开发环境(XAMPP、PHP7.4.7、ApacheV2.4.43、10.4.13-MariaDB)中没有遇到任何系统问题。但是,在部署网站时,我无法访问管理控制台的“文件”部分,并显示错误消息:
无法查询类型“文件”上的字段“版本”。你是说“延期”吗
我仍然能够通过CMS中的其他元素(例如页面/对象上的UploadFields)上传文件(间接),这些上传的文件确实会出现在数据库中
最初我们在nginx上
我已经按照说明为我的表单创建了自定义表单类和模板
但是,我在添加日历的日期字段时遇到了问题。通常我只是做这样的事情:
$dateField = new DateField ('DateRequired', 'Date Required');
$dateField->setConfig ('showcalendar', true);
我已经在我的自定义表单中尝试了上述代码,但是该页面不包含任何用于calendar字段的jQueryUI脚本或css文件
因此,我的问题是如何让我的自定义表单包
我有一个文本字段,需要在其中发布代码。不幸的是,在SilverStripe中,代码是自动转义的,这只是在前端显示代码本身
有没有办法让它执行代码
我尝试了以下方法:
公共静态$db=array
“代码”=>“文本”
;
好的,找到了一种方法,你需要在模板中为his添加一个RAW方法,比如:$Code.RAW好的,找到了一种方法,你需要在模板中为his添加一个RAW方法,比如:$Code.RAW我认为另一种解决方法是将字段的类型改为HTMLText而不是文本。在这种情况下,您不必使用RAW。我认为
我正在使用该模块,但不希望我的用户能够选择任何类型的面板。有没有办法在不删除整个类的情况下从可用面板列表中删除“Weather”或“Google Analytics”等面板?仪表板模块必须允许通过yml配置文件(如mysite/\u config/config.yml)启用和禁用面板
以下规则将禁用仪表板GoogleAnalyticPanel:
DashboardGoogleAnalyticsPanel:
enabled: false
DashboardPanel:
enabled:
使用Silverstripe模板,我可以将变量从一个包含传递到另一个包含吗
订单内\u confirmationmail.ss。将$SendingEmail设置为true
并通过另一个模板将$SendingEmail传递给另一个模板,包括:
然后使用变量$SendingEmail,以便_Content.ss:
我们正在发送电子邮件
不幸的是,$SendingEmail在Order_Content.ss中没有值(它在Order.ss中有值)。这种方法可行吗?有更好的办法吗。提前谢谢。应该会的。不
我试图在HTMLText标记视图中将样式属性添加到img标记中。但每次保存或发布时,该属性都会被剥离
我发现(“设置选项”-大约是一半)。因此,在我的/app/_config.php文件中尝试了这一点,并执行了/dev/build:
HtmlEditorConfig::get('cms')->setOption(
'extended_valid_elements',
'img[style]'
);
完成上述操作后,img src被剥离。因为根据标记规则,完全替换该标记的现有规则。
我正在建模课程(CoursePage)和该课程实例(CourseInstance从DataObject扩展而来)之间非常基本的关联:
在CMS中,我想要的是一种将课程实例添加到课程页面的简单方法。HasManyComplexDataField正在工作,但这意味着所有课程页面都有相同(长!)的实例列表,这些实例在所有课程中共享。我想要的是一种只添加/删除/编辑与该课程相关的实例的方法,而不需要任何其他CoursePage中实例的任何细节
是否有更简单的领域更适合我的需要?或者,是否有任何方法可以限
银条2.4.7
嗨
我想在CMS中创建一个统计页面,但我不完全确定如何做到这一点。如果它是一个普通的PHP页面,我会查询数据库,将值保存到数组中,并在表中显示它们。我需要它看起来像其他CMS页面太多
我已经在CMS中包含了我自己的php文件,所以我想知道我可以在这里做同样的事情吗
谢谢在不提供更多详细信息的情况下,我所能做的就是向您介绍SilverStripe 3的文档
这将允许您根据所选择的过滤器和排序以表格形式显示数据对象
如果你所追求的是SS的基础知识,那就从开始。你做过这些教程吗?您应该
silverstripe似乎没有注意到语言yml文件中的更改。这曾经奏效。与往常一样,我正在执行?flush=文件更改后的所有操作
在模板中,我使用t函数,如
我正在编辑现有条目,但模板始终显示条目的旧“版本”。如果我删除en.yml文件,那么翻译就真的消失了。所以我假设它至少能起一点作用
目前我正在使用silverstripe 3.1.12
文件保存在此处,例如:module/lang/en.yml
谢谢,
弗洛里安不久前,我在使用德语umlauts和错误的文件编码时遇到了这个问题。因此,请告
我有一个网站,我希望能够从我当前所在的ProductPage链接到下一个ProductPage。我可以为直系兄弟姐妹这样做,但一旦我到达该集合的末尾,我想链接到下一个ProductRange第一个产品。结构如下:
ProductArea
ProductCategory
- ProductRange
- ProductPage
- ProductPage
- ProductRange
- ProductPa
我新迁移的live站点只能在主页和/或管理员中访问一次-我无法登录
我已经尝试过执行/dev/build-og?flush=1。没有帮助
我的站点是一个子域,所以我不知道这是否会导致无法访问所有其他页面
我已经将SS_环境_类型设置为活动,并且我有DB连接
所以我的问题是:既然我只能访问主页和/管理员,我还缺少什么?SilverStripe 3.6和更高版本支持PHP7
见:
过时:
Silverstripe 3.X不正式支持PHP7
但是,将修补您的代码以避免“Int”类名称保留错误等。请注意
我刚刚将一个SS4站点迁移到一个新服务器。现在,当我试图上传一张图片时,我得到了下面的信息。下面是我看到的错误:
尽管我刚刚通过管理员身份验证,但这种情况仍在发生。我认为这是文件系统的权限问题,但进一步研究后,情况似乎并非如此
文件看起来确实上传了,但是预览没有创建,也没有显示在预览区域中。我可以保存资产,但不能使用右下角的“保存”和“发布”按钮,我必须使用批量操作来发布文件。完成此操作后,将显示预览
我在控制台中收到/已收到以下错误:
Uncaught (in promise) SyntaxE
我只想在我的silverstripe站点的CMS端显示数据库中最近的100个条目。我现在可以看到所有600,这是不必要的。silverstripe文档没有任何帮助,我无法进入他们的论坛问这个问题
我已尝试在表的ID上设置大于筛选器,但筛选器不起作用
这是我的模型管理文件
use SilverStripe\Admin\ModelAdmin;
use SilverStripe\Forms\DateField;
use SilverStripe\Forms\GridField\GridField;
u
在SilverStripe 3.1中,是否可以覆盖左侧CMS顶部显示的SilverStripe徽标和url(而不是替换)?在SilverStripe 3.1中,我们可以使用一些自定义css覆盖徽标
首先,我们告诉LeftAndMain添加一个额外的css文件到config.yml:
LeftAndMain:
额外要求:
-mysite/css/leftandmain.css
然后在我们的leftandmain extracss.css文件中,我们可以编辑默认徽标css以加载我们想要的任何图像:
我正在通过创建一个小网站来学习SilverStripe,该网站允许用户管理他们的香水(即香水/古龙水)。用户添加成分(用于他们拥有的香水),然后添加他们的香水,在这一点上,他们选择他们添加的香水中的成分
我已经创建了配料和香料类,它们都扩展了DataObject。我还创建了IngreditsPage页面,允许用户添加/编辑/删除成分(由名称和描述组成),并列出迄今为止添加的所有成分,该页面功能齐全。我现在正在尝试创建香水页面,该页面将允许用户添加/编辑/删除香水(由名称、说明和成分组成),并列出
我有网站的网址像,我想得到完整的网址,这样我就可以通过社会网络共享的目的
i、 e.www.mysite.com/projects?tab=2
我尝试了AbsoluteLink,但遗漏了“?tab=2” 如果您试图获取当前页面的完整URL,例如,您可以将AbsoluteLink与$\u服务器['QUERY\u STRING']结合使用:
$url = $page->AbsoluteLink() . '?' . $_SERVER['QUERY_STRING'];
或者使用PHP环境变量构建
我想在.ss模板中做一个简单的算术运算
<% loop $Images %>
<img src="$Link" alt=""/>
<% $Pos == 4 %>
and {$TotalItems - 4} more foto's
$Break
<% end_if %>
<% end_loop %>
还有{$TotalItems-4}更多的foto's
$Break
例如,我
我想知道为什么SS4主目录中没有“Models/Views/Controllers”目录?似乎所有东西都应该放在“mysite/code”里面。。如何实现MVC风格?MVC更多的是一种软件体系结构模式,而不是如何组织文件。对于如何组织代码,SilverStripe框架只做了一些假设:
模型
对于SilverStripe 4,每个模块的默认代码文件夹命名为src或code。在这个文件夹中,你可以自由地组织你认为合适的文件。理想情况下,以兼容的方式构建文件夹结构,以便文件夹名称与名称空间匹配
控制器
我在加载多个模板时遇到问题,并试图遵循此指南
在我的应用程序/src中,我有。。。
Homepage.php
<?php
namespace SilverStripe\Home;
use Page;
class HomePage extends Page
{
}
?>
bdsteps=custom_-theme健全性检查:模板名称与您的PHP类名匹配(加上添加的布局),您已刷新,您的自定义_-theme已通过配置启用。我已检查名称是否与类匹配,并已刷新。我刚刚在
我们正在重新构建我们的网站。我们有很多页面(很多)跨越5个层次。我们新的用户体验设计师正试图解决这个问题。作为这项工作的一部分,她建议对页面/内容进行重组(重组至少需要6周时间)。该组织承担不起将现场冻结6周的费用。所以我的问题是
是否有任何简单的方法可以在不影响生产现场的情况下修改现场结构…如何处理
我们是否可以创建现有sitetree的副本(即有多个sitetree,一个处于活动状态,另一个处于草稿状态)并在那里进行更改?一旦我们准备好了,我们可以切换吗?(只是一个想法)
请给我一些想法
干
为了搜索引擎优化的目的,我需要确保所有的网址保存为小写
即使用户以大写形式键入永久链接,我如何强制SilverStripe管理员以小写形式保存URL?您可以在页面的onbeforewite方法中执行此操作:
protected function onBeforeWrite() {
parent::onBeforeWrite(); //this is important!
$this->URLSegment = strtolower($this->URLSegment)
我只需使用\u t()转换数据对象中的CMS字段:TextField::create('Title','u t('CMS.TitleField','Title')。我原以为翻译$summary\u fields同样简单,但事实并非如此
我相信我注意到了一种更好的方法,即使用SiteTree中使用的函数FieldLabels来翻译这些字段,而不是试图分别翻译字段及其附带的摘要字段
有没有办法在一个地方翻译这两个字段(DRY原则)并通过调用var轻松应用于这两个字段?是的,我肯定会说使用字段标签是为
就这个问题:
我们已经从这个fork()实现了这个模块,它在本地运行得非常好。我们已经做了一些修改来实现我们自己的分类页面,但没有什么特别之处
现在唯一的问题是,当我们在本地使用https而不是http的服务器上进行测试时,一切都不起作用了。我一直在尝试将FileSystemPublisher.php文件中的一些内容更改为使用https而不是http,但它没有做任何事情
另一件事,它可能是链接的,当我进入我们子网站的管理后端时,编辑页面中的所有页面链接都是“http”,显然服务器上有https重
当我运行此命令时,它显示一个错误:
C:\wamp64\www>php upgrade-code.phar recompose --write
Upgrading PHP constraint
========================
Done.
Rebuilding dependencies
=======================
! [NOTE] Trying to re-require all packages
* Requiring php:">
在DataObjects中,getCMSFields方法自动创建所有适当的CMS字段(称为scaffolding)。但是,在扩展SiteTree(即页面)的类中,这不会发生
如何在页面中使用此表单字段脚手架?我们返回到DataObject并获取脚手架字段:
使用SilverStripe\ORM\DataObject;
使用网页;
类MyPage扩展页面
{
私有静态$db=[
“MyField”=>“Varchar”,
];
私有静态$has_one=[
“MyRelation”=>“MyCla
我试图使用创建一个gridfield,在这里我可以添加不同类型的数据对象
遗憾的是,我不知道如何在我想要gridfield的类上为它编写正确的代码
有人能给我指一下正确的方向吗
更新:
根据你的回答,我现在有以下结构
class ModularPage extends Page {
private static $has_many = array(
'Sections' => 'MP_Section',
'Galleries' => 'MP_Gallery',
我已经创建了下面给出的页面、数据对象和模型管理员
页面
class MyPage extends Page {
private static $db = [];
private static $singular_name = "My Page";
private static $plural_name = "My Pages";
private static $description = 'A page created for testing';
}
use SilverSt
1 2 3 4 5 6 ...
下一页 最后一页 共 8 页