考虑这种方法
public static void NumberList(params int[] numbers)
{
foreach (int list in numbers)
{
Console.WriteLine(list);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以调用这个方法并提供单独的integers或单个数组integers.在方法范围内,它们将被放入一个名为numbers (对吗?)的数组中,我可以继续操作它们.
// Works fine
var arr = new int[] { 1, 2, 3};
NumberList(arr);
Run Code Online (Sandbox Code Playgroud)
但是,如果我想调用该方法并提供数组,我会收到错误.你如何为数组启用params?
// Results in error
var arr = new int[] { 1, 2, 3};
var arr2 = new int[] { 4, 5, 6 };
NumberList(arr, arr2);
Run Code Online (Sandbox Code Playgroud) 此问题与更改Page Title字段值时的URL更新功能有关.该行为被编码到CMSMain.EditForm.js中.
我正在剥离并自定义CMS以供绝对基本的计算机用户或疏忽的客户端使用,他们很可能在页面名称更改时跳过更新URL按钮.在这些情况下,如果URLSegment自动更新将非常方便.
问:自动更新URL段的最简单方法是什么?IE 会在更改字段后模拟单击"更新URL"按钮时显示的结果?Title
有没有方便的方法从数据库中删除过时的表列?我想知道是否有更多基于约定的解决方案而不是登录PHPMyADMIN并手动删除列.
示例
安装SilverStripe-Fluent并添加额外的区域设置(例如nz-NZ)时,模块将拆分每个SiteTree记录以添加带前缀的额外翻译列_nz-NZ.假设我们删除了额外的语言环境(nz-NZ),列将在/ dev/build之后保留在那里.
SilverStripe Fluent模块具有现成的模板,可在前端显示简单的语言切换菜单.
<% loop Locales %>
<li class="$LinkingMode">
<a href="$Link.ATT" hreflang="$LocaleRFC1766"<% end_if %>>
$Title.XML
</a>
</li>
<% end_loop %>
Run Code Online (Sandbox Code Playgroud)
当它循环"Locales"时它在技术上是什么循环?没有名为"Locales"的数据库表.
我的目标是最终找到返回语言缩写的变量(或编写函数)(而不是国家!).所以我需要一些东西,例如返回nl而不是nl-NL(作为$LocaleRFC1766回报).
我试图删除导出为CSV按钮,在顶部GridField中ModelAdmin.
我似乎找不到创建按钮的类(GridFieldExportButton对吧?).我猜有一个函数用我不熟悉的按钮/"动作"填充GridField.
我正在尝试为GridField编辑表单中的save按钮设置一个entwine挂钩,以便在保存之前执行JavaScript函数.
我已经尝试过以下代码而没有成功
$('button[type="submit"]').entwine({
onclick: myFunction
});
Run Code Online (Sandbox Code Playgroud)
什么是在GridField保存按钮上挂钩缠绕onclick事件的JavaScript代码?
在后端,SilverStripe Fluent 模块添加了一个绿色旗帜图标来指示该字段是可翻译的(如页面名称、URL 段和内容旁边所示)。
这是一个用户友好的细节,我希望它适用于自定义添加的可翻译的 CMS 字段。例如,我添加了一个名为的自定义字段Introduction并使其可翻译:private static $translate = array( 'Introduction' );但旁边没有绿色图标。这个可以加吗?
我的控制器方法Foo()(通过AJAX请求调用)使用打印JSON到页面json_encode($data).我正在尝试使用正确的http标头
header('Content-Type: application/json');
Run Code Online (Sandbox Code Playgroud)
但是从我的浏览器开发工具中我读到了AJAX响应:
Content-Type:text/html; charset=utf-8
Run Code Online (Sandbox Code Playgroud)
我假设没有正确发送JSON标头.这是发送JSON标头的正确方法吗?
我以为我知道CSS直到今天.为什么以下CSS样式会给出结果?
样式表:
li.item a:first-child {color: red}
Run Code Online (Sandbox Code Playgroud)
HTML列表:
<ul class="mylist">
<li class="item"><a href="#">item 1</a>
<ul>
<li class"child"><a href="#">child item 1</li>
<li class="child"><a href="#">child item 1</li>
</ul>
</li>
</ul>
这使前两个人变红了.该<a>范围内<li class="child">是不a:first-child中<li class="item">,怎么来它仍然是红色?什么是<a>在<li class="item">不更改HTML的情况下仅针对第一个内容的替代方法?
我如何只定位li.item中的第一个?
我注意到在某些情况下,当您编写扩展现有类的类时,您需要在config.yml文件中声明类扩展.
例如,我最近编写了此代码以删除CMS后端中的"帮助"按钮.
mysite的/代码/ Tweak.php
class Tweak extends LeftAndMainExtension
{
public function init()
{
parent::init();
/* Remove help link */
CMSMenu::remove_menu_item('Help');
}
}
Run Code Online (Sandbox Code Playgroud)
mysite的/代码/ Config.yml
LeftAndMain:
extensions:
- Tweak
Run Code Online (Sandbox Code Playgroud)
问题1:为什么需要在config.yml中声明一些类扩展?为什么这个额外的步骤对于其他类扩展(例如扩展DataObject或Page_Controller)不是必需的?
问题2:关于上面代码的具体问题,为什么我在配置文件中将Tweaks声明为LeftAndMain的扩展,但是在php文件中我实际上是在扩展LeftAndMainExtension?
如何在DataExtension中检索原始类的类名(字符串)?
class FooExtension extends DataExtension {
// This returns "FooExtension" (but I need the original-class name, not the extension's)
private $foo1 = self::class;
// This returns nothing
public function Foo2 {
return $this->owner;
}
// This returns "FooExtension", surprisingly
public function Foo3 {
return get_class($this->owner);
}
// This returns nothing either
public function Foo4 {
return $this->owner->class;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,例如,当应用此扩展时Page,我想在扩展类中的某处返回或分配Page(字符串).
下面的HTML/CSS结果让我觉得奇怪和意外,我真的在寻找解析它的方式背后的逻辑.
假设:
#nav {
list-style-type-none
}
#nav li {
display: inline;
}
/* make the LI's stack horizontally */
#nav li a {
display: block;
padding: 5px;
}
/* display as block to add padding */Run Code Online (Sandbox Code Playgroud)
<ul id="nav">
<li><a href="#">Home</a>
</li>
<li><a href="#">About us</a>
</li>
</ul>Run Code Online (Sandbox Code Playgroud)
这导致<li>垂直堆叠(如块元素),因为<a>它们显示为块元素.但我希望将<li>它们水平堆叠,因为我已将它们定义为内联元素.
这些<li>显示为内联,为什么内部元素<a>会影响它?
silverstripe ×9
php ×6
css ×2
javascript ×2
.net ×1
arrays ×1
block ×1
c# ×1
html ×1
http-headers ×1
inheritance ×1
inline ×1
json ×1
mysql ×1
nested ×1
params ×1