[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Fußnotenverweise in einer dropdown list anzeigen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Fußnotenverweise in einer dropdown list anzeigen

stone0203
Beiträge gesamt: 20

14. Okt 2014, 21:22
Beitrag # 1 von 7
Bewertung:
(3016 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Ich versuche mich gerade an einem Skript, welches alle Fußnotenverweise auf der aktuellen Seite findet und diese dann in einer dialog box in einer dropdown list anzeigt. (also in der dropdown list soll dann nur die Hochzahl vom Fließtext stehen)
Hintergrund is jener, dass ich mit diesem Skript die in der dropdown list ausgewählte Fußnote löschen möchte.

mein Ansatz is folgender:

Code
       var myDialog = app.dialogs.add({name:" Fußnoten:",canCancel:true}); 
var myStory = app.selection[0].parentStory;
var myNotes = myStory.footnotes;
with(myDialog){
//Add a dialog column.
with (dialogColumns.add()){
staticTexts.add({staticLabel:"Please choose:"});
}
with (dialogColumns.add()){
mymenu = dropdowns.add({stringList:myNotes[0], selectedIndex:0});
}}

//Display the dialog box.
var myResult = myDialog.show();
if(myResult == true){
//Get the values from the dialog box controls.
var myString = myTextEditField.editContents; }
else {
exit()}
//Remove the dialog box from memory.
myDialog.destroy();


Das Skript findet zwar die Fußnotenverweise aber ich weis einfach nicht, wie ich diese in eine dropdown list bekomme.
Ich hab auch schon versucht mittels GREP das Zeichenformat der Fußnotenverweise zu finden, das klappt zwar auch aber hilft mir mit meinem Problem nicht weiter :)

vl hat ja Jemand eine Idee!

Grüße
X

Fußnotenverweise in einer dropdown list anzeigen

drerol74
Beiträge gesamt: 507

15. Okt 2014, 00:51
Beitrag # 2 von 7
Beitrag ID: #533016
Bewertung:
(2963 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

die Dropdown-Liste ist ja im Prinzip nur ein Array aus Strings. Wenn du dort die Zahlen (1 bis Anzahl der Fußnoten) stehen hast, kannst du über die Indexzahl des ausgewählten Elementes auf die Fußnote mit dem entsprechenden Index zugreifen.

Mit Script UI bist du übrigens wesentlich flexibler ...

Schöne Grüße
Roland


als Antwort auf: [#533013]

Fußnotenverweise in einer dropdown list anzeigen

stone0203
Beiträge gesamt: 20

18. Okt 2014, 17:46
Beitrag # 3 von 7
Beitrag ID: #533188
Bewertung:
(2877 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi, danke für deine Antwort!

Ich habe jetzt versucht, das was du angesprochen hast umzusetzen aber ich bekomm das einfach nicht hin...

eine Möglichkeit wäre noch auf die dropdown list zu verzichten und die Fußnoten per GREP anzusprechen.

Hast du da eine Idee wie der GREP aussehen könnte um zb. die Fußnote mit der Nummer 4 zu suchen?


als Antwort auf: [#533016]

Fußnotenverweise in einer dropdown list anzeigen

drerol74
Beiträge gesamt: 507

19. Okt 2014, 13:43
Beitrag # 4 von 7
Beitrag ID: #533192
Bewertung:
(2717 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier ein einfaches Beispiel:

Code
var _story = app.activeDocument.stories[0], 
_footnotes = _story.footnotes,
_selectedIndex;

_selectedIndex = __selectFootnote(_footnotes.length);

if(_selectedIndex >= 0) {
alert(_footnotes[_selectedIndex].contents);
} else {
alert("Auswahl abgebrochen!");
}


function __selectFootnote(_numberOfFootnotes) {

var _footnoteIndexList = [];

for(var i=1; i<=_numberOfFootnotes; i++) _footnoteIndexList.push(i) ;

var _ui = new Window ("dialog","Fu\u00dfnoten:");
with (_ui) {
orientation = "row";
var _dropdown = add ("dropdownlist", undefined, _footnoteIndexList);
with(_dropdown) {
_dropdown.selection = 0;
}
add ("button", undefined, "Ausw\u00e4hlen", {name: "ok"});
add ("button", undefined, "Abbrechen", {name: "cancel"});
} /* END _ui window */

return (_ui.show() != 2) ? _dropdown.selection.index : -1;
} /* END function __selectFootnote */


Die Funktion __selectFootnote kannst du dann in deinem Skript einbauen.

Schöne Grüße
Roland


als Antwort auf: [#533188]

Fußnotenverweise in einer dropdown list anzeigen

stone0203
Beiträge gesamt: 20

19. Okt 2014, 16:30
Beitrag # 5 von 7
Beitrag ID: #533195
Bewertung:
(2688 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

erstmal vielen vielen dank für dein Skript, das macht genau das, was ich möchte!! :)

Ich hab es jetzt etwas angepasst, sodass es nur die Fußnoten auf der aktuellen Seite in die dropdown List einfügt. Das funktioniert wunderbar.

Jetzt möchte ich, dass die Fußnote, welche ich in der dropdown List ausgewählt habe, gelöscht wird. Hierzu habe ich im code eine Zeile angehängt app.select( app.selection[0].parentStory.insertionPoints.item( app.selection[0].parent.storyOffset.index +1 ), SelectionOptions.replaceWith);
mit der, der Cursor aus der ausgewählten Fußnote hinter die Fußnotenreferenz im Text springt. Allerdings weiß ich nicht, wie ich diese Fußnotenreferenz auch löschen kann?

wär toll, wenn du mir nochmal helfen könntest!

Code
//Schleife durch alle Textframes auf aktiver Seite 
var allFrames = app.layoutWindows[0].activePage.textFrames;
for (i=1; i<allFrames.length; i++) {

var framewnote = app.layoutWindows[0].activePage.textFrames[i]} //Textframe welcher fußnoten enthält

var _story = framewnote,
_footnotes = _story.footnotes,
_selectedIndex;

_selectedIndex = __selectFootnote(_footnotes.length);

if(_selectedIndex >= 0) {
alert("Fußnote mit dem Inhalt " + "„" + _footnotes[_selectedIndex].contents + " “" + " wurde gelöscht!");


_footnotes[_selectedIndex].texts[0].select();
app.select( app.selection[0].parentStory.insertionPoints.item( app.selection[0].parent.storyOffset.index +1 ), SelectionOptions.replaceWith);


} else {
alert("Auswahl abgebrochen!");
exit();
}


function __selectFootnote(_numberOfFootnotes) {

var _footnoteIndexList = [];

for(var i=1; i<=_numberOfFootnotes; i++) _footnoteIndexList.push(i) ;

var _ui = new Window ("dialog","Fußnote auswählen:");
with (_ui) {
orientation = "row";
var _dropdown = add ("dropdownlist", undefined, _footnoteIndexList);
with(_dropdown) {
_dropdown.selection = 0;
}
add ("button", undefined, "Ausw\u00e4hlen", {name: "ok"});
add ("button", undefined, "Abbrechen", {name: "cancel"});
} /* END _ui window */

return (_ui.show() != 2) ? _dropdown.selection.index : -1;
} /* END function __selectFootnote */



als Antwort auf: [#533192]
(Dieser Beitrag wurde von stone0203 am 19. Okt 2014, 16:37 geändert)

Fußnotenverweise in einer dropdown list anzeigen

drerol74
Beiträge gesamt: 507

19. Okt 2014, 17:12
Beitrag # 6 von 7
Beitrag ID: #533196
Bewertung:
(2671 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dafür gibt es eine eigene Methode: remove()

Code
_footnotes[_selectedIndex].remove(); 


zum Nachlesen:
http://www.indd-skript.de/...d1e495314__d1e495785

Schöne Grüße
Roland


als Antwort auf: [#533195]

Fußnotenverweise in einer dropdown list anzeigen

stone0203
Beiträge gesamt: 20

19. Okt 2014, 17:21
Beitrag # 7 von 7
Beitrag ID: #533197
Bewertung:
(2667 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
also da muss ich jetzt schon leicht schmunzeln. Ich hab jetzt über ne Stunde rumprobiert aber daran hatt ich nicht gedacht :)

also nochmals vielen Dank! funktioniert jetzt alles perfekt!!

Grüße und noch einen schönen Sonntag


als Antwort auf: [#533196]
X