0

涵蓋體驗(頁面)編輯器和內容編輯器的問題。Sitecore 8.1 - 添加按鈕到自定義字段類型和體驗編輯器

我有一個時間軸聚光燈,用戶可以添加到一個頁面 - 它有一個數十年的頂部列表,並在每個十年下有一個年份列表(與他們的文字和圖像)。

我創建了一些鏈接到各種數據源的控件,但我發現缺乏用戶體驗。

如果我去體驗編輯:

  1. 選擇時間軸佔位並加入項目
  2. 彈出來了,選擇/創建數據源

然後添加的唯一途徑十年是去十年的數據源,在那裏創建一個新的項目,然後回到時間軸數據源並添加它們的項目。

我在想什麼的是:

  • 內容編輯器 - 反對時間軸數據項的是「十年」一個多表欄 - 有沒有簡單的方法來添加一個「創建」按鈕在它旁邊,如果你去了十年數據源,並點擊插入項目
  • 經驗編輯器,將複製相同的事件 - 刪除使用佔位符,並添加了類似「創建」按鈕,將複製插入項目事件 - 一旦創建了項目並且屬性設置刷新控件以顯示。

以前有人遇到過類似的東西嗎?有更好的解決方案

感謝, 丹

回答

0

接到了Sitecore的社區的答案可能會有所幫助 -

在經歷編輯器,你可以創建一個編輯框和按鈕上使用它爲您呈現從...我可以看到,您的渲染數據源指向「幾十年」文件夾。在您的渲染中,檢查您是否在頁面編輯器中,並使用自定義編輯框來顯示自定義按鈕。其中一個將是一個插入按鈕,允許您在「幾十年」下創建一個新的孩子。

全部細節在this blog post re經驗編輯編輯相框按鈕。

2

實際上,我正在爲我們的新的實現同樣的功能。

在內容編輯器中,您可能需要更新核心數據庫。
在xEditor中,您可以使用帶有ajax和後端代碼的sitecore JS命令。我的建議是,您可以創建一個渲染組件,並將該組件分配到指定的佔位符中,而不是將其重命名。然後,在渲染項目上調用後端和JavaScript事件。

這可能是一個起點。 的Javascript 功能:

function setDataSrc(itemID, templatePath, suffix, renderingID, dbName, deviceID, renderingUID, reload, callBack) { 
    var postReq = $.post("/handlePostRequest.aspx (or .cshtml)", { 
     method: 'methodName' 
     , itemID: itemID 
     , templatePath: templatePath 
     , suffix: suffix 
     , renderingID: renderingID 
     , dbName: dbName 
     , deviceID: deviceID 
     , renderingUID: renderingUID 
    }); 

    postReq.done(function (data) { 
     if (reload != false) { 
      location.reload(true); 
     } 
     if (typeof callBack == 'function') { 
      callBack(data); 
     } 
    }); 
} 
+0

謝謝賢賢 - 將看看它! – Daniel

相關問題