Napisałem rozszerzenie GUI, które dodaje dodatkową kartę do wielu widoków elementów w CML Tridion CME (np. Komponent, strona i schemat itp.). Napisałem też trochę JavaScriptu, który ładuje tę kartę bezpośrednio, jeśli w widoku jest załadowany nazwa karty podana w adresie URL.Jak można rozszerzyć domyślne zachowanie Tridion.Cme.Commands.Open.prototype._execute()?
Rezultatem jest to, że jeśli strona jest ładowany z nazwą zakładki w brzmieniu:
http://localhost/WebUI/item.aspx?tcm=64#id=tcm:1-48-64&tab=InfoTab
zamiast domyślnego
http://localhost/WebUI/item.aspx?tcm=64#id=tcm:1-48-64
informacji Tab zostanie załadowany na górze, zamiast zakładki Ogólne. Jest to wykonywane z poniższym fragmencie kodu i działa bardzo dobrze:
$evt.addEventHandler($display, "start", onDisplayStarted);
// This callback is called when any view has finished loading
function onDisplayStarted() {
$evt.removeEventHandler($display, "start", onDisplayStarted);
var tabname = $url.getHashParam("tab");
if (tabname != '') {
var tabControl = $controls.getControl($("#MasterTabControl"), "Tridion.Controls.TabControl");
tabControl.selectItem(tabname);
}
}
Teraz chciałbym zrobić menu kontekstowego, aby otworzyć pozycje i odnośnik do zakładek za pomocą moją nową funkcjonalność. Moją pierwszą myślą było skonstruowanie adresu URL produktu i po prostu otworzyć nowe okno w mojej metodzie wykonywania. Tak więc przyjrzałem się domyślnej funkcjonalności standardowej funkcjonalności GUI w postaci Open.prototype_execute()
. Jest to przechowywane w pliku CME navigation.js
i jest wykonywane przy użyciu metody Tridion.Cme.Commands.Open.prototype._execute
. Kod jest o wiele bardziej skomplikowany, niż się spodziewałem, ponieważ zajmuje się udostępnionymi przedmiotami i pozwoleniami, itp.
Zamiast tylko kopiować cały ten kod do mojej własnej funkcji, zastanawiałem się, czy istnieje sposób na eleganckie przedłużenie istniejącą funkcję Open.prototype_execute()
i dołącz moją "& tab = MyTab" do stałej $cme.Popups.OPEN_ITEM_OPTIONS.URL
dla moich własnych funkcji.
Każda rada byłaby mile widziana.