我对XSLT中的某种随机函数有疑问.
我有一个非常简化的XML文件,类似于:
<node id="1198">
<node id="1201">
<data alias="name">Flemming</data>
<data alias="picture">1200</data>
</node>
<node id="1207">
<data alias="name">John</data>
<data alias="picture">1205</data>
</node>
<node id="1208">
<data alias="name">Michael</data>
<data alias="picture">1206</data>
</node>
</node>
Run Code Online (Sandbox Code Playgroud)
我想有一些XSLT,ramdomly接受一个节点id并将其放入一个名为"choosenNode"的变量中.像这样,如果ID为1207的节点是选中的节点:
<xsl:variable name="choosenNode" value="1207" />
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?XSLT中是否有随机函数?顺便说一句,我希望在包含XSLT的每个页面上刷新变量.
我在Umbraco CMS工作,如果这对你们有帮助的话.
谢谢,-Kim
我一直试图在IIS 7下的Windows 7机器上安装Umbraco.我能够使用Web平台安装程序通过WebMatrix启动并运行,但我想在IIS中运行它.
无论我是通过设置新的网站复制二进制文件来手动执行安装,还是让我让Web平台安装程序执行此操作,我总是会看到一个缺少所有CSS,图像,js等的安装页面.
当我尝试直接点击这些资源时,我总是被重定向回安装页面.
我告诉平台安装程序创建一个全新的网站.没有指定虚拟目录/应用程序名称.我已经按照我能找到的所有在线指示进行了跟踪.
日志显示401未经授权的错误:
2012-05-11 02:42:22 127.0.0.1 GET /umbraco_client/installer/css/all.css - 80 - 127.0.0.1 Mozilla/5.0 +(兼容; + MSIE + 9.0; + Windows + NT + 6.1; + WOW64; + Trident/5.0)401 3 5 10 2012-05-11 02:42:22 127.0.0.1 GET /umbraco_client/installer/css/reset.css - 80 - 127.0.0.1 Mozilla/5.0 +(兼容; + MSIE +9.0; + Windows + NT + 6.1; + WOW64; + Trident/5.0)401 3 5 10 2012-05-11 02:42:22 127.0.0.1 GET /umbraco_client/installer/css/form.css - 80 - 127.0 .0.1 Mozilla/5.0 +(兼容; + MSIE + 9.0; + Windows …
然后有许多代表Umbraco文档的类:
1) umbraco.cms.businesslogic.Content
2) umbraco.cms.businesslogic.web.Document
3) umbraco.MacroEngines.DynamicNode
4) umbraco.presentation.nodeFactory.Node
Run Code Online (Sandbox Code Playgroud)
还有其他人吗?
你能解释一下他们做了什么,以及何时使用它们?
umbraco.MacroEngines.DynamicNode和umbraco.presentation.nodeFactory.Node看起来是一样的.也许最好使用Node类,因为它更快?
我有一个理论:
umbraco.cms.businesslogic.Content和umbraco.cms.businesslogic.web.Document是cmsContent和cmsDocument数据库表的表示.
umbraco.presentation.nodeFactory.Node和umbraco.MacroEngines.DynamicNode表示在XML文件中缓存的节点,用于网站.第一个是简单的Node,第二个是添加了动态属性的同一个Node,一个是nodeType中定义的属性.所以,我认为Node比DynamicNode更快
有人可以证实吗?
由于与主页的链接不正确,我的面包屑被破坏了.请告诉我,如何手动更改"链接到文档"参数.我使用umbraco 4.7.2我只需要在主页上使用域名,并在内部页面上使用完整的绝对路径.谢谢.

