2012-04-05 2 views
4

Я настраиваю панель инструментов ленты и добавляю к ней кнопку. Всякий раз, когда я нажимаю на эту кнопку, он открывает страницу aspx, позволяя авторам выбирать некоторые данные, которые добавляются к существующему содержимому поля RTF.Как разрешить ошибку «Tridion is undefined» на всплывающей странице Tridion?

Но когда всплывающее окно открыто, в браузере (Internet Explorer) появляется следующая ошибка.

Webpage error details 

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0;  SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3) 
Timestamp: Thu, 5 Apr 2012 12:18:35 UTC 


Message: 'Tridion' is undefined 
Line: 1 
Char: 1 
Code: 0 
URI: http://172.21.188.26:2694/WebUI/Core/stringresources.js 

Я не могу найти файл stringresources.js в указанном месте. Пожалуйста, предложите мне способ решить проблему.

ButtonReference.js файл: Type.registerNamespace ("RTFExtensions.Commands");

RTFExtensions.Commands.ButtonReference = function Commands$ButtonReference(name) { 
    Type.enableInterface(this, "RTFExtensions.Commands.ButtonReference"); 
    this.addInterface("Tridion.Cme.Command", [name || "ButtonReference"]); 
    this.addInterface("Tridion.Cme.FaCommand", [name || "ButtonReference"]); 
}; 

RTFExtensions.Commands.ButtonReference.prototype._isAvailable = function   ButtonReference$_isAvailable(target) { 
    if (target.editor.getDisposed()) { 
     return false; 
    } 

    return true; 
}; 

RTFExtensions.Commands.ButtonReference.prototype._isEnabled = function ButtonReference$_isEnabled(target) { 
    if (!Tridion.OO.implementsInterface(target.editor, "Tridion.FormatArea") ||    target.editor.getDisposed()) { 
     return false; 
    } 

    return true; 
}; 

RTFExtensions.Commands.ButtonReference.prototype._execute = function  ButtonReference$_execute(target) { 
    if (target.item.isActivePopupOpened()) { 
     return; 
    } 

    function ButtonReference$execute$onPopupCanceled(event) { 
     target.item.closeActivePopup(); 
    }; 

    //var url = $config.expandEditorPath("/Popups/PopupReference.aspx", "RTFExtensions"); 
    var schemaId = $display.getView().getItem().getSchemaId(); 
    var componentName = $display.getView().getItem().getTitle(); 
    //alert($display.getView().getItem().getId()); 
    alert($display.getView().getItem().getTitle()); 
    var url = "Editors/RTFExtensions/Popups/PopupReference.aspx?schemaId=" + schemaId + "&componentName=" + componentName; 
    //var url = "Editors/RTFExtensions/Popups/PopupReference.aspx"; 
    alert("url is " + url); 
    var dialogFeatures = $cme.Popups.ITEM_SELECT.FEATURES; 
    var popup = $popup.create(url, dialogFeatures, null); 

    $evt.addEventHandler(popup, "submit", 
     function ButtonReference$execute$onPopupSubmitted(event) { 
      // Update FA 
      var value = event.data.value; 
      if (value) { 
       alert("In Button Reference value:" + value); 
       target.editor.applyHTML(value); 
      } 

      // Release 
      target.item.closeActivePopup(); 
     } 
    ); 

    $evt.addEventHandler(popup, "unload", ButtonReference$execute$onPopupCanceled); 

    target.item.setActivePopup(popup); 
    popup.open(); 
}; 

PopupReference.js Файл:

Type.registerNamespace("RTFExtensions.Popups"); 

RTFExtensions.Popups.PopupReference = function (element) { 
    Type.enableInterface(this, "RTFExtensions.Popups.PopupReference"); 
    this.addInterface("Tridion.Cme.View"); 
}; 

RTFExtensions.Popups.PopupReference.prototype.initialize = function() { 
    alert("initialized");  
    $log.message("Initializing Button Reference popup..."); 
    this.callBase("Tridion.Cme.View", "initialize"); 

    var p = this.properties; 
    var c = p.controls; 

    p.HtmlValue = { value: null }; 
    c.SubmitButon = $("#Submit"); 
    //asp dropdown 
    //c.DropDown = $("#lookupvaluesDropdown"); 
    //alert($("#lookupvaluesDropdown").value + "in initialize");   
    $evt.addEventHandler(c.SubmitButon, "click", this.getDelegate(this._execute)); 

    // $evt.addEventHandler(c.InsertButton, "OnSelectedIndexChanged", this.getDelegate(this._execute)); 
}; 

