1

たとえば、データを保存して公開する前に、データをチェックするなどのデータの操作 (データに対する処理) を実行したり、UrlRewriting.config ファイルに短い URL を追加したり、これらを自動的に実行したりします。また、ノードを削除または非公開にするときに、 UrlRewriting.config ファイルから短い URL を自動的に削除します。一方で、Umbraco のバック オフィスでの保存、公開、および削除プロセスを完全に制御したいと考えています。 私を助けてください。

4

2 に答える 2

4

umbracoUrlAliasノードへの URL を変更する場合は、URLRewriting.config にエントリを追加する代わりに、プロパティを変更することで簡単に変更できます。

ノードの保存、公開、削除などの際にロジックを追加する限り、多くのUmbraco イベントの 1 つまたは複数にサブスクライブし、そこでロジックを実行するクラスを作成します。詳細については、アプリケーション起動イベントとイベント登録を参照してください。

于 2013-04-13T20:33:40.167 に答える
3

以下にいくつかの例を示します。

public class SaveAndPublish : ApplicationEventHandler
{
    protected override void ApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
    {
        // Content Service
        ContentService.Created += ContentService_Created;
        ContentService.Saving += ContentService_Saving;
        ContentService.Published += ContentService_Published;
        ContentService.Trashing += ContentService_Trashing;

        // Media Service
        MediaService.Saving += MediaService_Saving;
        MediaService.Saved += MediaService_Saved;
        MediaService.Trashing += MediaService_Trashing;
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void ContentService_Created(IContentService sender, NewEventArgs<IContent> e)
    {
        ...
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void ContentService_Saving(IContentService sender, SaveEventArgs<IContent> e)
    {
        ...
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void ContentService_Published(Umbraco.Core.Publishing.IPublishingStrategy sender, PublishEventArgs<IContent> e)
    {            
        ...
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void ContentService_Trashing(IContentService sender, MoveEventArgs<IContent> e)
    {
        ...
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void MediaService_Saving(IMediaService sender, SaveEventArgs<IMedia> e)
    {
        ...
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void MediaService_Saved(IMediaService sender, SaveEventArgs<IMedia> e)
    {
        foreach (var entity in e.SavedEntities)
        {
            ...
        }
    }

    /// <summary>
    /// 
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void MediaService_Trashing(IMediaService sender, MoveEventArgs<IMedia> e)
    {
        ...
    }
}
于 2014-10-15T00:59:22.317 に答える