Wikipédia:LiveRC/Documentation/Extensions/fr
Introduction
modifierDepuis la version 0.4.2, LiveRC intègre dans son code source des hooks pour ajouter des extensions. Ces hooks permettent à des fonctions annexes d'être exécutées à des moments précis du processus, afin de modifier le comportement ou le rendu de LiveRC.
Liste des hooks existants
modifierIl existe actuellement (version 1.0.5 m) 36 hooks. Ils sont nommés selon le moment où les fonctions qu'ils contiennent sont exécutées.
Voir la liste ci-contre.
- Les fonctions exécutées via un hook post-prévisualisation
"AfterPreview?????"
acceptent en paramètre une Array. Cette array contient l'équivalent de la variable data qui est disponible après l'exécution de la requête. Elle contient donc toutes les variables nécessaires à l'affichage de la prévisualisation. Leur nom et leur nombre dépend du type de prévisualisation ciblé par le hook.- Exemple d'utilisation :
function MyFunc(Args){
var PageName = Args.page;
var User = Args.user;
var Url = Args.url;
}
LiveRC_AddHook("AfterPreviewArticle", MyFunc);
Syntaxe
modifierPour ajouter une fonction dans un hook, il suffit d’utiliser la syntaxe suivante :
LiveRC_AddHook("type", func);
"type"
: le type de hook, c'est à dire une des valeurs citées plus haut.func
: la fonction à être exécutée au moment du hook.
Afin que l'extension ne provoque pas d'erreur en dehors de la page de LiveRC, il est nécessaire de l'entourer d'un test, le plus simple étant de tester l'existence de la fonction LiveRC_AddHook()
et sa qualité de function. La syntaxe est la suivante :
if(typeof(LiveRC_AddHook)==="function") {
LiveRC_AddHook("type", func);
}
Ces extensions doivent être ajouté à la page User:<VOTRE-NOM>/LiveRCparam.js, en dehors de la partie qui est personnalisée automatiquement et délimitée par des commentaires spécifiques. Elles peuvent être directement codées dans cette page ou importées via une fonction importScript()
ou importScriptURI()
. Dans ce deuxième cas, il est même préférables de les déclarer en tant qu'extensions disponibles dans le menu de personnalisation (voir Wikipédia:LiveRC/Documentation/Configuration/fr#Extensions).
Variables et fonctions utiles
modifierLiveRC_addNeededMessages(NomDuMessage)
- Fonction permettant d'ajouter un messages système nécessaire à LiveRC. Si une extension a besoin d'un message qui n'est pas encore demandé, il est nécessaire de l'ajouter de façon à ce qu'une requête ait lieu au démarrage de LiveRC pour en récupérer la valeur. Exemple :
LiveRC_addNeededMessages("NomDuMessage");
lrcGetMediawikiMessage(Message, translate, replaceItems)
lrcGetNamespaceName(nsnumber, translate)
lrcIsExtensionInstalled(ExtensionName)
lrcUserHasRight(Right)
lrcMakeParam(ParamID)
lrcMakeOption(OptionID)
lrcMakeText(TextID)
lrcMakeParamDescription(TextID)
lrcMakeIcon(ID)
lrcGetDiffLink(rc)
lrcGetArticleLink(rc)
lrcGetHistoryLink(rc)
lrcGetEditLink(rc)
lrcGetMoveLink(rc, def)
lrcGetDeleteLink(rc, def)
lrcGetProtectLink(rc, def)
lrcGetStableLink(rc, def)
lrcGetWatchersIcon(rc, def)
UserIsIP(user)
LiveRC_ManageIPv6(user)
lrcGetUserLink(user, linkstyle, linkclass)
lrcGetUserTalkLink(rc)
lrcGetUserContribsLink(rc)
lrcGetBlockLink(rc, def)
lrcCreateWatchPageLink(title, watched, type, trID)
lrcCreateWatchUserLink(user, watched, type, trID)
lrcCreateHideUserLink(user, hidden, type, trID)
lrcGetPageURL(page)
lrcGetUglyPageURL(page, params)
lrcGetOtherPagename(page)
lrcEscapeStr(str)
lrcEscapeStrHTML(str)
lrcToggleNextSibling(Link)
lrcTogglePreviousSibling(Link)
lrcHasClass(node, className)
lrcAddClass(node, className)
lrcRemoveClass(node, className)
lrcGetElementsByClass(searchClass, node, tag)
lrcGetObjectLength(obj)
lrcGetArgFromURL(URL, Arg)
getElementWithId(elementId, elementTagName, elementParentNode)
getNamespaceInfoFromPage(Page, ToReturn)
LiveRC_alert(text)
LiveRC_confirm(text, onOK, onCancel)
LiveRC_prompt(text, onOK, onCancel, suggestion)
LiveRC_alert_setOpacity(id, removefunc, diff, delay)
LiveRC_alert_stopOpacity(id)
LiveRC_GetScreenHeight()
LiveRC_GetScreenWidth()
LiveRC_SetMoveZone(anchorNode, elementsToMove)
LiveRC_SetVerticalResizeZone(anchorNode, ToResizeNodes, containerNode)
LiveRC_SetTotalResizeZone(anchorNode, elementsToResize, Container)
LiveRC_Suggest_AddPageSuggestion(Args)
LiveRC_Suggest_AddUserSuggestion(Args)
AddButtonToControlBar(Button, AddSeparator)
createChecklistMenu(ID, Lines)
lrcHasState(state, thisState)
lrcAddState(state, thisState)
lrcRemoveState(state, thisState)
lrcAddToHistory(Type, Params, URL, Text)
getPageContent(Req, ID)
getFormFromThisInput(Input)
getFormParams(Form, searchedname)