Umbraco пользовательские URL-слизни - PullRequest
2 голосов
/ 08 декабря 2011

Мне нужно генерировать пользовательский URL-слаг каждый раз, когда пользователь создает новый узел, или (если возможно) полностью прекратить использование Umbraco метода umbraco.library:NiceUrl.

1 Ответ

1 голос
/ 05 марта 2012

В своем ответе я предполагаю, что вы используете Umbraco v4.7.x.

Прежде всего, я бы позаботился о том, чтобы ваши узлы имели свойство типа документа umbracoUrlName и / или свойство umbracoUrlAlias ​​ (я оставлю вам выбор, какой из них лучше подходит вашему требования).

Затем вы можете подписаться на обработчик событий Document.New. Чтобы подписаться на обработчик Document.New, вам нужно унаследовать от класса ApplicationBase, см. Следующий пример:

public class ApplicationBase : umbraco.BusinessLogic.ApplicationBase
{
    /// <summary>
    /// Initializes a new instance of the <see cref="ApplicationBase"/> class.
    /// </summary>
    public ApplicationBase()
    {
        Document.New += this.Document_New;
    }

    private void Document_New(Document sender, NewEventArgs e)
    {
        sender.getProperty("umbracoUrlName").Value = "your_urlname_here";
        sender.Save();
    }    
}
...