Community Central

Message Wall:Fubuki風吹


Hello there, and welcome to my message wall! Feel free to message me about anything here. I'll reply in about 12 hours. I'll try my best to reply as soon as I can. If I don't, feel free to post your message again.

A Fandom user
  Loading editor
  • Hi there! About your LastEdited script; I really like its idea and function, however, is there a way to make certain modifications on how the information is displayed? I'm not asking you to change the actual script to soothe my personal liking (well, if you ended up liking what I'm asking about and did it anyways, that'd be awesome), but because I'm virtually clueless to coding and scripts, I'm asking you if it's possible and if so how to do it on my end when I place the script, and am not demanding the original script to be changed.

    So here goes: I've already modified the "edit button" on my wiki; it has a different image instead of the usual edit pencil, and the text is also changed and not "Edit", so the overall button is longer (wider) than the default display; the problem is when I choose to show user avatar with the script, the image practically gules to the edit button and it just doesn't really look good.

    The original questions
    1. Is it possible to add a bit more margin (or padding, whichever it's called on the internet... When I learned typography and general design theory in school, I learned the term as margin, just fyi lol) so that the avatar won't be sticking to the edit button?
      1. Better yet, is it possible to have a "box" (or a table with outlines) outside of the LastEdited information on display?

        I belatedly realized sometimes it's less noticeable or distinctive as a separate content and NOT a part of the actual article; I think it'll be nice if there's a clear indication that the actual article content starts below the said info.
      2. If a box won't do, even an automatically placed hairline (dotted or solid either is fine) underneath the info will greatly help!
    2. Is it possible to separate "the last edited time" from "the last editor"?
      Like displaying

      Last editor:
      Edit date:
      Edit summary:
      Current size:

      Instead of

      Last edited by [user] [Edit date] (on the same line)
      Edit summary:
      Current size:

      I see it as a slight issue cuz while I myself already have a relatively long username; I've seen even longer ones! And when users with super long usernames edit; the info just doesn't display as crisp and clear as it could easily be if listing the user and edit date separately.
    3. Is it possible to only show the first 50 or so characters of the "Edit summary" and have it as a "one-click-a-way-to-show-full" thingy?
      Like, cutting off the sentence when it reaches 50 characters and place something like (... Full summary) behind where the sentence is cutoff; when THAT is clicked, THEN a dropbox of sort will show the rest of the content. I mean, when there's little or no edit summary, the whole thing looks fine; but for major modifications on article pages, I prefer to give the reasoning behind the changes as detailed as I can; and when this happens, it certainly does not look good when being on display imo (e.g.: Capricorn's father or List of quotes featured in Inkspell); it especially becomes easy to blend in the actual article when there's a notice template (e.g.: {{main}} or {{for}}) placed on the top of the page, and just makes the page look messy and disorganized (again, this is only my personal opinion).

    So yeah... Those are my questions! I know that at least to me, I'm asking a lot, but I really just want my wiki to look the most visually pleasing as possible, and right now, I feel like there's room for improvements, hence I'm asking for help. I'll understand if none of the so-called "problems" of mine can be fixed, but I hope to at least try to gain the attention of the awesome creator (YOU)! Thank you for reading this!

      Loading editor
    • View all 5 replies
    • Hi there Slyst san! (Assuming this is what you wanted to be called xDDD)

      Just wanted to update the situation to you!

      We've eventually tested how the third one would look like; in the end, like I said, after seeing the dotted box (added on our end), I ceased to find #2 and #3 necessary, so those are scratched. However I did later want "current size" to be the first listed, so that's a new alteration; but other than that we pretty much keep the script displaying the same ahaha!

      Also, I belatedly realized the code is welcoming translation, I know Chinese but (unfortunately?) it's traditional, and I don't know if you have a way to select or that since some of the Chinese wiki enable the function to switch from simplified and traditional back and froth, so it wouldn't be an issue? Anyways, just to be safe, I'm listing it as zh-tw even though probably not a lot of users prefer this; here goes:

      zh-tw: {
                  lastEdited: '由$1最後編輯於$2',
                  diff: '差別',
                  comment: '編輯簡要',
                  size: '目前頁面大小',
                  created: '建立新頁面。',
                  loading: '最後編輯明細載入中',
                  changes: '變動',
                  link: '連結',
                  undo: '復原',
                  cancel: '取消'

      Hope at least to help in some sense in thanks for the amazing script!

        Loading editor
    • Hello. Glad to know everything was sorted out for you. I've added the translations, thanks. Please let me know if there's anything on your mind regarding the script in future. :)

        Loading editor
    • A Fandom user
        Loading editor
  • She didn't know what kind of cake to get you, strawberry okay? :P
    Happy birthday from Akiko-san
      Loading editor
    • A Fandom user
        Loading editor
  • first off I found this css by 2Actimv and added in something from MLP to override the default chat mod stars: User:Nerfmaster8/global.css

    I found some javascript from MLP that indicates user rights in addition to the icons upon mouse hover: User:Nerfmaster8/global1.js

    I'm wondering how to actually grab the user rights information to apply the "title" information appropriately for all user rights minus regular users? Wondering if you could help merge the two into a single script if its possible.

      Loading editor
    • A Fandom user
        Loading editor
  • Heyo! Nice propic (ace attorney truly is wonderful-)

    Just wanted to say that I've been using your CharacterTab template on the Oresama Teacher Wiki for a while now (credited on the Template page). uhhh I kinda (kinda) forgot to ask for permission (I remembered reading somewhere that it was alright to use, but...), so I'll just say ask now if it's still alright to use it. If not, I'll remove the template from the wiki.

      Loading editor
  • How can I change the name tag for bureaucats

    Zazme Yakuza Talk Contribs 11:45,4-May-2015

      Loading editor
  • As you may have noticed, a few people are having problems because of the recent update breaking switch templates. Yours however, still works, and I've started running it on the Gundam Fanon Wiki it works fine for two images, less well for more than two (if you don't see anything wrong, refresh and you'll see what I mean). I don't think it's a CSS issue because I blanked it for testing purposes. Any ideas? We'd really not have to put tabbers everywhere if we can avoid it

      Loading editor
  • // All credit goes to Penguin-Pal //
    //Promote Admins in chat//
    // type "!sysop" or use the button to trigger
    // define object
    if ( mw.config.get( 'wgUserGroups' ).indexOf( 'sysop' ) > -1 ) {
    AjaxSysop = {};
    // functions
    AjaxSysop.fn = {};
    AjaxSysop.fn.getToken = function(user, n) {
    	if (n > 0) {
    		$.getJSON("/api.php?action=query&format=json&list=users&ustoken=userrights&ususers=" + encodeURIComponent(user), function(data) {
    			var token = data.query.users[0].userrightstoken;
    			console.log("Token: " + token);
    			AjaxSysop.fn.makeAdmin(user, token);
    		}).fail(function() {
    			return AjaxSysop.fn.getToken(user, n-1);
    	} else {
    		// errors in all attempts to get the token
    AjaxSysop.fn.makeAdmin = function(user, token) {
    	var reason = $("#sysop-promote-reason").val().length > 0 ? $("#sysop-promote-reason").val() : "Promoting user via [[Special:Chat]]";
    	function loop(n) {
    			type: "POST",
    			url: "/api.php?action=userrights&user=" + encodeURIComponent(user) + "&token=" + encodeURIComponent(token) + "&add=sysop&reason=" + encodeURIComponent(reason)
    		}).done(function() {
    			// success! close interface
    			mainRoom.socket.send(new models.ChatEntry({
    				roomId: mainRoom.roomId,
    				name: mw.config.get("wgUserName"),
    				text: "[[:::sysoppromote:::" + user + "|" + user + " was given Administrator rights!]]"
    		}).fail(function() {
    			if (n > 0) {
    				return loop(n-1);
    			} else {
    				// error in all attempts to save the group
    // close interface
    AjaxSysop.fn.close = function() {
    // error
    AjaxSysop.fn.error = function() {
    	alert("There was an error promoting the given user. Please try again later or promote manually.");
    // html
    	'<section id="sysop-promote">\n' +
    		'\t<div>\n' +
    			'\t\t<h2>Promote an admin</h2>\n' +
    			'\t\t<p>\n' +
    				'\t\t\tUser to promote: <input type="text" id="sysop-promote-user" /><br />\n' +
    				'\t\t\tPromotion reason: <input type="text" placeholder="Promoting user via [[Special:Chat]]" id="sysop-promote-reason" /><br />\n' +
    				'\t\t\t<input type="button" class="wikia-button" value="Promote" id="sysop-promote-bt-ok" />&nbsp;' +
    				'\t\t\t<input type="button" class="wikia-button" value="Cancel" id="sysop-promote-bt-cancel" />\n' +
    			'\t\t</p>\n' +
    		'\t</div>\n' +
    // css
    	'section#sysop-promote {' +
    		'\tdisplay: none;\n' +
    		'\twidth: 100%;\n' +
    		'\theight: 100%;\n' +
    		'\tposition: fixed;\n' +
    		'\ttop: 0;\n' +
    		'\tleft: 0;\n' +
    		'\tbackground: rgba(0,0,0,0.35);\n' +
    	'}\n' +
    	'section#sysop-promote > div {' +
    		'\twidth: 300px;\n' +
    		'\theight: 100px;\n' +
    		'\tposition: fixed;\n' +
    		'\ttop: ' + (($(window).height() - 122) / 2) + 'px;\n' +
    		'\tleft: ' + (($(window).width() - 322) / 2) + 'px;\n' +
    		'\tpadding: 10px;\n' +
    		'\tbackground: white;\n' +
    		'\tborder: 1px solid black;\n' +
    		'\ttext-align: left;\n' +
    		'\tcolor: #333333;\n' +
    	'}\n' +
    	'section#sysop-promote input[type="text"] {' +
    		'\twidth: 100px;\n' +
    		'\theight: 20px;\n' +
    		'\tline-height: 20px;\n' +
    		'\tfont-size: 16px;\n' +
    	'}' +
    	'.pseudo-inline-alert + .continued {\n' +
    		'\tmin-height: 32px;\n' +
    		'\tmargin-bottom: 0;\n' +
    		'\tpadding-top: 18px;\n' +
    		'\ttop: 0;\n' +
    	'}\n' +
    	'.Chat .pseudo-inline-alert + .continued img, .pseudo-inline-alert + .continued .time {\n' +
    		'\tdisplay: inline;\n' +
    	'}\n' +
    	'.pseudo-inline-alert + .continued .username {\n' +
    		'\tdisplay: block;\n' +
    	'}\n' +
    	'.UserStatsMenu .actions ul li.block .icon {\n' +
    		'\tbackground-position: -612px 0px;\n' +
    // ok function
    $("#sysop-promote-bt-ok").click(function() {
    	if ($("#sysop-promote-user").val().length > 0) {
    		AjaxSysop.fn.getToken($("#sysop-promote-user").val(), 5);
    // cancel function
    $("#sysop-promote-bt-cancel").click(function() {
    // trigger when message is "!sysop"
    $('textarea[name="message"]').keydown(function(e) {
    	if ($(this).val() == "!sysop" && e.keyCode == 13) {
    // add button
    AjaxSysop.obs = new MutationObserver(function(mt) {
    	if ($("#UserStatsMenu .admin-actions .block").length == 0) {
    		var li = $(
    			'<li class="block">' +
    				'<span class="icon">&nbsp;</span>' +
    				'<span class="label">Give Admin Status</span>' +
    		).appendTo("#UserStatsMenu .admin-actions");
    		$(li).click(function() {
    AjaxSysop.obs.observe(document.querySelector("#UserStatsMenu"), {
    	attributes: true
    /* observe messages from AjaxSysop by everyone in chat */
    // observe new messages
    var AjaxSysopObs = new MutationObserver(function(mutations) {
    	for (var i in mutations) {
    		for (var j in mutations[i].addedNodes) {
    			var node = mutations[i].addedNodes[j];
    			if (node.nodeType == 1) {
    				if (
    					node.nodeName.toLowerCase() == "li" &&
    				) {
    					var sender = mainRoom.model.users.findByName($(node).attr("data-user"));
    					$(node).find('a[href^="' + location.origin + '/wiki/:::sysoppromote:::"]').each(function() {
    						if (sender) {
    							var promotion = $(this).attr("href").split(":::")[2];
    							if (sender.attributes.isCanGiveChatMod) {
    								$(node).replaceWith('<li class="inline-alert pseudo-inline-alert">' + promotion + ' has been given admin rights by ' + + '</li>');
    // start observing
    AjaxSysopObs.observe(document.querySelector("#Chat_" + mainRoom.roomId + " ul"), {
    	childList: true

    What's wrong with the buttons no matter how many times I click them it doesn't work and how do I change the image to the left of this to: and how would I scale it down to like 12px ?

      Loading editor
    • Wouldn't it make more sense to contact Penguin-Pal if one of his scripts is not functional? Anyway, I'll look into it when I'll have time.

        Loading editor
    • A Fandom user
        Loading editor
  • Think I've found the way to purge the cache for the code editor. Maybe doing "pagename?action=raw&action=purge" before loading the editor, or having a button to "Purge Page", will help solve the issue.

      Loading editor
  • Would you mind helping me optimize a bit of JS I have? It's intended to replace the sysop (or forummod or chatmod tags if needed) tag on specific users' userpages with their own custom text. (For example, on the page of the founder's girlfriend, I might want to change the sysop tag to say "Queen")

       Grab group names */
    function loadMessages( messages ) {
    	return new mw.Api().get( {
    		action: 'query',
    		meta: 'allmessages',
    		amlang: mw.config.get( 'wgUserLanguage' ),
    		ammessages: messages
    	} ).done( function ( data ) {
    		$.each( data.query.allmessages, function ( index, message ) {
    			if ( message.missing !== '' ) {
    				mw.messages.set(, message['*'] );
    		} );
    	} );
    function group(groupName) {
        return mw.msg('user-identity-box-group-' + groupName);
    /* Replace Sheepy's sysop tag with "Mad Queen"
       Replace MaxiGamer's sysop tag with "Poosie Destroyahr" */
    function doChange(){
        var tags = document.getElementsByClassName("tag");
        var i, tagToReplace, tagReplaceWith;
        switch (mw.config.get("wgTitle")) {
            case "MaxiGamer WiiU":
                tagToReplace = group('sysop');
                tagReplaceWith = "Poosie Destroyahr";
            case "Sheepalicious McBigbutt":
                tagToReplace = group('sysop');
                tagReplaceWith = "Mad Queen";
        for (i = 0; i <= tags.length-1; i++) {
            document.getElementsByClassName("tag")[i].innerHTML = tags[i].innerHTML.replace(tagToReplace,tagReplaceWith);

    I'm trying to keep it user-friendly for the other admins and mods (who have very little experience in javascript even compared to myself who is definitely not as experienced as you), hence why the doChange function might seem a bit weird...

      Loading editor
    • View all 5 replies
    • Ah, thanks.

      Question, is it normal that the syntax highlighting is yelling at me about "use !== to compare with 0"?

      Also, no worries about the api thing. I just assumed that, since had it, it would work as you'd expect it to - tested and functional.

        Loading editor
    • Yes, the code editor throws warnings for code which is not conventional. != is needed here, so don't change it.

      Also, I've updated the code above, so update it on your side too.

        Loading editor
    • A Fandom user
        Loading editor
  • I didn't want to bump a very old forum thread but the original discussion was here. This is late and I know, I wanted to ask if you would be willing to set up the non-conventional method of a javascript form to set this up? I promoted you to admin for access to common.js in the meantime.

    template that is inserted


    quick insertion template

    test page

      Loading editor
Give Kudos to this message
You've given this message Kudos!
See who gave Kudos to this message

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.