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

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

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


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 پی اچ پی، فواصل اطراف ایمیل ورودی را حذف می‌کنیم که آدرس ایمیل اصطلاحاً «تر و تمیز» شود. سپس با استفاده از فانکشن ()strtolower کلیه ی حروف آدرس ایمیل را به حروف کوچک انگلیسی تبدیل کرده و در نهایت با استفاده از فانکشن ()md5 آدرس ایمیل را رمزنگاری می کنیم.

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

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

0


بهزاد مرادی

از جمله علائق بهزاد مرادی می توان به نشر علم،‌ سرمایه گذاری روی نسل آینده، زبان برنامه نویسی پی اچ پی و جامعه متن باز و همچنین راه اندازی استارتاپ و کارآفرینی اشاره کرد و او بر این باور است که سکان آکادمی بستری است که از آن طریق می تواند به علائق اش جامه ی عمل بپوشاند. از جمله فعالیت های وی در سکان آکامی می توان به تالیف دوره های آنلاین برنامه نویسی و ترجمه مقالات وبلاگ اشاره کرد. 






از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)