بحث مدیاویکی:TofawikiConsole.js
preSavedTransform
این باید متاسفانه حذف شود. وپ:فنی را ببینید. :)
امیرΣυζήτηση ۲۰ مارس ۲۰۱۷، ساعت ۱۲:۲۵ (UTC)
- مشکل اندازهٔ ممکن برای get بود، برطرف شد ابراهیم (بحث) ۲۰ مارس ۲۰۱۷، ساعت ۲۱:۰۴ (UTC)
Broken JavaScript
MediaWiki developers found that this page probably breaks JavaScript for users (example: not seeing the buttons when editing a page). You probably need to edit this .js page and/or MediaWiki:Gadgets-definition as in the examples at phabricator:T122755. List more pages to check.
If you have questions or need help, please ask at phabricator:T164242. You can login with your wiki account. Best wishes, Nemo ۱۴ مهٔ ۲۰۱۷، ساعت ۰۹:۴۹ (UTC)
نمونهٔ کد برای فهرست سفید
@Huji: سلام. من کد زیر را برای فهرست سفید نوشتم. اما خیلی با Promise آشنایی ندارم و ممکن است اشتباه کردهباشم. ببینید این کد بهنظرتان خوب است و درست کار خواهد کرد یا خیر؟
$.getJSON('/w/index.php', {action: 'raw', ctype: 'application/json',title: 'ویکیپدیا:درخواست_برای_دسترسی/بهویکیفا_انبوه/فهرست_سفید'}, callback)
function callback(json) {
var u = mw.config.get('wgUserName');
if (json.allowedusers.indexOf(u) === -1) {
return;
} else {
// Gadget code goes here
}
};
نکته این که کل کد ابزار از سطر ۴ به بعد باید به داخل تابع callback منتقل شود که احتمالاً در حد کمی سرعت اجرایش را کند میکند. البته شاید راه بهتری هم باشد که باعث کند شدن ابزار نشود، اما من چیزی بهتر از این به ذهنم نرسید.
صرفاً برای ثبت در این صفحه، نحو فایل جیسان فهرست سفید هم باید بهصورت زیر باشد:
{
allowedusers:
[
'user1',
'user2'
]
}
ممنون. {{کاربر|جـیپیوتر}} بحث ۸ ژوئن ۲۰۲۲، ساعت ۰۲:۴۲ (UTC)
- کاربر:Sunfyre جهت اطلاع. نمیداستم با جاوااسکریپت آشنایی دارید یا خیر. عنوان پیشنهادیام برای صفحهٔ فهرست سفید را در سطر اول کدهای بالا میتوانید ببینید. {{کاربر|جـیپیوتر}} بحث ۸ ژوئن ۲۰۲۲، ساعت ۰۲:۴۶ (UTC)
- ممنون. متاسفانه برنامهنویسی جز تواناهایی بنده نیست. -- SunfyreT ۸ ژوئن ۲۰۲۲، ساعت ۰۲:۵۱ (UTC)
- @Jeeputer: اولاً که مدل محتوای ویکیپدیا:درخواست برای دسترسی/بهویکیفا انبوه/فهرست سفید را کردم جیسان و برای آزمایش اسم خودم و خودتان را به آرایه افزودم. کد بالا را هم کمی تمیزکاری کردم برایتان.
- در مورد callback هم درست گفتید؛ منتها لازم نیست که تمام باقی کد برود آن تو. اگر از اشیا در کد درست استفاده شود، میشود در تابع فراخوان (callback function) فقط یک متد از شیء مربوط را فراخواند. یعنی جایی که گفتید Gadget code goes here صرفاً میگوید (مثلاً)
towikifa.run()
منتها این فرض میکند که باقی کد را اصلاح کردهاید تا یک شیء به اسم towikifa بسازد که تابع run داشته باشد. — حجت/بحث ۸ ژوئن ۲۰۲۲، ساعت ۲۳:۲۷ (UTC)- @Huji: مطابق با راهنماییهای شما پیشنویس:TofawikiConsol.js را ایجاد کردم. در کنسول هم آزمایشش کردم و وقتی نامم را از فهرست حذف کردم، پیامی که در انتهای کد تعریف کردهام را نشانم داد. اما پیش از آن ابزار اجرا میشد. این نشان میدهد که بهخوبی از پس بررسی فهرست سفید برمیآید. اما برای پیروی از روشی که اشاره کردید، آن شیء خالی tofawiki را در اول کد تعریف کردم و بعداً کدهای اصلی ابزار را به کلید run در آن شیء منتقل کردم. بعد هم در تابع callback تابع
tofawiki.run()
را صدا زدم. بهطور کلی در کد جدید فقط کدهای اصلی به داخل شیء منتقل شدهاند و تابع فراخوان هم اضافه شده. {{کاربر|جـیپیوتر}} بحث ۹ ژوئن ۲۰۲۲، ساعت ۰۰:۳۱ (UTC) - پس از بهروز شدن ابزار فقط یک کار میماند. آن هم اصلاح مدیاویکی:Gadget-AWBAddNewUser.js است تا مدیران ناآشنا با نحو جیسان برای افزودن نام کاربر به فهرست به مشکل نخورند.
- از آنجا که در صورت ایجاد نخستین درخواست در روز جاری، همچنان یک هفته تا افزوده شدن نام کاربر به فهرست فرصت هست، در هفتهٔ آینده هروقت فرصت پیدا کنم آن را هم بهروز میکنم. {{کاربر|جـیپیوتر}} بحث ۹ ژوئن ۲۰۲۲، ساعت ۰۰:۳۷ (UTC)
- خیلی خوب. به نظر آمادهٔ اجراست. — حجت/بحث ۹ ژوئن ۲۰۲۲، ساعت ۰۰:۵۱ (UTC)
- @Huji: مطابق با راهنماییهای شما پیشنویس:TofawikiConsol.js را ایجاد کردم. در کنسول هم آزمایشش کردم و وقتی نامم را از فهرست حذف کردم، پیامی که در انتهای کد تعریف کردهام را نشانم داد. اما پیش از آن ابزار اجرا میشد. این نشان میدهد که بهخوبی از پس بررسی فهرست سفید برمیآید. اما برای پیروی از روشی که اشاره کردید، آن شیء خالی tofawiki را در اول کد تعریف کردم و بعداً کدهای اصلی ابزار را به کلید run در آن شیء منتقل کردم. بعد هم در تابع callback تابع
- ممنون. متاسفانه برنامهنویسی جز تواناهایی بنده نیست. -- SunfyreT ۸ ژوئن ۲۰۲۲، ساعت ۰۲:۵۱ (UTC)