המדריך הבא מסביר כיצד ליצור גלריית תמונות המוצגות לפי קטגוריות.
המדריך מותאם לדרופל 6 אך העקרונות דומים וניתן לעבוד איתו גם בדרופל 5.
זו התוצאה המתקבלת: בעמוד הראשי של הגלריה יוצגו הקטגוריות עם תמונה לכל קטגוריה. בלחיצה על התמונה תתקבל גלריית התמונות של אותה קטגוריה.

-
התקינו והפעילו את המודולים הבאים:
CCK
Views
Imagefield
Imagecache
Taxonomy_imag
Lightbox2
-
צרו סוג תוכן "תמונה לגלריה" (או בכל שם אחר שתבחרו) והוסיפו לו שדה מסוג image
-
צרו מילון בשם "גלריה" והוסיפו לו סיווגים לפי שמות הקטגוריות של הגלריה. המודול taxonomy_image מאפשר לכם להצמיד תמונה לכל סיווג. לאחר הפעלת המודול תופיע בדף הוספת הסיווג שורת תפריט חדשה Term Image ושם תוכלו להעלות את התמונה.
-
גשו להגדרות ImageCache והגדירו Preset חדש שיציג את תמונות הגלריה בגודל קבוע.
אני קראתי לפריסט שלי thumbnails והגדרתי scale width: 150
-
כעת גשו להגדרות המודול Taxonomy Image, פתחו את התפריט Resizing Options - Imagecache ובחרו באפשרות thumbnails (או בכל שם אחר שבו קראתם לפריסט שלכם).
ההגדרה הזו תגרום לכך שכל התמונות שמוצמדות לקטגוריה יקבלו את הגדרות הפריסט thumbnails (לפי הדוגמא שלנו יוצגו תמיד ברוחב מקסימלי של 150 פיקסלים).
סיימנו עם ההגדרות, עכשיו צריך להזין קצת תכנים (העלו תמונות דרך סוג התוכן שיצרתם) והנה מגיע החלק הכייפי באמת: views.
כעת עלינו ליצור view שיציג את תמונות הקטגוריות בצורת גלריה. אני מצאתי שתי דרכים לעשות זאת.
דרך מספר 1 – לחיצה על תמונת הקטגוריה בעמוד הגלריה הראשי מובילה לעמוד הטקסונומי.
צרו view עם ההגדרות האלה:
א. בחרו view מסוג term
ב. בחרו תצוגת page
ג. הגדירו style בסגנון Grid
ד. הגדירו שדות (Fields) לתצוגה:
- Term image להצגת תמונת הקטגוריה. לא לשכוח לסמן Link this image to its term page ולהגדיר את הפריסט thumbnails
- Term להצגת שם הקטגוריה.
ה. במסננים בחרו Vocabulary וסמנו את מילון "גלריה" (או כל שם אחר שבחרתם למילון הקטגוריות).
זהו, ה- view שלנו מוכן!
עכשיו יש לנו view שמציג את תמונות ושמות הקטגוריות, ובלחיצה על התמונה נגיע לעמוד שיציג את כל התמונות המשוייכות לאותה קטגוריה. אבל כפי שאתם רואים, תצוגת העמוד הזו לא מספקת:
א. התמונות מוצגות אחת אחרי השניה ולא בצורת גלריה.
ב. התמונות מוצגות בגדלים שונים.
ג. ליד כל תמונה מופיעה תמונת הקטגוריה הראשית.
פתרון בעיה א'
העמוד הזה הוא בעצם view של טקסונומי שנמצא באופן אינטגרלי במערכת ואפשר לערוך אותו לצרכים שלנו.
שימו לב: עריכה של הview הזה תשפיע גם על תצוגת דפי הטקסונומי של מילונים
אחרים באתר. אם אתם משתמשים בטקסונומי רק לצורך גלריה, אין לכם בעיה. אבל אם לא – זו
בעיה שלא מצאתי לה פתרון ואני אשמח לשמוע רעיונות.
חפשו ברשימה את ה-view שנקרא taxonomy_term וערכו אותו. אני ערכתי את השינויים הבאים:
- שיניתי את ה- style ל- Grid.
- בהגדרות הארגומנט Term ID כתבתי %1 בכותרת (כדי להציג את שם הקטגוריה בכותרת
העמוד) וסימנתי Display all values
פתרון בעיה ב'
גשו להגדרות תצוגת השדות בסוג התוכן "תמונה לגלריה"
( admin/content/node-type/image/display כש- image הוא כמובן שם סוג התוכן) ושם הגדירו כיצד הייתם רוצים להציג את התמונות. אם התקנתם את המודול lightbox2 תוכלו
לבחור למשל באפשרות lightbox2: thumbnails->original
פתרון בעיה ג'
קצת Theming.
אנחנו צריכים להסיר את תצוגת הטקסונומי מתכנים מסוג "תמונה לגלריה".
צרו העתק של הקובץ node.tpl.php ושמרו אותו בשם node-image.tpl.php (כש- image זהו שם סוג התוכן שלכם) ומחקו ממנו (או הכניסו להערה) את השורה:
<?php print $terms ?>
זהו! יש לכם גלריה.
דרך מספר 2 – לחיצה על תמונת הקטגוריה מובילה לעמוד ה- view שניצור.
<שימו לב, חלק זה אינו מושלם - הגלריה עובדת מבחינה פונקציונאלית אבל עדיין זקוקה לעבודת theming>
צרו view עם ההגדרות האלה:
א. בחרו view מסוג 'פריט תוכן'
ב. בחרו תצוגת page
ג. הגדירו style בסגנון Grid
ד. הגדירו שדות (Fields) לתצוגה:
- שדה תמונה (Field_image - או כל שם אחר בו קראתם לשדה התמונה שלכם).
ה. במסננים בחרו node:type וסמנו את סוג התוכן "תמונה לגלריה" (או כל שם אחר שבחרתם לסוג התוכן שלכם).
ו. השתמשו בארגומנטים כדי להציג את התמונות לפי הקטגוריות (טקסונומי). בחרו בארגומנט Term ID. רשמו %1 בכותרת (כדי להציג את שם הקטגוריה בכותרת העמוד) וסמנו את האפשרות Summary, sorted ascending כדי להציג את רשימת הקטגוריות.
זהו, ה- view מוכן!
בהרצת ה- view אנחנו מקבלים עמוד המציג את רשימת הקטגוריות ובסוגריים את מספר התמונות בכל קטגוריה. לחיצה על הקטגוריה תוביל לדף התמונות ששייכות לאותה קטגוריה.
זה טוב, אבל לא מספיק!
אנחנו רצינו עמוד ראשי שיציג את תמונות הקטגוריות ולא רק את שמותיהן.
מה עושים? – נכון, theming!
כאן זה החלק שאני זקוקה לעזרת המומחים. קצת הסתבכתי עם לעשות theming ל-view שעושה שימוש בארגומנטים.
בנתיים מצאתי את הפתרון הבא (אבל הוא לא מספק אותי):
צרו עמוד חדש מסוג page והכניסו בו את הקוד הבא:
(זכרו לסמן את מבנה הקלט כ- php code – בדרופל 6 צריך להפעיל את המודול PHP
filter)
<?php
$gallery = "SELECT
term_data.name,term_data.tid,term_image.path FROM
{term_data},{term_image} WHERE term_data.vid = 1 AND
term_image.tid = term_data.tid";
$result = db_query($gallery);
while ($data = db_fetch_object($result)) {
$output .= '<a
href="'.$base_path.'mygallery/'.urlencode($data-
>tid).'">'.theme('imagecache', 'thumbnails', $data-
>path,$data->name,'','').$data->name.'</a>';
}
print $output;
?>
שימו לב שבמקום mygallery יש לרשום את ה-url שנתתם לview של הגלריה, ובמקום
thumbnails יש לרשום את שם הפריסט שיצרתם באימאג'קאש.
כעת יש לנו עמוד שמציג את תמונות הקטגוריות ואת שמותיהן, ובלחיצה על התמונה יפתח עמוד ה-view שמציג את התמונות ששיכות לאותה קטגוריה.
הכי מתאים להציג את העמוד הזה בגריד (כלומר צריך לשלב בתוך הקוד תגיות של טבלה) - מישהו יודע להגיד לי איך?
תהנו! בהצלחה.
תבורך! תודה רבה על המדריך
תבורך!
תודה רבה על המדריך המצויין
דווקא תבורכי, במקרה הזה
דווקא תבורכי, במקרה הזה :-)
שמחה שמצאת את המדריך מועיל ושמיש.
ליאת שדה-סעדון
לומבי - אינטרנט בגובה העיניים | www.lomby.co.il
אופס :) תבורכי
אופס :)
תבורכי
שדה תיאור של הגלריה חסר
שדה תיאור של הגלריה
חסר לי.
תצוגת ה GRID של IMAGE GALLERY מצויינת עבורי.
הבעיה: לא מוצג השדה שבו מתארים את הגלריה.
גם אני חפרתי בגלריות השונות ולא מצאתי פתרון לכך. ניסיתי VIEW - הציג לי לינקים ולא את התמונות. PANELS - עדיין תקול.
האם בדרך בניית הגלריה שהצגת יש את האפשרות לעשות כך?
המבנה הרצוי הוא טקסט התיאור (לא יותר מכמה שורות) ומתחתיו תצוגת ה-GRID.
ניסיתי גם פטנט פשוט:
הגדרתי מיקום לתצוגת ה GRID.
הגדרתי בלוק (שיכיל את טקסט התיאור החסר) והגבלתי אותו להיות מוצג רק במיקום שהגדרתי ל GRID (בדף הזה בלבד). מיקמתי אותו באיזור "תוכן".
זה עובד אבל הטקסט "נמרח" סביב התמונות מימין להן, ואין חלוקה כפי שרציתי (טקסט, ומתחתיו ה GRID).
יש רעיונות ?
תודות.
www.kadarit.co.il
אתה יכול למקם את הטקסט ב-
אתה יכול למקם את הטקסט ב- header של ה- view
ליאת שדה-סעדון
לומבי - אינטרנט בגובה העיניים | www.lomby.co.il
הפתרון הזה קצת מוגבל משום
הפתרון הזה קצת מוגבל משום שכוונתי הייתה ליצור כמה גלריות לפי TERM רלוונטי. לפיכך, צריך שהטקסט בכותרת יהיה מותאם ל TERM המוצג בגלריה. באופן שהצעת מופיע אותו טקסט לכל הסווגים. גם כשיצרתי "מילון" נפרד - עדיין הופיע אותו הטקסט.
אפשרות שחשבתי היא ליצור VIEW לכל TERM.
המטרה היא ליצור כמה גלריות של תמונות מוקטנות שמהן אפשר להגיע לכל אחת מהרשומות (NODE) אך צריך גם לחזור לגלריה ממנה באתי. הבעיה היא כשמגיעים ל NODE מתוך הגלריה, מופיע שם לינק שמחזיר אותי לגלריה כפי שמוגדרת ב - view taxonomy_term ולא ל VIEW ממנו יצאתי.
א. איך מבטלים את הלינק הזה?
ב. איך שמים לינק רצוי (ל VIEW שיצרתי לכל TERM)
תודות
www.kadarit.co.il
א. הצגת הלינק של הסיווג
א. הצגת הלינק של הסיווג מוגדרת בקובץ node.tpl.php (אם אני זוכרת נכון). אתה צריך לפתוח את הקובץ הזה (נמצא בתיקיית העיצוב שלך) ולמחוק (או להכניס להערה) את השורה
<?phpprint $terms
?>
שים לב שהדבר ישפיע על כל סוגי התוכן שלך. אם אתה רוצה שהסיווג לא יוצג רק בסוג התוכן הנוכחי, אתה צריך לשכפל את הקובץ ולקרוא לו node-[type].tpl.php כשבמקום [type] אתה רושם את שם סוג התוכן, ורק שם לעשות את השינוי.
ב. ממממ... האמת שצריך לחשוב על זה קצת. פתרון בשלוף, לא הכי אלגנטי אבל עובד, הוא להוסיף שדה קבוע לסוג התוכן שיכיל לינק back בדפדפן. למשל:
<a href="javascript:history.back()">חזרה לגלריה</a>ליאת שדה-סעדון
לומבי - אינטרנט בגובה העיניים | www.lomby.co.il
הלינק הסורר הוסר בהצלחה, אבל
הלינק הסורר הוסר בהצלחה, אבל הלינק BACK לא עובד.
הוא מחפש NODE, וזו הכתובת שהדפדפן מראה:
/node/history.back()
כמובן שהודעת עמוד לא קיים מתקבלת.
תודות
www.kadarit.co.il
טוב, זה היה פתרון בשלוף
טוב, זה היה פתרון בשלוף :-)
אז צריך להפעיל את התאים האפורים ולחשוב יותר יצירתי. כרגע אין לי רעיון - סורי.
ליאת שדה-סעדון
לומבי - אינטרנט בגובה העיניים | www.lomby.co.il
טוב, אני אמתין. לבד. בחושך
טוב, אני אמתין. לבד. בחושך ... :-)
מכל מקום - תודה על הפוסט הזה והעזרה הנוספת שלך.
www.kadarit.co.il
מצאתי פתרון: מודול
מצאתי פתרון: מודול http://drupal.org/project/link LINK .
עובד עם CCK
מאפשר הוספת שדה שבו רושמים את ה-URL ואת הטקסט הרצוי כלינק. וזה עובד יופי.
החסרון: כותרת השדה מוצגת (לכל שדה CCK).
יש דרך לבטל את הכותרת הזו (נקראת field-label)?
אני מבין שלשנות את קבצי css של המודול - לא כדאי (עדכונים עתידיים וכו').
תודות
www.kadarit.co.il
אם אני מבינה נכון, הפתרון שלך
אם אני מבינה נכון, הפתרון שלך אומר שבכל פעם שאתה מזין תמונה לגלריה, אתה צריך להזין את כתובת ה-URL חזרה לview של הגלריה ממנה יצאת.
זה נחמד, אבל לא כל כך יעיל למשתמשי קצה.
בכל מקרה לשאלתך - גש ל Display fields של סוג התוכן והגדר את שדה label כ- hidden
ליאת שדה-סעדון
לומבי - אינטרנט בגובה העיניים | www.lomby.co.il
את צודקת. משתמשי הקצה הם אני
את צודקת. משתמשי הקצה הם אני וזוגתי שתחיה.
לכן אי הנוחות היא מחיר שנעמוד בו, כשהתוצאה המתקבלת היא הרצויה לנו.
תודות
www.kadarit.co.il
עשיתי את כל מה שהוסבר כאן,
עשיתי את כל מה שהוסבר כאן, אבל בכל פעם שאני מגדיל לגלריה את ה- preset של ה- imagecache הוא מציג לי X במקום תמונה ואת ה-alt של התמונה...
במילים אחרות - פעלתי לפי המדריך ומשהו לא פועל טוב...
ניר איצקוביץ
http://www.visale.co.il
מריח לי כמו בעיית הרשאות
מריח לי כמו בעיית הרשאות בתיקיית sites/default/files/imagecache
עשה לי טובה תקפוץ לדוחות המערכת ותראה עם הדרופל לא מתבכיין כי אין לו הרשאות כתיבה לfiles.
ליאור קסוס, לינוויט
דרופל, אנדרואיד וקוד פתוח
גם בדוחות מצב וגם בהודעות
גם בדוחות מצב וגם בהודעות אחרונות לא כתוב כלום על זה.
אני לא נתתי הרשאות כתיבה, אני צריך לתת?
עשיתי את זה לפני בלי....
ב preset עצמו הוא לא נותן את התצוגה מקדימה אפילו...
יש X.
ניר איצקוביץ
http://www.visale.co.il
אתה צריך לתת הרשאות כתיבה
אתה צריך לתת הרשאות כתיבה למשתמש אשר מריץ את שרת האינטרנט שלך.
בוא נתחיל עם מתן הרשאות גורפות (סליחה יובל אין לי סבלנות) על sites/default/files/imagecache ונמשיך משם
ליאור קסוס, לינוויט
דרופל, אנדרואיד וקוד פתוח
ליאור, אני מודה לך על העזרה,
ליאור, אני מודה לך על העזרה, אבל עדיין לא עובד.
נתנו הרשאות כתיבה לכל התיקיות של imagecache וגם לקובץ ImageCache אבל עדיין הוא לא מציג את התמונות כמבוקש.
הנה הודעת השגיאה שמתקבלת:
warning: rmdir(D:\inetpub\vhosts\fly2work.co.il\httpdocs\sites\default\files\imagecache\companies-logos) [function.rmdir]: Permission denied in D:\inetpub\vhosts\fly2work.co.il\httpdocs\sites\all\modules\imagecache\ImageCache on line 795.
warning: rmdir(D:\inetpub\vhosts\fly2work.co.il\httpdocs\sites\default\files\imagecache\companies-logos) [function.rmdir]: Permission denied in D:\inetpub\vhosts\fly2work.co.il\httpdocs\sites\all\modules\imagecache\ImageCache on line 795
אני יודע שזה קשור להרשאות, אבל נתנו את כולן...
ניר איצקוביץ
http://www.visale.co.il