我正在努力解决Umbraco 7中的一个问题,就是当我从我的richtext编辑器中的Partial View Macro文件中附加一个宏时,当我保存内容时,它会从编辑器中消失.内容在页面上显示正常,但是当我再次保存内容时,宏也会从网页上消失.
如果我从脚本文件中插入一个宏(放在/ macroScripts中),我没有问题
我试图寻找这个问题的解决方案,但没有运气.
希望你们中的一些人可以帮我解决这个问题.
干杯!
我在Umbraco的先前版本中看到了一些例子(即5),这似乎相对简单.例如,请参阅此stackoverflow问题.
理论上,我可以在选择要使用的节点时使用属性HasAccess或IsProtected节点,或方法WhereHasAccess.
我到目前为止的代码是:
var nodes = @CurrentPage.AncestorsOrSelf(1).First().Children;
Run Code Online (Sandbox Code Playgroud)
这让我得到了页面列表,没问题.但是,我正在努力过滤页面列表,以便登录用户只能看到他们有权访问的内容,并且公共访问者看不到受保护的页面.
V5代码表明这是可能的:
var nodes = @CurrentPage.AncestorsOrSelf(1).First().Children.WhereCanAccess();
但这会导致错误:
'Umbraco.Web.Models.DynamicPublishedContentList' does not contain a definition for 'WhereCanAccess'
在最新发布的版本剃须刀的cheatsheet为一把umbraco表明,HasAccess()和IsProtected()有两种方法都可用,但使用这两种,当我得到空值,例如:
@foreach(var node in nodes.WhereCanAccess()) {
<li>@node.Name / @node.IsProtected / @node.IsProtected() / @node.HasAccess() / @node.HasAccess </li>
}
Run Code Online (Sandbox Code Playgroud)
对所有测试值(例如@node.IsProtected)返回null .
似乎我想要实现的目标很简单,但我正以错误的方式接近它.有人请指出我的方式的错误!
我正在努力用一个非常简单的Umbraco 7导航.基本上,我在一个解决方案中有几个"站点" - 或者,相同的站点,但是对于不同的国家和语言.他们的主页是顶级节点,所有子页面都嵌套在2级及以下.
这适用于各个站点(输出1级节点的子级).但是,我想创建第二个菜单,它只输出顶级节点,我可以在不同的站点之间切换.由于某种原因,我不能这样做.
@inherits UmbracoTemplatePage
@{
var homePage = CurrentPage.AncestorsOrSelf(1).First();
var subItems = homePage.Children;
var rootItems = homePage.Siblings;
}
<ul>
@foreach (var item in subItems) {
<li>@item.Name</li>
}
</ul>
<ul>
@foreach (var item in rootItems) {
<li>@item.Name</li>
}
</ul>
Run Code Online (Sandbox Code Playgroud)
它完美地输出第一个列表,但第二个列表没有输出.如果我尝试输出@homePage.Name它确实给了我一个输出,所以我知道根项是可访问的.
理想情况下,我希望它在第二个导航中输出所有根节点(基本上SiblinbsOrSelf()).
我究竟做错了什么?
我们正在使用Umbraco v7.2.1来提供应该是响应内容的内容.
当您将媒体库中的图像添加到tinymce编辑器时,这是由tinymce插入的html:
<img style="width: 500px; height:500px;"
src="/media/1007/jobs-block.jpg?width=500&height=500" alt="undefined" rel="1097" />
Run Code Online (Sandbox Code Playgroud)
我真的不想在标签或图像src中任何wxh.
我发现了一些关于tinyMce.config文件和validElements节点的帖子- 我从那里的img 东西中移除了高度和宽度的东西但是没有效果.
我有一个HTML页面,我想在Umbraco 7的自定义部分中显示.
我想在没有任何树的情况下执行此操作,因为所有内容都已在html文件中处理 - 它被放入Umbraco后端以方便访问.
到目前为止,我已经实现了IApplication,它可以按预期显示该部分.我确实有一个带有单个节点的树(继承自BaseTree,使其成为遗留部分),但是,我想充分利用可用空间,只需加载我的html文件并且没有显示树.
从BaseTree Render方法中删除节点隐藏了显示树的面板,但我无法弄清楚如何加载Html文件作为该部分的默认视图.
有没有一种简单的方法可以通过在用户点击该部分时设置一个默认页面来加载?
我正在使用umbraco 7.0,我需要在应用程序启动,会话启动和会话结束时添加一些自定义代码.至于在umbraco注册事件,我们必须继承Umbraco.Core.ApplicationEventHandler,我已经这样做了.但是因为我们只能覆盖ApplicationStarted而不是会话,因为我们可以在Global.asax中做.
我在Umbraco 6中看过Global.asax,但我无法访问Session,如答案中所示if (Session != null && Session.IsNewSession),也许是umbraco 6和umbraco 7中的一些变化.
有解决方案吗
下面提到的帖子中提到的代码.
public class Global : Umbraco.Web.UmbracoApplication
{
public void Init(HttpApplication application)
{
application.PreRequestHandlerExecute += new EventHandler(application_PreRequestHandlerExecute);
application.EndRequest += (new EventHandler(this.Application_EndRequest));
//application.Error += new EventHandler(Application_Error); // Overriding this below
}
protected override void OnApplicationStarted(object sender, EventArgs e)
{
base.OnApplicationStarted(sender, e);
// Your code here
}
private void application_PreRequestHandlerExecute(object sender, EventArgs e)
{
try
{
if (Session != null && …Run Code Online (Sandbox Code Playgroud) 我正在为Umbraco 7.1.7的会员区建立一个登录/注册部分.
我想通过电子邮件以明文形式向用户发送密码.
这个想法是,如果用户忘记了密码,他们只需输入他们的电子邮件地址(也可以作为他们的用户名)并点击按钮:

现在,我知道Umbraco使用ASP.NET成员资格提供程序和哈希密码,这很不错但我需要访问明文版本才能在电子邮件中发送.
我已经更改了我的web.config以包含这个:
<membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add name="UmbracoMembershipProvider"
type="Umbraco.Web.Security.Providers.MembersMembershipProvider, Umbraco"
minRequiredNonalphanumericCharacters="0"
minRequiredPasswordLength="0"
useLegacyEncoding="true"
enablePasswordRetrieval="true"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
defaultMemberTypeAlias="Member"
passwordFormat="clear" />
Run Code Online (Sandbox Code Playgroud)
我的Controller Action方法如下所示:
// Forgot password logic to send email
[ActionName("MvcMemberForgot")]
public ActionResult MvcMemberForgot(MvcMemberForgotModel model)
{
string emailaddress = model.Email.ToString(); // The users entered email address.
var member = Services.MemberService.GetByEmail(emailaddress);
var sb = new StringBuilder(); // To build the message.
sb.Append("Here is the password you …Run Code Online (Sandbox Code Playgroud) c# model-view-controller membership-provider password-recovery umbraco7
情况
我在Umbraco 7.3中创建了一个新的部分,我可以在其中管理目录(创建,编辑和删除产品).当我创建产品时,我将其所有信息存储在Umbraco数据库的表中.请注意,我不在树中创建节点,我只是直接使用数据库.
题
例如,当我在该目录中创建"产品A"时,我会自动在数据库的表中生成并存储自定义URL"/ products/product-A".但是,该URL不存在,因为我没有物理节点:
网页未找到
没有umbraco文档与url'/ products/product-A'匹配.
由于我没有物理节点,我如何"创建" 虚拟节点并为该URL分配模板?
我一直在寻找解决方案,但找不到版本7的任何东西.
我只需更新Umbraco 7节点上的日期属性.(不是发布日期)然后我需要告诉umbraco重新发布页面/更新缓存.
在下面的代码中,单个节点是"item",如果它发现item的checkbox属性设置为true,那么它应该将日期增加1年.
if(item.annual.ToString()=="True")
{
item.deadlineDate = item.deadlineDate.AddYears(1);
}
Run Code Online (Sandbox Code Playgroud)
任何和所有建议都非常欢迎,
此致,Damien Holley
有没有人有任何建议的策略来阻止用户编辑页面名称?
我正在Umbraco开发一个网站,其中各个合作伙伴都有自己的特定页面,他们可以专门编辑.通过标准Umbraco权限控制对此页面的访问.但是我们发现其中一些用户一直在编辑页面标题,但我们希望将它们限制为只能编辑内容.
我无法通过内置权限看到任何明显的方法来控制它.
也许可以插入一些页面预保存代码来检查用户是否具有某些权限,如果不是,则页面名称被设置为预编辑状态?
任何建议/指针都非常感谢.
umbraco7 ×10
umbraco ×6
razor ×4
asp.net-mvc ×1
c# ×1
global-asax ×1
macros ×1
tinymce ×1
umbraco-mvc ×1