It there any option to disable tag-it functionality, I just want to copy-paste keywords (via quicksubmit plugin). Keywords are separated by semicolon (;). I’ve read some of the answers given regarding that problem / bug / feature but I would like to make a quickest possible solution.
I’m using OJS 3.3.0.6.
tnx.
Hi @Vedran_Serbu,
I’m afraid there’s no way around using tag-it for 3.3.0-x, unless you use something better suited to batch imports like the XML import/export toolkit. We’ll hopefully replace tag-it with something better in future releases, as it does have UX limitations.
Regards,
Alec Smecher
Public Knowledge Project Team
1 Like
I’ve found a solution for all those interested - a small program developed in Autohotkey. Program does the following:
- As usual, you can copy all keywords from source text with ctrl-c or by selecting and using copy command from Windows.
- Place your cursor in keywords field when you’re submitting keywords in OJS. Press CTRL-i . The program should automatically paste all individual keywords. The only condition is that original keywords sholud be separated with comma.
- When all keywords are pasted, program inform you that there is no more keywords in clipboard
- Repeat
This is original script from autohotkey if you want to compile it by yourself. I can share here an .exe file - ready program that does this, but I dont know any file share service other than google drive share - if it is OK with admins of the forum, I’ll post it here, for now, here is the source:
^i::
; Initialize parts array if not already initialized
if (!initialized) {
clipboardText := Clipboard
; Check if clipboard is empty
if clipboardText =
{
MsgBox, Clipboard is empty.
return
}
; Split the text by commas and store in parts array
Loop, Parse, clipboardText, `,
{
parts.Push(A_LoopField)
}
initialized := true
}
; Check if there are parts to paste
if (parts.MaxIndex() > 0) {
; Get the first part
part := parts.RemoveAt(1)
; Set the clipboard to the first part and paste it
Clipboard := part
Sleep, 50 ; Small delay to ensure clipboard is updated
Send ^v
Sleep, 50 ; Small delay to ensure paste completes
Send {Enter} ; Send Enter key after pasting
} else {
MsgBox, No more parts to paste. Ready for new content.
; Reset the initialization state and clear parts array
parts := []
initialized := false
}
return
1 Like
This topic was automatically closed after 12 days. New replies are no longer allowed.