אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • קבלו עדכונים במייל
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג’אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • קבלו עדכונים במייל
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג’אווהסקריפט
ראשי » פיתוח אינטרנט » פתרונות ומאמרים על פיתוח אינטרנט » מודול בדרופל שמוסיף כפתור like

מודול בדרופל שמוסיף כפתור like

רן בר-זיק נובמבר 21, 2010 8:03 am אין תגובות

דוגמת קוד למודול פשוט שמוסיף כפתור like בפייסבוק בדרופל 6 ודרופל 7

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט. הפרויקט הוא הפרויקט הספרותי המוביל בהדסטארט. בשיתוף הקריה האקדמית אונו.

יש דווקא אחלה מודול דרופלי שמטפל בהוספת כל מני פלאגינים של פייסבוק לדרופל. אם אתם סתם מחפשים דרך לשלב את פייסבוק, תורידו את מודול Social Plugin (אפשר גם עם drush הנהדר כמובן: drush dl fb_social). אם אתם ממשיכים לקרוא מכאן, כנראה שאתם צריכים משהו שונה. או שהמודול הזה לא עובד לכם, או שאתם רוצים ליצור מודול פשוט. המודול שאנו יוצרים הוא מודול פשוט שבפשוטים, הוא פשוט מוסיף בתחתית כל node כפתור like בפייסבוק.

יצירת info

בכל מודול חייב להיות info מסוג כלשהו, שם המודול שלנו הוא: internet_israel_facebook_button ולפיכך אנו ניצור תיקיה בשם הזה תחת sites/module וניצור קובץ בשם: internet_israel_facebook_button.info – התוכן שלו יראה כך:


name = Internet Israel Like Button 
description = Adding Like Button to every node.
package = Internet Israel
core = 6.x
version = "1.0"
core = "6.x"

אתם כמובן יכולים להתפרע כרצונכם ולשנות את שם המודול והתיאור שלו.

יצירת קובץ המודול

ועכשיו, לקובץ שבאמת חשוב internet_israel_facebook_button.module. ראשית, אני אשתמש ב-hook_nodeapi על מנת להפעיל את פונקצית ההוספה ברגע שמישהו רואה את ה-node.


<?php
function internet_israel_facebook_button_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
	switch ($op) {
		case 'view':
		drupal_add_css(drupal_get_path('module', 'internet_israel_facebook_button') .'/internet_israel_facebook_button.css');
		$node->content.=_like_button_facebook_like();
        break;	
	}
}

function _like_button_facebook_like() {
    return '<div class="facebook-like">
    <iframe src="http://www.facebook.com/plugins/like.php?href=' . $_SERVER['HTTP_HOST'] . request_uri() . '
    &layout=standard&show_faces=false&width=400&action=like&font=arial&
    colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none;
     overflow:hidden; width:400px; height:35px;" allowTransparency="true"></iframe></div>';
}


hook_nodeapi זה hook מאד חביב ושימושי בכל פעם שאני רוצה לעשות משהו עם node, יש תיעוד מפורט עליו ב-Drupal API. כמה חבל שאין אותו בדרופל 7. מה שהוא עושה, הוא מוסיף CSS שאני אצור במודול מאוחר יותר וכן קורא לפונקצית _like_button_facebook_like שמחזירה את הקוד של הכפתור. זה הכל, ואז הכל נצמד לתוכן ופיניטו לה קומדיה.

זה לא עובד

אם המודול לא עובד לכם, 99% שמסיבה מסוימת אתם לא מדפיסים את node->content$. יכול להיות שהתמה שלכם מדפיסה שדות ספציפיים, אם כך, פשוט צריך לשנות את השורה:


		$node->content.=_like_button_facebook_like();

למשהו בתוך ה-node שבאמת מודפס. משהו בסגנון:


$node->field_body[0]['value'].=_like_button_facebook_like();

כדי לדעת בדיוק איזה שדות יש ב-node שלכם, אפשר פשוט לעשות בתוך ה-hook איזה print_r למשתנה node על מנת שיציג לכם את הברדק שהולך שם.

אפשר כמובן להשתמש במודול להציג עוד דברים חוץ מפייסבוק, למשל את כפתור הריטוויט של Topsy למי שלא מכיר. גם לו יש מודול מוצלח לדרופל – אבל אפשר להוסיף אותו באמצעות המודול שלנו, הנה הקוד המלא:


<?php

function internet_israel_facebook_button_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
	switch ($op) {
		case 'view':
		drupal_add_css(drupal_get_path('module', 'internet_israel_facebook_button') .'/internet_israel_facebook_button.css');
		drupal_set_html_head('<script type="text/javascript" src="http://cdn.topsy.com/topsy.js?init=topsyWidgetCreator"></script>');
		$node->content.=_like_button_facebook_like();
		$node->content = _like_button_topsy($node->title).$node->content;
        break;	
	}
}

