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

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

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

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


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$: به جای این پارامتر، باید یک آدرس ایمیل Valid یا «معتبر» استفاده کرد.

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

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

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

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

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

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

با استفاده از مفهومی تحت عنوان Concatenation، آدرس ایمیل رمزنگاری شده را به ادامهٔ متغیر url$ می‌چسبانیم که این کار با قرار دادن یک دات یا نقطه قبل از علامت = صورت می‌گیرد. در ادامه، سایر پارامترهای دلخواه را به آدرس URL می‌چسبانیم و تست می‌کنیم ببینیم که آیا مقدار پارامتر img$ برابر با true است یا خیر.

اگر true بود، آدرس URL که پیش از این ساختیم را به عنوان مقدار اتریبیوت src تگ <img> در نظر می‌گیریم و سپس تست می‌کنیم ببینیم که آیا آرایهٔ atts$ پر شده است یا خیر. اگر این آرایه پر بود، با استفاده از یک حلقه، تمامی key/valueهای آن را از هم جدا کرده و به عنوان پارامترهای ورودی تگ <img> در نظر می‌گیریم. در نهایت هم متغیر url$ را اصطلاحا return می‌کنیم.

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