שיחת תבנית:מכפלת גימטריה
תקלה בתבנית
עריכהקיפודנחש - האם יש אפשרות לשקם את התבנית הזאת שיעבוד באופן תקין? או שכרגע כדאי להיות מושבת...--Roxette5 (שיחה) 00:12, 10 באפריל 2024 (IDT)
- לא לגמרי ברור לי מה התבנית אמורה לעשות. אם לך ברור, לא תתקשה לתקן בעצמך. באופן כללי, יש "פונקציית תבנית" בשם #חשב. כך למשל, {{#חשב: 3 * 4}} => 12.
- מה שאתה כנראה רוצה לעשות זה לשלוח את הפרמטרים אחד אחד לתבנית שמחשבת גימטריה, ואת התוצאות לשלוח ל#חשב (בוודאי יש עוד דרכים להשיג את התוצאה). אם למשל תבנית "מחוטל" מחשבת גימטריה של הפרמטר היחיד שמועבר לה, אתה רוצה משהו כמו {{#חשב: {{מחוטל|{{{1}}} * {{מחוטל|{{{2}}} }}. הדוגמה פשטנית ולא מטפלת בשגיאות: מה קורה אם אין שני פרמטרים, מה קורה אם הפרמטר הראשון או השני אינם כאלה שניתן לחשב את הגימטריה שלהם וכן הלאה. אם רוצים שהתבנית תחשב מכפלה של מספר גורמים הגדול מ-2, אפשר להעביר כברירת מחחדל א (נדמלי שבגימטריה זה 1, לא?), כך שהיעדר פרמטר לא יכשיל את המכפלה:
- {{#חשב: {{מחוטל|{{{1}}} }} * {{מחוטל|{{{2}}} }} * {{מחוטל|{{{3|א}}} }} * {{מחוטל|{{{4|א}}} }} * {{מחוטל|{{{5|א}}} }} }} (וכן הלאה, עד מספר הפרמטרים המרבי שהתבנית רוצה לתמוך בו). אם רוצים שהתבנית תדע לטפל במספר בלתי מוגבל של פרמטרים, כנראה נחוץ לשם כך ולהעביר את כל הטררם הזה לקוד לואה במרחב "יחידה", ולהוסיף לאחת היחידות הקיימות פונקציה חדשה שתבצע את המכפלה.
- אגב, שאלת תם: למה בכלל צריך את זה? מתי נחוץ לחשב כפל גימטריות בעזרת תבנית? אם יש לדבר שימוש במקום אחד או שלושה, אפשר (ולדעתי כדאי) להסתפק בחישוב ידני ולהזין את התוצאה במקום בו היית משתמש בתבנית לו הייתה כזו. איני מתגאה בבורותי, אבל עלי להודות בה: לא הצלחתי להעלות על הדעת שימוש מועיל בתבנית מוזרה כזו.
- בברכה - קיפודנחש (שיחה) 00:36, 10 באפריל 2024 (IDT)
- הסתכלתי שוב. כל הקטע של "מכפלה" נוסף על ידי @Erel Segal, בעריכה זו, לפני כתריסר שנים, ולפי התקציר הקוד הועתק מדף השיחה שלי. נראה שיש כאן בג. לא אוכל כרגע להתעמק, אבל במבט ראשון (ובלי לבדוק! הבדיקה עליך...), נראה כאילו בקוד שכתבתי לפני 12 שנה יש בג: בשורה 891 של מדיה ויקי:Common.js, צריך כנראה להחליף את
$('.gim-calc, .gim-product .gim-factor')
ב-$('.gim-calc, .gim-product')
(במילים אחרות, להסיר משורה 891 את.gim-factor
) - אין אחריות - כאמור לא בדקתי. נסה וראה אם זה עובד. קיפודנחש (שיחה) 01:18, 10 באפריל 2024 (IDT)
- תוספת: אם אתה כבר עושה זאת, כדאי להוסיף את הרווח החסר (אחרי "הערך של") - המחרוזת בשורה 874 צריכה להיות זהה למחרוזת בשורה 882 (ההבדל היחיד ביניהן הוא הרווח). העובדה שהבג הזה ישב בשקט במקומו כתריסר שנים עד שמישהו חש בבעיה מצביעה כנראה על כך שאין צורך בתבנית הזו. בברכה - קיפודנחש (שיחה) 01:28, 10 באפריל 2024 (IDT)
- הסתכלתי שוב. כל הקטע של "מכפלה" נוסף על ידי @Erel Segal, בעריכה זו, לפני כתריסר שנים, ולפי התקציר הקוד הועתק מדף השיחה שלי. נראה שיש כאן בג. לא אוכל כרגע להתעמק, אבל במבט ראשון (ובלי לבדוק! הבדיקה עליך...), נראה כאילו בקוד שכתבתי לפני 12 שנה יש בג: בשורה 891 של מדיה ויקי:Common.js, צריך כנראה להחליף את
- במקרה שלנו - רק צריכים שיכפיל 2 פרמטרים ולא יותר. --Roxette5 (שיחה) 06:33, 10 באפריל 2024 (IDT)
- Shalomori123 Erel Segal - האם אחד מכם תוכלו ליישם את ההנחיות של קיפודנחש כאן בכדי לתקן את התבנית. אינני מרגיש בטוח בהבנת כל מה שנצרך...--Roxette5 (שיחה) 06:33, 10 באפריל 2024 (IDT)
בחשתי קצת, וממש קשה לי להאמין שזה עבד אי פעם כמו צריך. בכולופן, להלן קוד שכנראה כן עובד נכון, אם כי עדיין צריך לבדוק.
$(function() {
if ($('.gim-calc, .gim-product .gim-factor').length) {
var gimvals = {'א': 1, 'ב': 2, 'ג': 3, 'ד': 4, 'ה': 5, 'ו': 6, 'ז': 7, 'ח': 8, 'ט': 9, 'י': 10, 'כ': 20, 'ך': 20, 'ל': 30, 'מ': 40, 'ם': 40, 'נ': 50, 'ן': 50, 'ס': 60, 'ע': 70, 'פ': 80, 'ף': 80, 'צ': 90, 'ץ': 90, 'ק': 100, 'ר': 200, 'ש': 300, 'ת': 400},
smallgimvals={'א':1,'ב':2,'ג':3,'ד':4,'ה':5,'ו':6,'ז':7,'ח':8,'ט':9,'י':1,'כ':2,'ך':2,'ל':3,'מ':4,'ם':4,
'נ':5,'ן':5,'ס':6,'ע':7,'פ':8,'ף':8,'צ':9,'ץ':9,'ק':1,'ר':2,'ש':3,'ת':4};
function gimatria(str, small) {
var tar = str.split(''),
sum = 0;
for (var ind in tar)
sum += (small ? (smallgimvals[tar[ind]] || 0) : (gimvals[tar[ind]] || 0));
return sum;
}
function trim(str) {
return str.substr(0, 100) + (str.length > 100 ? '...' : '');
}
function title(element) {
var $this = $(element),
product = $this.hasClass('gim-product'),
is_smallgim = $this.hasClass('smallgim');
if (product) {
var factors = $this.find('.gim-factor'),
prod = 1,
desc = [],
glue = ' בגימטריה כפול ';
factors.each(function() {
var t = $(this).text(),
fact = gimatria(t, false),
t = t + ' (' + fact + ')';
prod *= fact;
desc.push(t);
});
return ('הערך של '
+ desc.join(glue)
+ 'בגימטריה הוא: '
+ prod
);
} else {
var str = $this.text();
return (
'הערך של '
+ trim(str)
+' בגימטריה'
+(is_smallgim? ' קטנה ': ' ' )
+ 'הוא: '
+ gimatria(str, is_smallgim)
);
}
}
$('.gim-calc, .gim-product').each(function(_, element) {
$(element).attr('title', title(element));
});
}
});
קיפודנחש (שיחה) 08:06, 10 באפריל 2024 (IDT)
- ע"פ עצת קיפודנחש, הוספתי קוד לחישוב מכפלת גימטריה ליחידה:גימטריה והשתמשתי בו כאן. הקוד החדש עדיין לא תואם לניידים - אני לא יודע איך לפתור את זה. מה דעתכם בינתיים? --אראל סגל • שיחה • ג' בניסן ה'תשפ"ד 09:48, 11 באפריל 2024 (IDT)
- (נ.ב. חזרתי לערוך אחרי הפסקה ארוכה, ונזכרתי למה זה כל כך קשה - יש המון סוגריים וקשה לדעת מה מתאים למה...) --אראל סגל • שיחה • ג' בניסן ה'תשפ"ד 09:50, 11 באפריל 2024 (IDT)
- תודה, נראה שהתבנית עובדת.--10:14, 11 באפריל 2024 (IDT)
אופן הצגת הרמז
עריכהראיתי כעת דברמה שלא ידעתי עליו עד כה: ויקיטקסט הוסיף תמיכה ב"רמז" (tooltip) שעובדת גם עבור מכשירים ניידים ומציגה את הרמזים בצורה נאה יותר מברירת המחדל. תבנית:ב עושה שימוש ביכולת הזו.
בסקריפט שכתבתי לני כתריסר שנים השתמשתי בספריה בשם tipsy להציג את הרמז בצורה יפה יותר (אך בלי תמיכה בניידים). הספרייה הזו הוסרה מרשימת הספריות הזמינות והגימטריות היו מושבתות מספר חודשים עד שהקוד הוחזר אחרי שהשימוש ב-tipsy. הוסר ממנו.
לא צריך להיות נורא קשה ללמד את החלק שמתעסק בגימטריות לשתף פעולה עם החלק שמטפל בהצגת הרמזים, כך שבסופו דבר, הרמז של גימטריות יתנהג כמו הרמז שמוצג על ידי תבנית "ב". זה כמובן דורש שינוי מסוים בקוד, אבל לא צריך להיות נורא קשה. כדאי להתייעץ עם משתמש:Ori229. קיפודנחש (שיחה) 02:12, 12 באפריל 2024 (IDT)
- אפשר פשוט להשתמש בתבנית:ב כדי להציג את הגימטריה, כמו שאנחנו עושים בתבנית הנוכחית. --אראל סגל • שיחה • ד' בניסן ה'תשפ"ד 04:41, 12 באפריל 2024 (IDT)