Questions & Answers

SOLVED
hbarthel
New Responder

Template Debugger Usability / Features

Jump to solution

Hallo Community,

der Template Debugger hat mir schon oft geholfen, schnell Fehler zu analysieren. Deswegen Danke an e-Spirit fรผr diese Erleichterung. Aber: das Hin- und Hergeschiebe der Fenster nervt ohne Ende oder hat jemand von Euch mal horizontale Scrollbalken gefunden, damit man lรคngere Werte von Variablen auch lesen kann?

Mit dem Template Debugger will ich oft die Generierung simulieren, nur ich finde nirgends eine Mรถglichkeit, den UrlCreator zu konfigurieren, so wie das im GenerateTask geht. Geht das oder muss ich einen Feature-Request aufmachen? Wenn letzteres: vermisst Ihr das auch?

Ich wรผrde mir wรผnschen, dass man im Settings-Bereich ein Stรผck Code pflegen kann, das einfach vorher immer ausgefรผhrt wird. So kรถnnte ich den UrlCreator setzen und evtl. auch den Datensatz, der bei Content-Projektionen verwendet werden soll. Heute helfe ich mir damit, das im Template temporรคr fรผr die Debugging-Session reinzuschreiben. Leider habe ich aber auch schonmal vergessen, den Debug-Code wieder rauszunehmen ...

GruรŸ Heiko

1 Solution

Accepted Solutions

Hallo Heiko, hallo Felix,

ob man sich gerade im Debugger befindet, lรคsst sich auch รผber die Art des aktuellen Contexts herausfinden:

Auswahl_002.png

Dann brauchst Du im Skript nicht รผber den TemplateDebuggerService zu gehen, Heiko.

Viele GrรผรŸe

Donato

View solution in original post

8 Replies
felix_reinhold
Returning Responder

Hallo Heiko,

Ich wรผrde mir wรผnschen, dass man im Settings-Bereich ein Stรผck Code pflegen kann, das einfach vorher immer ausgefรผhrt wird.

รผber den TemplateDebuggerService kannst du abfragen, ob der Debugger gerade lรคuft.

Ich wรผrde also empfehlen den Code in das Projekteinstellungstemplate zu รผbernehmen, da darin enthaltener Template-Code auch in der Preview immer vor dem Generieren einer Seite ausgefรผhrt wรผrde. So kรถnntest du dort einfach einen Abschnitt mit TemplateDebugger-Settings machen, die nur gesetzt werden, wenn der Debugger lรคuft.

Beste GrรผรŸe

Felix

0 Kudos

Die Idee ist genial. Habe mir ein Skript gemacht:

//!Beanshell

import de.espirit.firstspirit.access.ServicesBroker;

import de.espirit.firstspirit.access.ServiceNotFoundException;

import de.espirit.firstspirit.debugger.client.TemplateDebuggerService;

final ServicesBroker servicesBroker = context.requestSpecialist(ServicesBroker.TYPE);

try {

  final TemplateDebuggerService tds = servicesBroker.getService(TemplateDebuggerService.class);

  result.setValue(tds.isDebuggerRunning());

} catch (ServiceNotFoundException e) {

  return "TemplateDebuggerService not found";

}

Kriege allerdings einen Fehler:

ERROR (Script 'debug_stuff' (id=1289446) at 0, 0):  at 0, 0: Script 'debug_stuff' (id=1289446) - Typed variable declaration : Class: TemplateDebuggerService not found in namespace : at Line: 9 : in file: inline evaluation of: ``__execute() { //!Beanshell import de.espirit.firstspirit.access.ServicesBroker;  . . . '' : TemplateDebuggerService

Und Zeile 9 ist:

final TemplateDebuggerService tds = servicesBroker.getService(TemplateDebuggerService.class);

0 Kudos
felix_reinhold
Returning Responder

Hmm, schade.. Bin einfach davon ausgegangen, dass der Service normal verfรผgbar ist. Habe aber gerade in die module.xml des fs-debugger.fsm geschaut und leider sind die Klassen nur im Modul verfรผgbar. Der einzige Weg รผber die API wรคre dann wohl nur noch den Status des Debugger-Fensters abzufragen --> Alles andere als schรถn Smiley Sad

0 Kudos

Hallo Heiko, hallo Felix,

ob man sich gerade im Debugger befindet, lรคsst sich auch รผber die Art des aktuellen Contexts herausfinden:

Auswahl_002.png

Dann brauchst Du im Skript nicht รผber den TemplateDebuggerService zu gehen, Heiko.

Viele GrรผรŸe

Donato

Hey Donato,

cool, vielen Dank fรผr die Info!

GruรŸ

Felix

0 Kudos

Hallo Felix,

ist deine Frage damit beantwortet oder benรถtigst du noch weitere Hilfe? Smiley Happy

Sollte deine Frage beantwortet sein, wรคre es super, wenn du Donatos "richtige Antwort" entsprechend markierst.

Viele GrรผรŸe

Michaela

0 Kudos

Hallo Michaela,

die Frage war von Heiko. Ich konnte Donatos Antwort somit nur als hilfreich und nicht als richtig markieren /abschlieรŸen.

GruรŸ

Felix

0 Kudos

Danke Donato, der Tipp ist super. Dieses Stรผck Code in der Seitenvorlage der Project Settings habe ich fรผr meine Zwecke eingebaut:

$CMS_IF(#global.class.name.contains("Debugger"))$

    $CMS_VALUE(#global.logInfo("Running in Debugger"))$

    $-- for the Developer: put in here code to be executed for your debugging session, e.g. set variables --$

$CMS_END_IF$

0 Kudos

Type a product name