我在VS 2010中使用Umbraco 6创建了一个MVC4应用程序,我创建了一个Web部署项目,我的Team City CI服务器使用该项目将我的网站部署到CI环境进行测试.
在CI服务器上第一次加载主页(或任何页面)时,它加载完全正常.但是,加载页面的行为会在我的CI服务器上创建一个App_Code文件夹,然后我收到消息"由于应用程序已预编译,因此不允许使用目录'/ App_Code /'".删除App_Code文件夹意味着它再次适用于一个页面加载,并再次创建该文件夹.
删除PrecompiledApp.config文件会导致我的站点无法加载YSOD,并声明"对象引用未设置为对象的实例".在堆栈跟踪中的以下点"Umbraco.Web.UmbracoModule.BeginRequest(HttpContextBase httpContext)+25"
要清楚,我的项目中没有App_Code文件夹,我不想要或不需要.我只想让它在页面加载时自动停止创建一个!我在VS中使用了Umbraco并且以相同的方式多次部署,只是没有使用Umbraco 6和MVC项目.
任何想法为什么App_Code被自动创建以及我可以做些什么来阻止它?
非常感谢
理查德
您好我在web.config文件的AppSettings中并使用Umbraco 4.6.1.
我转到最初要加载的页面,所以我将?umbDebugShowTrace = true附加到页面,但它不会输出任何告诉我任何有关堆栈跟踪的内容.我在web.config文件中也有以下内容:
<trace enabled="true" requestLimit="10" pageOutput="true" traceMode="SortByTime" localOnly="true" />
在<system.web>标签内.
如何获取有关页面最初加载时间过长的信息?
我差不多完成了我的第一个Umbraco网站,我一直在浏览这些论坛以及ourumbraco.org论坛,试图找到关于如何将Umbraco网站发布到实时临时区域的权威指南,到目前为止,我发现这样的指南不存在.特别是,我感兴趣的是如何部署使用Visual Studio开发的Umbraco站点以及可以为生产环境删除/简化哪些文件夹.我使用的是最新版本的Umbraco 7.3.1和一个SQL CE数据库.
我很高兴使用FTP将网站上传到服务器,如果这是一个选项,但我也想确保我的网站具有开箱即用Umbraco安全性的基本级别,所以我假设安装目录应该是除去.
任何有关这方面的帮助将不胜感激.我正在使用Visual Studio 2013.
在Umbraco v6中,可以使用以下命令获取dictionaryitem:
umbraco.library.GetDictionaryItem("EmailSubject");
Run Code Online (Sandbox Code Playgroud)
这将检索"EmailSubject"的正确值,具体取决于用户访问umbraco网站的文化.
现在我正在编写一个简单的电子邮件类库,我不关心System.Threading.Thread.CurrentThread.CurrentCulture,我不想在获取值之前始终设置CurrentCulture.它有效,但我不喜欢这种方法.我正在写一个简单的邮件库.对于每个邮件收件人,我认为设置这样的文化并不是很有效.
我找到的解决方案(在线搜索,我遗失了来源抱歉)是以下示例:
//2 = the 2nd language installed under Settings > Languages, which is German in my case
var sometext = new umbraco.cms.businesslogic.Dictionary.DictionaryItem("SomeText").Value(2);
Run Code Online (Sandbox Code Playgroud)
我创建了一些帮助方法,使其更容易:
private string GetDictionaryText(string dictionaryItem, string language)
{
//try to retrieve from the cache
string dictionaryText = (string)HttpContext.Current.Cache.Get(dictionaryItem + language);
if (dictionaryText == null)
{
dictionaryText = new umbraco.cms.businesslogic.Dictionary.DictionaryItem(dictionaryItem).Value(GetLanguageId(language));
//add to cache
HttpContext.Current.Cache.Insert(dictionaryItem + language, dictionaryText, null, DateTime.Now.AddMinutes(10), TimeSpan.Zero);
}
return dictionaryText;
}
private int GetLanguageId(string language)
{
int languageId = 1; //1 …Run Code Online (Sandbox Code Playgroud) 我使用了GetTags()方法umbraco.cms.businesslogic.Tags.Tag来获取组或节点下的所有标签.
var tags = umbraco.cms.businesslogic.Tags.Tag.GetTags("default");
Run Code Online (Sandbox Code Playgroud)
但是umbraco.cms.businesslogic.Tags.Tag现在已经过时了,还有其他更好的选择吗?
此外,新库是否提供基于标签的节点查询?
umbraco ×10
c# ×3
umbraco7 ×2
.net ×1
app-code ×1
asp.net ×1
deployment ×1
iis ×1
performance ×1
random ×1
umbraco-tags ×1
xml ×1
xslt ×1