Θέμα στο Συζήτηση χρήστη:P.a.a

ManosHacker (συζήτησησυνεισφορές)

Γεια σου P.a.a, μια τεχνική ερώτηση θα ήθελα. Πώς μπορεί να χρησιμοποιηθεί η παραπάνω παράμετρος, όπως εμφανίζεται εδώ: https://el.wikipedia.org/w/api.php?action=help&modules=edit ώστε να μπορεί να τοποθετήσει κανείς στην αρχή μιας σελίδας κάτι, αντί στο τέλος; Σε ευχαριστώ.

P.a.a (συζήτησησυνεισφορές)

Αυτό είναι για να επεξεργαστείς μια σελίδα μέσω κώδικα javascript, όχι για να παράγεται δυναμικά περιεχόμενο κάθε φορά που εμφανίζεται η σελίδα, όπως με ένα πρότυπο ή ένα module.

Κανονικά διαβάζεις το περιεχόμενο της σελίδας, το επεξεργάζεσαι (σβήνεις, προσθέτεις, μεταβάλεις) και το αποθηκεύσεις. Υπάρχουν περιπτώσεις όμως απλώς προσθέτεις, είτε στην αρχή είτε στο τέλος. Π.χ. ένα αρχείο καταγραφών. Αν μάλιστα είναι μεγάλο εξυπηρετεί πολύ να μην είσαι αναγκασμένος να το διαβάσεις και να το γράψεις όλο.

Δοκίμασε τον παρακάτω κώδικα

mw.loader.using(['mediawiki.api.edit']).then(function(){
  var api = new mw.Api();
  api.postWithToken( "edit", {
    action: "edit",
    title: "Χρήστης:ManosHacker/πρόχειρο/τεστ",
    prependtext: "Πριν από την αρχή\n\n"
  }).done(function(){
    console.log("Επιτυχία")
  }).fail(function(code){
    console.log("Αποτυχία με κωδικό " + code)
  })
})
ManosHacker (συζήτησησυνεισφορές)

Ευχαριστώ P.a.a. Το χρειάζομαι για να μπορώ να γυρίσω μια σελίδα σε ανακατεύθυνση, προσθέτοντας στο πάνω μέρος της τον αντίστοιχο κώδικα. Αυτό μέχρι στιγμής γίνεται με αντιγραφή του κώδικα ανακατεύθυνσης, επεξεργασία σε κώδικα, δημιουργία κενής πρώτης γραμμής, επικόλληση και δημοσίευση. Θα μπορούσε με ένα κλικ να γίνεται η τοποθέτηση και με ένα δεύτερο η επιβεβαίωση (σύνοψη επεξεργασίας και δημοσίευση). Η εφαρμογή προορίζεται για το Πρότυπο:User sandbox+/flush page που τοποθετείται σε σελίδες για να δίνει τη δυνατότητα να γίνονται αόρατες σε λίστα στην οποία οι ανακατευθύνσεις κρύβονται.

ManosHacker (συζήτησησυνεισφορές)

Τον δοκίμασα. Με το που έκανα view τη σελίδα, και σε κάθε refresh ακόμα, η σελίδα γέμιζε με το κείμενο. Το έβγαλα γρήγορα!

P.a.a (συζήτησησυνεισφορές)

Αν πρόσθεσες τον κώδικα αυτούσιο στο common.js δεν θα μπορούσε να είναι διαφορετικό το αποτέλεσμα.

ManosHacker (συζήτησησυνεισφορές)

Χρειάζεται κλικ δύο βημάτων (εντολή - επαλήθευση) αλλιώς είναι ζημιάρικο. Μπορώ να βρω manual για εφαρμογή της js στο wiki να το ψάξω;

P.a.a (συζήτησησυνεισφορές)

Αυτό που ρωτάς τώρα είναι άλλο πράγμα, πως επεμβαίνεις στο UI της σελίδας, που δεν εξαρτάται από την αρχική αρώτηση για τη χρήση του mediawiki api.

Δεν γνωρίζω να υπάρχει κάποιο manual για τέτοια αλλλά και να υπάρχει θα πρέπει να επικαιροποιείται αλλιώς είναι άχρηστο.

Θα σου δείξω πως μπορείς να το ψάξεις.

Ένα προφανές σημείο για να βρίσκει ο χρήστης την εντολή για την προσθήκη ανακατεύθυνσης είναι το πτυσσόμενο μενού που εμφανίζεται στο Περισσότρα. Αν κάνεις δεξί κλικ στο Περισσότερα και inspect θα δεις περιέχεται σε ένα div με το id p-cactions.

Αν ψάξεις γενικά για το p-cactions θα έχεις αποτελέσματα γιατί τυχαίνει το συγκεκριμένο αντικείμενο να παρουσιάζει ενδιαφέρον. Επειδή όμως αυτό δεν μπορεί να συμβαίνει πάντα, πας στο GitHub στο αποθετήριο του mediawiki και εκεί η αναζήτηση θα σου επιστρέψει ένα μόνο αποτέλεσμα στο αρχείο mediawiki.util.js που υλοποιεί το σχχετικό module (καμία σχέση με lua).

(εδώ πρέπει να παραξενευτείς πως γίνεται να μην υπάρχουν άλλες αναφορές, πόσο μάλλον που κι αυτή η μία είναι σε σχόλιο, για την ακρίβεια στην τεκμηρίωση της συνάρτησης addPortletLink, η απάντηση είναι πως το αποθετήριο περιέχει τον πυρήνα του mediawiki χωρίς καμία επέκταση, συμπεριλαμβανομένων των skin όπου και υλοποιείται το UI)

Τώρα λοιπόν ξέρεις ότι υπάρχει η συνάρτηση addPortletLink, και επιπλέον έμαθες για την ύπαρξη και άλλων portlet εκτός από p-cactions.

Απαντήστε στο "prependtext"