یک وبلاگ دیگر از یک برنامه نویس دیگر
نوشتههایی با برچسب PHPClasses
گراواتار
اردیبهشت ۱۳م
گراواتار سیستمیه که همه ی کسانی که با WordPress سر و کار دارن میشناسنش. این سیستم به شما امکان میده یه آواتار رو ایجاد کنید، و از این آواتار در همه سیستمهایی که از گراواتار پشتیبانی میکنن استفاده کنید. اما گراواتار چطوری کار میکنه؟
خیلی ساده، شما اونجا یه اکانت میسازید و میتونید بیشتر از یک میل رو هم به یه اکانت نسبت بدید و هم میتونید که برای هر ایمیل خودتون یه آواتار جداگانه ایجاد کنید.
گراواتار یه سیستم خیلی ساده داره. شما آدرس ایمیل شخصی رو که میخواید تصویرشو بگیرید رو به حروف کوچک تبدیل میکنید، بعد آدرس ایمیل رو به صورت md5 درمیارید و همین. دیگه آدرس عکس رو دارید، در حقیقت لینک آدرس عکس رو توی PHP میتونید اینجوری بدست بیارید :
$email = "someone@somewhere.com"; $default = "http://www.somewhere.com/homestar.jpg"; $size = 40; $rate = 'g'; $grav_url = "http://www.gravatar.com/avatar/" . md5( strtolower( $email ) ) . "?default=" . urlencode( $default ) . "&size=" . $size . "&r=" . $rate; echo "<img src=\"$grav_url\" alt=\"\" />";
سه تا مقدار default (که آدرس عکس پیشفرضه شماست که اگه نبود اون عکس نمایش داده بشه) و size که اندازه عکس مورد نظر شماست (که اندازه یه ظلع مربع عکسه) که بیشتر از ۵۱۲ هم نمیتونه باشه. (باشه هم مهم نیست، 512 برمیگردونه) و rate (که میگه سایت شما جزو چه دسته ای هست، G ، PG ،R ،X ) که هر سه اختیاری هستن.
خوب، این روش کلی مزیت داره. مزیتاش یکی همین یه دست بودن آواتار کاربر همه جاست. از نظر ریاضیاتی میشه ثابت کرد تعداد کلماتی که md5 برابر داشته باشن بی نهایته :) – تعداد حالت های مختلف md5 ، محدوده. یعنی ۲ به توان ۱۲۸ حالت مختلف. ولی تعداد کلمات چند تاست؟ بی نهایت. خوب یعنی بی نهایت کلمه هست که md5 یکسان داشته باشه، ولی خوب چقدر احتمال داره که دو تا ایمیل یک md5 داشته باشن؟ به نظر من یه احتمال نزدیک به صفر – پس این زیاد مهم نیست. ولی با این روش،آدرس لینک نمیتونه ایمیل رو لو بده، و رباتهای مزاحم نمیتونن که از طریق عکسهای گراواتار، آدرس ایمیل رو بگیرن. کاربر هم میتونه یه جا عکس رو عوض کنه و کلی جای دیگه این عکس رو داشته باشه. این سیستم، جدیدا xmlrpc رو هم پیاده سازی کرده که امکانات بیشتری میتونه به شما بده (طراح های WordPress علاقه زیادی به xmlrpc دارن ولی من به شخصه json رو ترجیح میدم که از طریق javascript هم به راحتی قابل دسترسیه. نه این که xmlrpc نیست، ولی json خیلی راحت تره) کلاس PHP هم براش پیاده سازی کردن و توی این آدرس هست. فقط من که تا حالا نتونستم بفهمم API Key واسه این xmlrpc رو از کجا باید بگیرم!
یه میل زدم برای ساپورت درباره API Key و اونا گفتن که API Key همونه که توی WordPress.com به شما میدن. همونی که مثلا برای Akismet هم استفاده میشده. خوب مشکل حل شد :)
راستی اینم گراواتار من :
مترجم گوگل
دی ۲۸م
همون طور که مطمئنا میدونید مترجم گوگل یکی از ابزارهای قدرتمندیه که توی وب خیلی میتونه کاربردی باشه و کمک کنه. اگه بخواید از این مترجم توی طرف کلاینت استفاده کنید مثلا با کمک جاوا اسکریپت، تقریبا هیچ کاری نداره، چون گوگل API اونو در اختیارتون گذاشته و با افزودن یه سری کد جاوااسکریپت به کد صفحتون، همه چی در اختیار شماست.
اما اگه بخواید از این کد برای طرف سرور استفاده کنید مثلا برای PHP مشکلاتی پیش میاد. چند تا کلاس توی PHPClasses پیدا کردم واسه این کار ولی همه یه روش نسبتا بد داشتن، صفحه مربوط به گوگل رو میخوندن، درخواستو میفرستادن و بعد هم در نهایت صفحه بازگشتی رو بررسی میکردن برای جواب که اصولا روش خیلی بدیه! اگه گوگل یه تغییری تو صفحه بده (که داد) دیگه اون کدها کار نمیکنن.
این شد که نشستم و یه کد واسه این کار نوشتم، یه کد که خیلی ساده به وب سرویس اصلی درخواست رو ارسال میکنه و پاسخ رو که json هم هست، رو به آرایه تبدیل میکنه و در اختیار قرار میده.
این کلاس برای ارسال درخواست از CURL استفاده میکنه اما در صورت در دسترس نبودن از Snoopy استفاده میکنه. قابلیت شناسایی زبان هم وجود داره که میتونه در مواردی مفید باشه.
این کلاس بالاخره امروز تایید شد و در این آدرس قرار گرفت.
البته دموی این کد رو هم میتونید اینجا ببینید.
به روز رسانی : بلافاصله بعد از انتشار کلاس، یک نفر خبر داد که این کلاس با نسخه جدید مترجم گوگل کاملا سازگار نیست، این شد که نشستم و این کلاس رو برای نسخه جدید مترجم هم آپدیت کردم.
برای دانلود، از انتهای همین پست هم میتونید استفاده کنید.
دوباره آپدیت شد در تاریخ Friday, November 26 2010
Open Search – PHP
دی ۲۳م
خیلی وقت پیش یه کلاسی نوشته بودم برای پیاده سازی پروتکل Open Search . اگه دیده باشید ، بروزر های جدید، مثلا فایرفاکس (همه نسخه ها) و اینترنت اکسپلورر (از نسخه ۷ -گویا- به بعد) یه پنل اضافه کردن به سمت راست بالا برای جستجوی مستقیم تو بعضی موتورهای جستجو.
این پانل میتونه موتورهای جستجوی جدید رو هم قبول کنه،و شما برای اضافه کردن سایت خودتون به این پانل، باید یه فایل XML اضافه کنید به سایتتون و یه سری تگ هم توی قسمت Head صفحه بنویسید. اونوقت کاربر هر وقت که سایت شما رو ببینه اون پانل تغییراتی میکنه که نشون میده که سایت فعلی از قابلیت Open Search پشتیبانی میکنه. و بعد از اون کاربر میتونه موتور جستجوی شما رو هم به لیست اضافه کنه.
برای اینکار چند وقت پیش یه کلاس نوشتم و اونو تو سایت PHPClasses گذاشتم. میتونید از این ادرس بگیریدش. اگه سوالی بود هم همینجا میتونید بپرسید.




