לדלג לתוכן
תפריט ראשי
תפריט ראשי
העברה לסרגל הצד
הסתרה
ניווט
עמוד ראשי
ברוכים הבאים
אולם דיונים
שינויים אחרונים
ערך אקראי
דיווח על טעות
עזרה
צור קשר/תרומה
פורטלים
נשיאי חב"ד
ימי חב"ד
גאולה ומשיח
תורת החסידות
תורת הנגלה
ניגוני חב"ד
ספרות חב"ד
בית רבי
אישי חב"ד
הפצת המעיינות
קישורים
חב"ד אינפו
ארכיון גאולה ומשיח
חב"דפדיה
חיפוש
חיפוש
מראה
יצירת חשבון
כניסה לחשבון
כלים אישיים
יצירת חשבון
כניסה לחשבון
דפים לעורכים שלא נכנסו לחשבון
מידע נוסף
תרומות
שיחה
עריכת הדף "
יחידה:דיווח מצב
"
יחידה
שיחה
English
קריאה
עריכת קוד מקור
גרסאות קודמות
כלים
כלים
העברה לסרגל הצד
הסתרה
פעולות
קריאה
עריכת קוד מקור
גרסאות קודמות
כללי
דפים המקושרים לכאן
שינויים בדפים המקושרים
דפים מיוחדים
מידע על הדף
מראה
העברה לסרגל הצד
הסתרה
אזהרה:
אינכם מחוברים לחשבון. כתובת ה־IP שלכם תוצג בפומבי אם תבצעו עריכות כלשהן. אם
תיכנסו לחשבון
או
תיצרו חשבון
, העריכות שלכם תיוחסנה לשם המשתמש שלכם ותקבלו גם יתרונות אחרים.
בדיקת אנטי־ספאם.
אין
למלא שדה זה!
--[[ To generate the statusOrder list, I: 1. copied the list from under "suggested values" in the templatedata at the bottom of תבנית:מצב/צבע/קבוצות 2. Moved the "suggestion" category options to be after the first list item ("new"), and moved the "under discussion" option to be after the "suggestion" options 3. Ran the invertTable function (below) and copied its output back here 4. Added manually statusTextAll and statusTextNone to the top. (It's possible to directly read and parse the template wikicode, I was just lazy. At some point it's better to do that, to avoid double code and the need to synchronize) function invertTable (t) res = "local statusOrder = {<br/>" for i,a in ipairs(t) do res = res .. ' ["' .. a ..'"] = ' .. i if i < #t then res = res .. ',' end res = res .. '<br/>' end res = res .. '}' return res end ]] local newline ='\r\n' local statusTextAll = 'סה"כ דיונים' local statusTextNone = "ללא תבנית מצב" local statusOrder = { [statusTextAll] = -1, [statusTextNone] = 0, ["חדש"] = 1, ["בעבודה"] = 2, ["הצעה"] = 3, ["הצעות"] = 4, ["הצעה לשיפור"] = 5, ["הצעות לשיפור"] = 6, ["הצעת שיפור"] = 7, ["הצעות שיפור"] = 8, ["בדיון"] = 9, ["בטיפול"] = 10, ["הוכלל בדף השיחה"] = 11, ["בדף השיחה"] = 12, ["במעקב"] = 13, ["דיון פתוח"] = 14, ["טופל"] = 15, ["תוקן"] = 16, ["{{תוקן}}"] = 17, ["נפתר"] = 18, ["בוצע"] = 19, ["{{בוצע}}"] = 20, ["הועבר"] = 21, ["נענה"] = 22, ["דיווח שגוי"] = 23, ["שגוי"] = 24, ["לא טעות"] = 25, ["לא שגיאה"] = 26, ["מופיע בערך"] = 27, ["כבר מופיע בערך"] = 28, ["לא תקלה"] = 29, ["לא בוצע"] = 30, ["{{לא בוצע}}"] = 31, ["שם שגוי"] = 32, ["מגבלה טכנית"] = 33, ["לא יבוצע"] = 34, ["לא ערך"] = 35, ["פרסום"] = 36, ["פרסומי"] = 37, ["פרסומת"] = 38, ["לא יקרה"] = 39, ["לא הועבר"] = 40, ["נמחק"] = 41, ["לא יועבר"] = 42, ["כבר דווח"] = 43, ["כבר נענה"] = 44, ["בקשה חוזרת"] = 45, ["כפילות"] = 46, ["כפל"] = 47, ["ישן"] = 48, ["לא נענה"] = 49, ["לא טופל"] = 50, ["ישן, לא נענה"] = 51, ["דיווח חוזר"] = 52, ["ישן, לא טופל"] = 53, ["לא ניתן לטפל"] = 54, ["ללא תוכן"] = 55, ["ללא מענה"] = 56, ["בלי תוכן"] = 57, ["דרוש מקור"] = 58, ["{{מקור}}"] = 59, ["אין מקור"] = 60, ["לא ברור"] = 61, ["{{הבהרה}}"] = 62, ["לא בשל"] = 63, ["לא מוכן"] = 64, ["חסר מידע"] = 65, ["אחר"] = 66, ["דיון סגור"] = 67, ["דיון להעברה"] = 68, ["להעברה"] = 69 } function tableRow (statusList, func, first) local text local cellFirst local cellSep if first then cellFirst = '|+' cellSep = '!' else cellFirst = '|-' cellSep = '|' end text = cellFirst .. newline for i,s in ipairs(statusList) do if i == 1 then text = text .. '!' else text = text .. cellSep end text = text .. func(s, statusList[1][2][1]) .. newline -- sending the total number to all of the rows. it is ignored by most, anď used only for the calculation in row 3 end return text end function tableRow1 (s) return s[1] end function tableRow2 (s) return s[2][1] end function tableRow3 (s, total) return math.floor(0.5 + 100*s[2][1]/total) .. '%' end function tableRow4 (s) if not s[2][2] then return 'פירוט' end text = 'style="vertical-align: top" | <div class = "mw-collapsible mw-collapsed" style="text-align:right"><br/>' for i, headerUser in ipairs(s[2][2]) do text = text .. newline .. "*" .. headerUser[1] if headerUser[2] then text = text .. " (" .. headerUser[2] .. ")" end end text = text .. "</div>" return text end function formatTable (statusList, showPercent, showLinks) -- table start, title row, first cell local tableWikiText = '{| class="wikitable" style="text-align: center"\r\n' tableWikiText = tableWikiText .. tableRow (statusList, tableRow1, true) tableWikiText = tableWikiText .. tableRow (statusList, tableRow2, false) if showPercent then tableWikiText = tableWikiText .. tableRow (statusList, tableRow3, false) end if showLinks then tableWikiText = tableWikiText .. tableRow (statusList, tableRow4, false) end tableWikiText = tableWikiText .. '|}' return tableWikiText end function processSectionName ( sectionName, titleText ) local tav = ' *תב *' local tavnit = ' *תבנית *' local tm = '{{%1}}' local sectionName1 = mw.text.trim(sectionName) local sectionName2 = string.gsub( sectionName1, '{{'..tav ..'|'..tav ..': *([^}]*) *}}', tm) -- usage of 'tav' template: keep content and surround by double curly braces, drop template prefix local sectionName3 = string.gsub( sectionName2, '{{'..tav ..'|'..tavnit..': *([^}]*) *}}', tm) -- usage of 'tav' template: keep content and surround by double curly braces, drop template prefix local sectionName4 = string.gsub( sectionName3, '{{'..tav ..'|'.. ' *([^}]*) *}}', tm) -- usage of 'tav' template: keep content and surround by double curly braces local sectionName5 = string.gsub( sectionName4, '{{'..tavnit..'|'..tav ..': *([^}]*) *}}', tm) -- usage of 'tavnit' template: keep content and surround by double curly braces, drop template prefix local sectionName6 = string.gsub( sectionName5, '{{'..tavnit..'|'..tavnit..': *([^}]*) *}}', tm) -- usage of 'tavnit' template: keep content and surround by double curly braces, drop template prefix local sectionName7 = string.gsub( sectionName6, '{{'..tavnit..'|'.. ' *([^}]*) *}}', tm) -- usage of 'tavnit' template: keep content and surround by double curly braces local sectionName8 = string.gsub( sectionName7, '%[%[[^]|]*|([^]|]*)%]%]', '%1') -- wikilinks with display text: keep only the display text local sectionName9 = string.gsub( sectionName8, '%[%[:?([^]]*)%]%]', '%1') -- wikilinks with display text: keep the content, dropping the brackets and optionally also a leading colon local sectionName10= "[[" .. titleText .. "#" .. sectionName9 .. "|" .. sectionName9 .. "]]" return sectionName10 end function getSections ( wikiText, titleText ) local sectionHeaderPattern = '%c==([^=][^%c=]*)==' local sectionTable = {} local offset local offsetStart local offsetStartPrev local sectionName offsetStart, offset, sectionName = string.find( wikiText, sectionHeaderPattern ) if not sectionName then return nil -- no H2 sections found on page end while sectionName do offsetStartPrev = offsetStart sectionNamePrev = processSectionName(sectionName, titleText) -- remove leading and trailing whitespace and interlinks, convert into a link to the header offsetStart, offset, sectionName = string.find( wikiText, sectionHeaderPattern, offset ) if sectionName then sectionText = string.sub(wikiText, offsetStartPrev, offsetStart) table.insert(sectionTable, {sectionNamePrev, sectionText}) end end sectionText = string.sub(wikiText, offsetStartPrev) table.insert(sectionTable, {sectionNamePrev, sectionText}) return sectionTable end function statusSort (s1, s2) return (statusOrder[s1[1]] or 999) < (statusOrder[s2[1]] or 999) end function sectionTableToStatusTable ( sectionTable, showEditors ) local statusType local argsMatcher local argList local matzav = "מצב" local fullPattern = '{{ *'..matzav..' *| *([^}]*})}' -- including thd first curly brace, to delimit the last argument statusTable = {} for i, section in ipairs(sectionTable) do statusTemplateArguments = string.match (section[2], fullPattern) if not statusTemplateArguments then statusType = statusTextNone user = nil else argsMatcher = string.gmatch (statusTemplateArguments, "([^|}]*) *[|}]") argList = {} for arg in argsMatcher do table.insert(argList, mw.text.trim(arg)) end statusType = argList[1] if showEditors then user = argList[2] -- might be nil. also, I'm ignoring the display text (argList[3]) if it exists else user = nil end end if not statusTable[statusType] then statusTable[statusType] = {1, {{section[1],user}}} else statusTable[statusType][1] = statusTable[statusType][1] + 1 table.insert(statusTable[statusType][2], {section[1],user}) end end statusTable[statusTextAll] = {#sectionTable} -- now that the table is built, convert it into a sequence and sort it local statusList = {} for k, v in pairs(statusTable) do table.insert(statusList, {k, v}) end table.sort(statusList, statusSort) return statusList end function getStatusReport ( title, showPercent, showLinks, showEditors ) local wikiText = title:getContent() local sectionTable = getSections(wikiText, title.prefixedText) -- the page title text is used to convert the section header into a link if not sectionTable then return '' end local statusList = sectionTableToStatusTable(sectionTable, showEditors) return formatTable (statusList, showPercent, showLinks) end function emptyParam (param) return (not param) or (param == "") end function statusReport ( frame ) local yes = 'כן' local no = 'לא' local title local showPercent local showLinks local showEditors if emptyParam(frame.args['title']) then title = mw.title.getCurrentTitle() else title = mw.title.new(frame.args['title']) end showPercent = emptyParam(frame.args['percent']) or (frame.args['percent'] == yes) showLinks = emptyParam(frame.args['links']) or (frame.args['link'] == yes) showEditors = emptyParam(frame.args['editors']) or (frame.args['editors'] == yes) return getStatusReport (title, showPercent, showLinks, showEditors) end return { statusReport = statusReport }
תקציר:
לתשומת ליבך: תרומתך לאתר חב"דפדיה תפורסם לפי תנאי הרישיון GNU Free Documentation License 1.2 (אפשר לעיין בדף
חב"דפדיה:זכויות יוצרים
לפרטים נוספים). אם אינך רוצה שעבודתך תהיה זמינה לעריכה על־ידי אחרים, שתופץ לעיני כול, ושאחרים יוכלו להעתיק ממנה תוך ציון המקור – אין לפרסם אותה פה.
כמו־כן, שמירת העריכה משמעה הבטחה שכתבת את הטקסט הזה בעצמך או העתקת אותו ממקור בנחלת הכלל (שאינו מוגבל בזכויות יוצרים) או מקור חופשי דומה.
אין לשלוח חומר מוגבל בזכויות יוצרים ללא רשות!
ביטול
עזרה בעריכה
(נפתח בחלון חדש)
תבנית המופיעה בדף זה:
יחידה:דיווח מצב/תיעוד
(
עריכה
)