RTFExtensions.Popups.PopupReference.prototype._execute = function() { 
    alert("executing"); 
    //alert($("#lookupvaluesDropdown").value); 
    this.properties.HtmlValue.value = $("#lookupvaluesDropdown").value; 
    alert(this.properties.HtmlValue.value + " in execute"); 
    this.fireEvent("submit", this.properties.HtmlValue); 

    alert("after fire event"); 
    //$("#Submit").fireEvent("submit1", this.properties.HtmlValue); 
    window.close(); 
}; 



$display.registerView(RTFExtensions.Popups.PopupReference); 

PopupReference.aspx страница:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PopupReference.aspx.cs" 
    Inherits="ButtonReference.Popups.PopupReference" %> 

<%@ Import Namespace="Tridion.Web.UI.Core" %> 
<%@ Import Namespace="Tridion.Web.UI" %> 
<%@ Import Namespace="System.Web" %> 
<%@ Register TagPrefix="ui" Namespace="Tridion.Web.UI.Editors.CME.Controls" Assembly="Tridion.Web.UI.Editors.CME" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:cc="http://www.sdltridion.com/web/ui/core/controls"> 
<head id="Head1" runat="server"> 
    <title>Reference Button Popup</title> 
    <cc:tridionmanager runat="server" editor="PowerTools2011"> 
     <dependencies runat="server"> 
      <dependency runat="server">Powertools2011.Example</dependency> 
      <dependency runat="server">Tridion.Web.UI.Editors.CME</dependency> 
      <dependency runat="server">Tridion.Web.UI.Editors.CME.commands</dependency> 
     </dependencies> 
    </cc:tridionmanager> 

</head> 
<body> 
    <form id="form1" runat="server"> 
    <div>   
     <h1> 
      Reference Button Popup 
     </h1> 
     <table>   
     <tr><td><asp:DropDownList ID="lookupvaluesDropdown" runat="server"></asp:DropDownList></td></tr> 
     <tr><td><asp:Button ID="Submit" runat="server" Text="Submit" /></td></tr> 

     </table> 
    </div> 
    </form> 
</body> 
</html> 

ответ

5

Это означает, что JavaScript из TRIDION не загружен. Включили ли вы

<cc:tridionmanager runat="server" editor="PowerTools"> 

UserControl на вашей странице?

+0

Благодарим за отзыв. Я не включил этот тег.Не могли бы вы рассказать мне, где включить это? Заранее спасибо. –

+0

Включите это на свою страницу popup.aspx. Если вы хотите (более) примеры, проверьте проект PowerTools на code.google.com. Искать: TridionManager во всем проекте. Это должно дать вам достаточно информации, чтобы вы начали. –

+0

Когда я пытаюсь добавить тег, он дает ошибку, как префикс неизвестного тега или фильтр. Нужно ли его поставить «c» в качестве префикса? –

3

Возможно, я повторяюсь, но вы пробовали следовать любому из доступных учебных пособий для создания расширения GUI?

Можете ли вы получить любой из них для работы?

Подсказка: Google для «Tridion расширения графического интерфейса учебник»

3

Недавно я получил ту же ошибку, хотя, вероятно, по разным причинам.

  1. Robert Curlette (RCWeb) имеет отличный путеводитель по двум now-familiar "broken" GUI screens.
  2. У нас также есть хороший совет от PowerTools wiki, в частности, из Питера Кьяер:

Посетите ресурс непосредственно HTTP: // {имя хоста}/WebUI/редакторы/CME/Views/Панель управления/Dashboard_v6 . {версия номер} _. ASPX? режим = JS

Я могу видеть это в консоли Chrome с отсутствующей библиотеки DLL службы. Я получаю ту же ошибку Tridion is not defined, но другую для панели инструментов. Вы можете щелкнуть правой кнопкой мыши ссылку Dashboard _..., открыть новую вкладку и получить дополнительную информацию.

Uncaught SyntaxError: Unexpected token < Dashboard_v6.1.0.55920.2_.aspx?mode=js:3 
Uncaught ReferenceError: Tridion is not defined stringresources.js:1 
(anonymous function) stringresources.js:1 

В моем конкретном случае у меня было следующее.

Exception of type 'System.Web.HttpUnhandledException' was thrown. 
Could not find file 'C:\Program Files (x86)\Tridion\PowerTools\Model\Services\{one of the many outstanding contributions}.svc'. 

Удаление повреждающего файла в файле конфигурации модели исправило мою ошибку. Хотя мы, возможно, никогда не узнаем, что на самом деле произошло в таинственном случае двух предметов в строке запроса.

Смежные вопросы