Gravatar چیست و چگونه در پروژه‌های PHP از آن استفاده کنیم؟

Gravatar چیست و چگونه در پروژه‌های PHP از آن استفاده کنیم؟

Avatar تصویری است که به حضور آنلاین کاربران اینترنتی هویت می‌بخشد. به عبارت دیگر، تصویر کوچکی که در کنار نام کاربر آمده و مشخص می‌کند که کاربر چه شکل و شمایلی دارد، آواتار نامیده می‌شود که این مقدمه‌ای بود برای توضیح مفهوم Gravatar می‌رسیم که مخفف واژگان Globally Recognized Avatar بوده و عبارت است از سرویسی رایگان که کاربران در آن با یک ایمیل ثبت‌نام کرده، عکس خود را آپلود می‌کنند سپس در هر سایتی که از سرویس گراوتار استفاده کرده باشد، تصویر کاربر در زمان ثبت‌نام، کامنت گذاشتن و … نمایش داده می‌شود که در ادامه با روش به‌کارگیری از گراواتار در سایت‌های کدنویسی شده با زبان PHP آشنا خواهید شد (لازم به ذکر است که این سرویس به صورت پیش‌فرض در سیستم مدیریت محتوای وردپرس فعال است.)

پیاده‌سازی گراواتار در زبان برنامه‌نویسی پی‌اچ‌پی کاری نسبتاً راحت است به طوری که با استفاده از فانکشن‌های از پیش تعریف شدهٔ این زبان همچون ()strtolower() ،urlencode و ()md5 این امکان را خواهیم داشت تا لینک مورد نیاز برای سرویس گراواتار را به سادگی بسازیم:

function getGravatar($email, $s = 80, $d = 'mm', $r = 'g', $img = false, $atts = array()) 
{
    $url = 'https://www.gravatar.com/avatar/';
    $url .= md5( strtolower( trim( $email ) ) );
    $url .= "?s=$s&d=$d&r=$r";
    if ( $img ) {
        $url = '<img src="' . $url . '"';
        foreach ( $atts as $key => $val )
            $url .= ' ' . $key . '="' . $val . '"';
        $url .= ' />';
    }
    return $url;
}

همان‌طور که در بلوک کد بالا مشاهده می‌شود، فانکشی نوشته‌ایم تحت عنوان ()getGravatar که شش پارامتر ورودی می‌گیرد که پارامتر اول آن (email$) اجباری است اما سایر پارامترها دارای یک مقدار پیش‌فرض بوده و وارد کردن آن‌ها در حین استفاده از این فانکشن ضرورتی ندارد که در ادامه، تک‌تک پارامترهای ورودی این فانکشن را مورد بررسی قرار خواهیم داد:

- email$: به جای این پارامتر، باید یک آدرس ایمیل معتبر استفاده کرد.

- s$: این پارامتر که مخفف واژهٔ Size می‌باشد این وظیفه را دارا است تا ابعاد گراواتار را مشخص کرده که به صورت پیش‌فرض ابعداد ۸۰ پیکسل در ۸۰ پیکسل در نظر گرفته شده است.

- d$: این پارامتر مرتبط با Imageset پیش‌فرض گراواتار است.

- r$: این پارامتر مختصر عبارت Rating است و این وظیفه را دارا است تا ریتینگ مرتبط با ایمیل را مشخص سازد که به صورت پیش‌فرض دارای حداکثر ریتینگ است (منظور از ریتینگ گراواتار این است که مشخص می‌کند یک گراوتار دارای چه نوع محتوایی است و برای چه گروه‌های سنی مناسب است.)

- img$: این پارامتر مرتبط با تصویر است و در صورتی که مقدار این پارامتر true باشد، این فانکشن یک تگ <img> کامل را باز می‌گرداند و در صورتی که false باشد، صرفاً لینک را بازمی‌گرداند و باید آن لینک را بعداً داخل یک تگ <img> استفاده کرد.

atts$: این پارامتر مخخف Attributes است که حاوی آرایه‌ای است که می‌توان در تگ <img> وارد ساخت.

با مد نظر قرار دادن نکات فوق‌الذکر، حال نوبت به تفسیر فانکشن ()getGravatar می‌رسد. متغیر url$ حاوی آدرس سرویس گراواتار است که از پروتکل HTTPS استفاده می‌کند. در ادامه، ابتدا با استفاده از فانکشن ()trim اِسپیس‌های احتمالی اطراف ایمیل ورودی را حذف می‌کنیم که آدرس ایمیل به قول معروف تمیز شود سپس با استفاده از فانکشن ()strtolower، کلیهٔ حروف آدرس ایمیل را به حروف کوچک انگلیسی تبدیل کرده و در نهایت با استفاده از فانکشن ()md5 آدرس ایمیل را رمزنگاری می‌کنیم.

با استفاده از مفهومی تحت عنوان Concatenation، آدرس ایمیل رمزنگاری شده را به ادامهٔ متغیر url$ می‌چسبانیم که این کار با قرار دادن یک دات (نقطه) قبل از علامت = صورت می‌گیرد. در ادامه، سایر پارامترهای دلخواه را به آدرس یوآرال می‌چسبانیم و تست می‌کنیم ببینیم که آیا مقدار پارامتر img$ برابر با true است یا خیر که اگر true بود، آدرس یوآرال که پیش از این ساختیم را به عنوان مقدار اتریبیوت src تگ <img> در نظر می‌گیریم و سپس تست می‌کنیم ببینیم که آیا آرایهٔ atts$ پر شده است یا خیر که اگر این آرایه پر بود، با استفاده از یک حلقه هرچه به اصطلاح Key/Value وجود داشت را از هم جدا کرده و به عنوان پارامترهای ورودی تگ <img> در نظر می‌گیریم و در نهایت هم متغیر url$ را اصطلاحاً return می‌کنیم.

می‌بینیم که چگونه با این فانکشن سادهٔ پی‌اچ‌پی، به سادگی قادر خواهیم بود تا سرویس Gravatar را در پروژه‌های خود پیاده‌سازی نماییم (چنانچه علاقمند به فراگیری گام به گام زبان برنامه‌نویسی پی‌اچ‌پی هستید، می‌توانید به دورهٔ آموزش PHP در سکان آکادمی مراجعه نمایید.)

از بهترین نوشته‌های کاربران سکان آکادمی در سکان پلاس


online-support-icon