פתיחת התפריט הראשי
דף הבית
אקראי
כניסה לחשבון
הגדרות
אודות חב"דציטוט
חב"דציטוט
חיפוש
עריכת הדף "
יחידה:ReadTd
"
אזהרה:
אינכם מחוברים לחשבון. כתובת ה־IP שלכם תוצג בפומבי אם תבצעו עריכות כלשהן. אם
תיכנסו לחשבון
או
תיצרו חשבון
, העריכות שלכם תיוחסנה לשם המשתמש שלכם ותקבלו גם יתרונות אחרים.
בדיקת אנטי־ספאם.
אין
למלא שדה זה!
--[[ templatedata services for other modules. template-invokable method, testTemplateData() for testing purposes only. Methods: _readTemplateData( templateName ) internal method. receives a page name, tries to see if it exists, and contains valid templatedata. if there is valid templatedata, it extracts the json, and uses mw methods to return a lua table containing the data. otherwise, returns nil readTemplateData( templateName ) gets a pagename or an array of names, and cycles through them, trying to get templatedata from this file. when it gets a valid structure, it returns it, otherwise keep cycling. templateName can be a string or a table. if it's a string, it's assumed to be a template page name, where valid templatedata exists in the page or in a subpage whose name is in the local variable docSubPage testTemplateData( templateName ): for testing. invokable from template. dumps templatedata lua object, using mw.dumpObject. compat( templateName ): backword-compatability for validation module expecting subpage in specific structure. ]] local docSubPage = 'תיעוד' function _readTemplateData( templateName ) local title = mw.title.makeTitle( 0, templateName ) local templateContent = title and title.exists and title:getContent() -- template's raw content local capture = templateContent and mw.ustring.match( templateContent, '<templatedata%s*>(.*)</templatedata%s*>' ) -- templatedata as text -- capture = capture and mw.ustring.gsub( capture, '"(%d+)"', tonumber ) -- convert "1": {} to 1: {}. frame.args uses numerical indexes for order-based params. if capture then return pcall( mw.text.jsonDecode, capture ) end return false end function readTemplateData( templateName ) if type( templateName ) == 'string' then templateName = { templateName, templateName .. '/' .. docSubPage } end if type( templateName ) == "table" then for _, name in ipairs( templateName ) do local td, result = _readTemplateData( name ) if td then return result end end end return nil end function testTemplateData( frame ) local tmplateName = frame.args['שם התבנית'] or frame.args[1] local td = readTemplateData( tmplateName ) return td and mw.dumpObject( td ) or '' end function compat( template ) local td = readTemplateData( template ) if not td or not td['params'] then return nil end local params = td['params'] local unnamedCount = #params local paramnames = {} local required = {} for paramname, paramobject in pairs( params ) do table.insert( paramnames, paramname ) if paramobject.required then table.insert( required, paramname ) end end return { unnamedCount, paramnames, required, {} } end return { ['ReadTemplateData'] = readTemplateData, ['compat'] = compat, ['בדיקה'] = testTemplateData, ['testTemplateData'] = testTemplateData, }
תקציר:
לתשומת ליבך: תרומתך לאתר חב"דציטוט תפורסם לפי תנאי הרישיון רישיון חופשי למסמכים של גנו גרסה 1.3 או חדשה יותר (אפשר לעיין בדף
חב"דציטוט:זכויות יוצרים
לפרטים נוספים). אם אינך רוצה שעבודתך תהיה זמינה לעריכה על־ידי אחרים, שתופץ לעיני כול, ושאחרים יוכלו להעתיק ממנה תוך ציון המקור – אין לפרסם אותה פה.
כמו־כן, שמירת העריכה משמעה הבטחה שכתבת את הטקסט הזה בעצמך או העתקת אותו ממקור בנחלת הכלל (שאינו מוגבל בזכויות יוצרים) או מקור חופשי דומה.
אין לשלוח חומר מוגבל בזכויות יוצרים ללא רשות!
ביטול
עזרה בעריכה
(נפתח בחלון חדש)
תבנית המופיעה בדף זה:
יחידה:ReadTd/תיעוד
(
עריכה
)