<link href="../fonts/font.css" rel="stylesheet" type="text/css">

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
		<id>https://wiki.imaroof.ir/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-userMessages.js</id>
		<title>مدیاویکی:Gadget-userMessages.js - تاریخچهٔ ویرایش‌ها</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.imaroof.ir/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-userMessages.js"/>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-userMessages.js&amp;action=history"/>
		<updated>2026-08-02T06:37:48Z</updated>
		<subtitle>تاریخچهٔ ویرایش‌های این صفحه در ویکی</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-userMessages.js&amp;diff=45&amp;oldid=prev</id>
		<title>Admin: صفحه‌ای تازه حاوی «/* ==Automatic user messages == Installing this script as described on the talk page will give you links in the toolbox for all pages in th...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-userMessages.js&amp;diff=45&amp;oldid=prev"/>
				<updated>2016-02-27T11:34:58Z</updated>
		
		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «/* ==Automatic user messages == Installing this script as described on the talk page will give you links in the toolbox for all pages in th...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/*&lt;br /&gt;
==Automatic user messages ==&lt;br /&gt;
Installing this script as described on the talk page will give you links in the toolbox&lt;br /&gt;
for all pages in the User talk: namespace, that say 'Please tag', 'Please name', and&lt;br /&gt;
'Please link'. Clicking any of the buttons will add one of the following templates to&lt;br /&gt;
the user's talk page, signed by you:&lt;br /&gt;
*{{tl|Welcome}}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Main code by [[User:Siebrand]], derived from [[MediaWiki:Quick-delete.js]] by&lt;br /&gt;
[[:en:User:Jietse Niesen|Jietse Niesen]], [[User:pfctdayelise|pfctdayelise]] and&lt;br /&gt;
[[User:Alphax|Alphax]].&lt;br /&gt;
 &lt;br /&gt;
Code stolen from Commons by [[User:ShakataGaNai]] for Wikinews; and then stolen from Wikinews by [[User:Diego Grez]] for MediaWiki.org&lt;br /&gt;
 &lt;br /&gt;
===TODO===&lt;br /&gt;
* Do not add a trailing /&amp;lt;langcode&amp;gt; at the end of the subst'ed template, as they now (almost) all use the autotranslation mechanism (see [[Commons:Template_i18n/User_templates]])&lt;br /&gt;
*/&lt;br /&gt;
// &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
//moved here from commons&lt;br /&gt;
function getParamValue(paramName, url) { if (typeof url == &amp;quot;undefined&amp;quot;) { url = document.location.href; } var cmdRe = RegExp(&amp;quot;[&amp;amp;?]&amp;quot; + paramName + &amp;quot;=([^&amp;amp;]*)&amp;quot;); var m = cmdRe.exec(url); if (m) { try { return decodeURIComponent(m[1]); } catch (someError) { } } return null; }&lt;br /&gt;
//end moved here from commons&lt;br /&gt;
// Configuration&lt;br /&gt;
 &lt;br /&gt;
// Should the edits be saved automatically?&lt;br /&gt;
if(window.template_autosave == false){}else{ template_autosave = true; }&lt;br /&gt;
 &lt;br /&gt;
// Template Name&lt;br /&gt;
var uTemplate = new Array(24)&lt;br /&gt;
uTemplate[0] = 'Welcome'&lt;br /&gt;
uTemplate[1] = 'Vandalism'&lt;br /&gt;
uTemplate[2] = 'Spam'&lt;br /&gt;
uTemplate[3] = 'Scope'&lt;br /&gt;
uTemplate[4] = 'Test'&lt;br /&gt;
uTemplate[5] = 'Not an encyclopedia'&lt;br /&gt;
uTemplate[6] = 'Not wikibooks'&lt;br /&gt;
uTemplate[7] = 'User:Jasper Deng/spambotblock|1={{subst:REVISIONUSER}}|2='&lt;br /&gt;
uTemplate[8] = 'User:Jasper Deng/indef|1=spamming|2='&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
// Text to be shown in Toolbox&lt;br /&gt;
var uText = new Array(24)&lt;br /&gt;
uText[0] = &amp;quot;Welcome&amp;quot;&lt;br /&gt;
uText[1] = &amp;quot;Vandalism&amp;quot;&lt;br /&gt;
uText[2] = &amp;quot;Spam warning&amp;quot;&lt;br /&gt;
uText[3] = &amp;quot;Offtopic&amp;quot;&lt;br /&gt;
uText[4] = &amp;quot;Test&amp;quot;&lt;br /&gt;
uText[5] = &amp;quot;Not Wikipedia&amp;quot;&lt;br /&gt;
uText[6] = &amp;quot;Not Wikibooks&amp;quot;&lt;br /&gt;
uText[7] = &amp;quot;spamBot Block&amp;quot;&lt;br /&gt;
uText[8] = &amp;quot;indef blocked&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
// Mouseover help text for Toolbox&lt;br /&gt;
var uHelp = new Array(24)&lt;br /&gt;
uHelp[0] = &amp;quot;Welcome a new user&amp;quot;&lt;br /&gt;
uHelp[1] = &amp;quot;Vandalism warning.&amp;quot;&lt;br /&gt;
uHelp[2] = &amp;quot;Spam warning&amp;quot;&lt;br /&gt;
uHelp[3] = &amp;quot;Adding off-topic content.&amp;quot;&lt;br /&gt;
uHelp[4] = &amp;quot;Testing outside the sandbox&amp;quot;&lt;br /&gt;
uHelp[5] = &amp;quot;Adding encyclopedic content&amp;quot;&lt;br /&gt;
uHelp[6] = &amp;quot;Adding Wikibooks-esque content&amp;quot;&lt;br /&gt;
uHelp[7] = &amp;quot;spamBot block&amp;quot;&lt;br /&gt;
uHelp[8] = &amp;quot;indef blocked&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
template_reason = &amp;quot;The reason?&amp;quot;;&lt;br /&gt;
template_pagename = &amp;quot;The page name?&amp;quot;;&lt;br /&gt;
template_who = &amp;quot;Who does this IP belong to?&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
// Site info&lt;br /&gt;
scriptPath = &amp;quot;/w/index.php&amp;quot;;&lt;br /&gt;
prettyPath = &amp;quot;/wiki/&amp;quot;;&lt;br /&gt;
wikiHostname = &amp;quot;www.mediawiki.org&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
// From [[en:Wikipedia:WikiProject User scripts/Scripts/addLink]]&lt;br /&gt;
function addLink(where, url1, name1, id, title, key, after, url2, name2)&lt;br /&gt;
{&lt;br /&gt;
    //* where is the id of the toolbar where the button should be added;&lt;br /&gt;
    //   i.e. one of &amp;quot;p-cactions&amp;quot;, &amp;quot;p-personal&amp;quot;, &amp;quot;p-navigation&amp;quot;, or &amp;quot;p-tb&amp;quot;.&lt;br /&gt;
    //&lt;br /&gt;
    //* url1 is the URL which will be called when the button is clicked.&lt;br /&gt;
    //   javascript: urls can be used to do more complex things.&lt;br /&gt;
    //&lt;br /&gt;
    //* name1 is what will appear as the name of the button.&lt;br /&gt;
    //&lt;br /&gt;
    //* id is the id of the button; it's best to define one.&lt;br /&gt;
    //   Use a prefix to make sure its unique. Optional.&lt;br /&gt;
    //&lt;br /&gt;
    //* title is the tooltip title that gives a longer description&lt;br /&gt;
    //   of the button; if you define a accesskey, mention it here. Optional.&lt;br /&gt;
    //&lt;br /&gt;
    //* key is the char you want for the accesskey. Optional.&lt;br /&gt;
    //&lt;br /&gt;
    //* after is the id of the button you want to follow this one. Optional.&lt;br /&gt;
    //&lt;br /&gt;
    //* url2 is a second url to add. Optional&lt;br /&gt;
    //&lt;br /&gt;
    //*name2 is the name of the second url; defaults to name1. Optional&lt;br /&gt;
    var na = document.createElement('a');&lt;br /&gt;
    na.href = url1;&lt;br /&gt;
    na.appendChild(document.createTextNode(name1));&lt;br /&gt;
    var li = document.createElement('li');&lt;br /&gt;
    if(id) li.id = id;&lt;br /&gt;
    li.appendChild(na);&lt;br /&gt;
 &lt;br /&gt;
    if (url2) { //Another link, brother of the previous.&lt;br /&gt;
       var na = document.createElement('a');&lt;br /&gt;
       na.href = url2;&lt;br /&gt;
       na.appendChild(document.createTextNode(name2 ? name2 : name1));&lt;br /&gt;
       li.appendChild(document.createTextNode(&amp;quot; · &amp;quot;)); //separate them a bit&lt;br /&gt;
       li.appendChild(na);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    var tabs = document.getElementById(where).getElementsByTagName('ul')[0];&lt;br /&gt;
    if(after) {&lt;br /&gt;
        tabs.insertBefore(li,document.getElementById(after));&lt;br /&gt;
    } else {&lt;br /&gt;
        tabs.appendChild(li);&lt;br /&gt;
    }&lt;br /&gt;
    //akeytt is deprected and does nothing. who cares about access keys anyhow.&lt;br /&gt;
    /*if(id &amp;amp;&amp;amp; ta) { //ta does not exist in vector? &lt;br /&gt;
        if(key &amp;amp;&amp;amp; title) { ta[id] = [key, title]; }&lt;br /&gt;
        else if(key) { ta[id] = [key, '']; }&lt;br /&gt;
        else if(title) { ta[id] = ['', title];}&lt;br /&gt;
    }&lt;br /&gt;
    // re-render the title and accesskeys from existing code in wikibits.js&lt;br /&gt;
    akeytt();*/&lt;br /&gt;
    return li;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// Add the template&lt;br /&gt;
function template_mark(talkpage_fakeaction, message_lang) {&lt;br /&gt;
  //if (!message_lang) return; //User pressed cancel&lt;br /&gt;
 &lt;br /&gt;
  //Now we assume message templates to be properly autotranslated&lt;br /&gt;
  if (message_lang) langparam='&amp;amp;template_lang=' + message_lang;&lt;br /&gt;
  else langparam='';&lt;br /&gt;
 &lt;br /&gt;
  var pagename = encodeURIComponent(wgPageName);&lt;br /&gt;
  var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;&lt;br /&gt;
  document.location = editlk + '&amp;amp;fakeaction=' + talkpage_fakeaction + langparam + '&amp;amp;template_type=1';&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// Add template to user talk page&lt;br /&gt;
function template_addTemplate(template) {&lt;br /&gt;
  if (getParamValue('template_lang')) {&lt;br /&gt;
          template = template + '/' + getParamValue('template_lang');&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  var txt = '{{subst:' + template + '}}';&lt;br /&gt;
  document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + '\n' + txt + '\n~~~~';&lt;br /&gt;
  //  the edit summary for when you mark the image. You can change it if you want.&lt;br /&gt;
  document.editform.wpSummary.value = 'Adding template \&amp;quot;' + template + '\&amp;quot; to inform user. ([[User:Diego Grez/UserMessages.js|using UserMessages]])';&lt;br /&gt;
  if (template_autosave) document.editform.wpSave.click();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// Add the template&lt;br /&gt;
function template_mark2(talkpage_fakeaction, media_name, can_handle_empty_parameter, add_namespace) {&lt;br /&gt;
  if (media_name == null) return; // User pressed cancel&lt;br /&gt;
  if (media_name == '' &amp;amp;&amp;amp; can_handle_empty_parameter != 1) return; // User did not supply parameter and template cannot handle that&lt;br /&gt;
  // Parameter handling for special cases&lt;br /&gt;
  if (add_namespace &amp;amp;&amp;amp; media_name.length &amp;gt; 0) media_name = 'File:' + media_name;&lt;br /&gt;
 &lt;br /&gt;
  var pagename = encodeURIComponent(wgPageName);&lt;br /&gt;
  var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;&lt;br /&gt;
  document.location = editlk + '&amp;amp;fakeaction=' + talkpage_fakeaction + '&amp;amp;media_name=' + encodeURIComponent (media_name) + '&amp;amp;template_type=2';&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// Add template to user talk page&lt;br /&gt;
function template_addTemplate2(template) {&lt;br /&gt;
  if (getParamValue('media_name')) {&lt;br /&gt;
          template = template + '|' + getParamValue('media_name');&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  var txt = '{{subst:' + template + '}}';&lt;br /&gt;
  document.editform.wpTextbox1.value = document.editform.wpTextbox1.value + '\n' + txt + '\n~~~~';&lt;br /&gt;
  //  the edit summary for when you mark the image. You can change it if you want.&lt;br /&gt;
  document.editform.wpSummary.value = 'Adding template \&amp;quot;' + template + '\&amp;quot; to inform user. ([[User:Diego Grez/UserMessages.js|using UserMessages]])';&lt;br /&gt;
  if (template_autosave) document.editform.wpSave.click();&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
// Do the thing with the stuff here.&lt;br /&gt;
function template_onload() {&lt;br /&gt;
  if (wgNamespaceNumber == 3) { //NS_USERTALK&lt;br /&gt;
    // new section&lt;br /&gt;
    try {&lt;br /&gt;
    if (skin === 'vector') {&lt;br /&gt;
        if (window.useFancyVectorDropdown || window.useFancyVectorDropdown === undefined) {&lt;br /&gt;
            try {&lt;br /&gt;
                makeVectorFancySection();&lt;br /&gt;
                useFancyVectorDropdown = 'done'; //this is for debug. can remove&lt;br /&gt;
            }&lt;br /&gt;
            catch (e) {&lt;br /&gt;
                document.getElementById('panel').innerHTML += '&amp;lt;div id=&amp;quot;p-Notify&amp;quot; class=&amp;quot;portal&amp;quot;&amp;gt;&amp;lt;h5 lang=&amp;quot;en&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;Notify&amp;lt;/h5&amp;gt;&amp;lt;div class=&amp;quot;body&amp;quot;&amp;gt;\n &amp;lt;ul&amp;gt; &amp;lt;/ul&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;';&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            document.getElementById('panel').innerHTML += '&amp;lt;div id=&amp;quot;p-Notify&amp;quot; class=&amp;quot;portal&amp;quot;&amp;gt;&amp;lt;h5 lang=&amp;quot;en&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;Notify&amp;lt;/h5&amp;gt;&amp;lt;div class=&amp;quot;body&amp;quot;&amp;gt;\n &amp;lt;ul&amp;gt; &amp;lt;/ul&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;';&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
    if (skin === 'monobook') {&lt;br /&gt;
        document.getElementById('column-one').innerHTML += '&amp;lt;div id=&amp;quot;p-Notify&amp;quot; class=&amp;quot;portlet&amp;quot;&amp;gt; &amp;lt;h5 lang=&amp;quot;en&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt;Notify&amp;lt;/h5&amp;gt; &amp;lt;div class=&amp;quot;pBody&amp;quot;&amp;gt;	&amp;lt;ul&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;	&amp;lt;/div&amp;gt;';&lt;br /&gt;
    }&lt;br /&gt;
    } catch (e) {} //ignore errors and just use tb if they happen.&lt;br /&gt;
    var portlet = (document.getElementById('p-Notify') ? 'p-Notify' : 'p-tb');&lt;br /&gt;
 &lt;br /&gt;
    addLink(portlet, 'javascript:template_mark(\'0\')', uText[0], 'mark-warn', uHelp[0], null, null);&lt;br /&gt;
    addLink(portlet, 'javascript:template_mark(\'1\')', uText[1], 'mark-warn', uHelp[1], null, null);&lt;br /&gt;
    addLink(portlet, 'javascript:template_mark(\'2\')', uText[2], 'mark-warn', uHelp[2], null, null);&lt;br /&gt;
    addLink(portlet, 'javascript:template_mark(\'4\')', uText[4], 'mark-warn', uHelp[4], null, null);&lt;br /&gt;
    addLink(portlet, 'javascript:template_mark(\'5\')', uText[5], 'mark-warn', uHelp[5], null, null);&lt;br /&gt;
    addLink(portlet, 'javascript:template_mark(\'6\')', uText[6], 'mark-warn', uHelp[6], null, null);&lt;br /&gt;
    addLink(portlet, 'javascript:template_mark(\'7\')', uText[7], 'mark-warn', uHelp[7], null, null);&lt;br /&gt;
    addLink(portlet, 'javascript:template_mark(\'8\')', uText[8], 'mark-warn', uHelp[8], null, null);&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
  }&lt;br /&gt;
// Important thing and stuff above.&lt;br /&gt;
 &lt;br /&gt;
  var fakeaction = getParamValue('fakeaction');&lt;br /&gt;
  var template_type = getParamValue('template_type');	// Fetch what template to add&lt;br /&gt;
 &lt;br /&gt;
  var action_idx = -1;&lt;br /&gt;
  try {&lt;br /&gt;
    action_idx = parseInt (fakeaction, 10);&lt;br /&gt;
  } catch (some_error) {&lt;br /&gt;
    action_idx = -1;    &lt;br /&gt;
  }&lt;br /&gt;
  var add_idx = -1;&lt;br /&gt;
  try {&lt;br /&gt;
    add_idx = parseInt (template_type, 10);&lt;br /&gt;
  } catch (some_error) {&lt;br /&gt;
    add_idx = -1;    &lt;br /&gt;
  }&lt;br /&gt;
  if (add_idx &amp;gt;= 1 &amp;amp;&amp;amp; add_idx &amp;lt;= 2 &amp;amp;&amp;amp; action_idx &amp;gt;= 0 &amp;amp;&amp;amp; action_idx &amp;lt; uTemplate.length) {&lt;br /&gt;
    //may i take this moment to mention, this script is very very confusing&lt;br /&gt;
    if (wgNamespaceNumber !== 3) { &lt;br /&gt;
      alert(&amp;quot;The user notify script has been disabled in this namespace for security reasons. If you see this message, please tell [[User:Diego Grez]] what linked you clicked on to get here.&amp;quot;);&lt;br /&gt;
      throw new Error(&amp;quot;Security error: wrong namespace for user notify gadget.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    if (add_idx == 1)&lt;br /&gt;
      template_addTemplate (uTemplate[action_idx]);&lt;br /&gt;
    else&lt;br /&gt;
      template_addTemplate2 (uTemplate[action_idx]);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
addOnloadHook(template_onload);&lt;br /&gt;
 &lt;br /&gt;
function makeVectorFancySection()  {&lt;br /&gt;
//wrap this in a try. this might be somewhat delicate at the moment.&lt;br /&gt;
var pNotify = document.createElement('div');&lt;br /&gt;
pNotify.id = 'p-Notify'&lt;br /&gt;
pNotify.className = 'vectorMenu'&lt;br /&gt;
pNotify.innerHTML = ' &amp;lt;h5&amp;gt;&amp;lt;span&amp;gt;Notify&amp;lt;/span&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot; style=&amp;quot;background-image:none;&amp;quot;/&amp;gt;&amp;lt;/h5&amp;gt; &amp;lt;div class=&amp;quot;menu&amp;quot;&amp;gt; &amp;lt;ul lang=&amp;quot;en&amp;quot; xml:lang=&amp;quot;en&amp;quot;&amp;gt; &amp;lt;/ul&amp;gt; &amp;lt;/div&amp;gt;';&lt;br /&gt;
var rightNav = document.getElementById('right-navigation');&lt;br /&gt;
var pViews = document.getElementById('p-views');&lt;br /&gt;
pViewsCont = document.createElement('div');&lt;br /&gt;
pViewsCont.id = 'p-views-continued';&lt;br /&gt;
pViewsCont.className = 'vectorTabs';&lt;br /&gt;
var pViewsUL = document.createElement('ul');&lt;br /&gt;
pViewsCont.appendChild(pViewsUL);&lt;br /&gt;
var pivot = (document.getElementById('ca-history') ? document.getElementById('ca-history') : document.getElementById('ca-addsection'));&lt;br /&gt;
pivot = (pivot ? pivot : document.getElementById('ca-edit'));&lt;br /&gt;
pViewsUL.appendChild(pivot);&lt;br /&gt;
rightNav.insertBefore(pNotify, pViews.nextSibling)&lt;br /&gt;
rightNav.insertBefore(pViewsCont, pNotify.nextSibling); &lt;br /&gt;
}&lt;br /&gt;
// &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>