function _like_button_facebook_like() {
    return '<div class="facebook-like">
    <iframe src="http://www.facebook.com/plugins/like.php?href=' . $_SERVER['HTTP_HOST'] . request_uri() . '
    &layout=standard&show_faces=false&width=400&action=like&font=arial&
    colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none;
     overflow:hidden; width:400px; height:35px;" allowTransparency="true"></iframe></div>';
}
function _like_button_topsy($nodetitle) {
	return '
	<div class="topsy_widget_data"><!--
    {
        "url": "' . $_SERVER['HTTP_HOST'] . request_uri() . '",
        "title": "'.$nodetitle.'",
        "style": "big",
    }
	--></div>
	';
}


התאמה לדרופל 7

בדרופל 7 (נכון לשורות אלו עדיין בבטא) יש כמה שינויים מהותיים. ראשית, ה-nodeapi משתנה והוא לא מעביר את מצב ה-node כמשתנה op אלא אנו משתמשים במתודות שונות עבור כל מצב. שנית, אנו משתמשים ב-drupal_add_html_head כדי להוסיף את הסקריפט של topsy. הנה הקוד המלא שעובד בדרופל 7:


<?php

function launchpoker_like_button_nodeapi($node, $view_mode, $langcode) {
		drupal_add_css(drupal_get_path('module', 'launchpoker_like_button') .'/launchpoker_like_button.css');
		drupal_add_html_head('<script type="text/javascript" src="http://cdn.topsy.com/topsy.js?init=topsyWidgetCreator"></script>');
		$node->content.=_like_button_facebook_like();
		$node->content = _like_button_topsy($node->title).content;
}

function _like_button_facebook_like() {
    return '<div class="facebook-like">
    <iframe src="http://www.facebook.com/plugins/like.php?href=' . $_SERVER['HTTP_HOST'] . request_uri() . '
    &layout=standard&show_faces=false&width=400&action=like&font=arial&
    colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none;
     overflow:hidden; width:400px; height:35px;" allowTransparency="true"></iframe></div>';
}

function _like_button_topsy($nodetitle) {
	return '
	<div class="topsy_widget_data"><!--
    {
        "url": "' . $_SERVER['HTTP_HOST'] . request_uri() . '",
        "title": "'.$nodetitle.'",
        "style": "big",
    }
	--></div>
	';
}


קל ופשוט לעבוד עם דרופל – ובדוגמא הזו רואים את זה היטב.

כדאי תמיד להשאר מעודכנים! הרשמו לעדכונים של האתר במייל! - המייל יישלח כל יום ראשון בעשר בבוקר ויכיל אך ורק את המאמרים שהתפרסמו באינטרנט ישראל. ללא ספאם, ללא הצפות, ללא בלגנים. אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט. הפרויקט הוא הפרויקט הספרותי המוביל בהדסטארט. בשיתוף הקריה האקדמית אונו.
דרופל סקריפטים

השארת תגובה

ביטול

ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

    בחשבון הטוויטר שלי אני מפרסם עדכונים מהירים על חדשות בתחום התכנות והיזמות, התרעות על מצבי חירום ורכילות בוערת על תחום הווב.
    מה זה טוויטר?
  • facebook like image

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

    הפרויקטים שאני כותב ושוחררו לציבור ברישיון קוד פתוח נמצאים ברובם בגיטהאב.
המאמרים האחרונים שהתפרסמו באינטרנט ישראל
  • התקנת hidden service ב-Tor על רספברי פיי

    התקנת hidden service ב-Tor על רספברי פיי

    ינואר 3, 2021
    אתר בדארק ווב שמגן על הפרטיות של בעל האתר הוא פשוט להפעלה גם עם וורדפרס ועם רספברי פיי.
  • רספברי פיי כשרת אינטרנט ביתי המאחסן וורדפרס

    רספברי פיי כשרת אינטרנט ביתי המאחסן וורדפרס

    דצמבר 27, 2020
    התקנת אתר אינטרנט מבוסס וורדפרס בשרת ביתי קטן ונחמד על רספברי פיי.
  • ניתוקים ואיטיות באינטרנט – מה עושים?

    ניתוקים ואיטיות באינטרנט – מה עושים?

    דצמבר 20, 2020
    שוב פעם אייקון הטעינה? צווחות מכל פינה בבית וטענות על ניתוקים? מאיפה מתחילים לטפל בזה? כך בודקים את העניין.
חיפוש
הצטרפו לעדכונים!

העדכונים נשלחים אך ורק כאשר האתר מתעדכן.

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד