یه نویسنده

مقاله، کتاب، برنامه و ...

مقاله، کتاب، برنامه و ...

یه نویسنده

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

طبقه بندی موضوعی

۳ مطلب در شهریور ۱۳۹۲ ثبت شده است

استفاده از تابع jdf در codeigniter

تمام برنامه نویسان php با تابع jdf آشنایی دارن. تابعی که به جرات میشه گفت هر سایتی دیدید که با php نوشته شده و تاریخ رو به جلالی نشون میده، از تابع jdf استفاده کرده. البته هسته این تابع بهره گیری از unix time هست که توی پست قبلی مختصری دربارش توضیح دادم.

codeigniter بهترین فریم ورک از نظر یادگیری و تسلط سریع هست و حتی در پروژه های کوچک و متوسط بسیار کاربردی. در این پست قصد دارم تا تابع jdf رو در codeigniter راه اندازی کنم.

5ساعت خطایابی صرفا بخاطر استفاده از کتابخانه از قبل کانفیگ شده

این چند روز روی یه سایت خبری دارم کار میکنم(البته از رنگ بنفش). انواع اقسام گالری‌ها روی این سایت پیاده سازی کردم. از تایکر خبری گرفته تا اسلایدر متن و عکس. بیشتر وقت من روی این سایت کار کردن با کتابخونه‌ها و پلاگین‌های jquery برای راه اندازی اسلایدر.

آخرین روزهای برنامه‌نویسی و اتام کار هست که دیدم میگه حتما زیر عکسهای گالری هم در حالت نمایش و هم قبل از نمایش تمام صفحه متن بزاریم. در صورتی که قبلا اصلا گالری آن چنانی نمیخواست. یه مورد بهم  نشون دادو گفت همینطوری باشه و منم دیدم صرفا عکس خالی هست که با جدول نشون داده میشه.

خلاصه کار ما کشید به پلاگین گالری galleria که والا انصافا خیلی هم امکانات متنوعی داره. البته برای تهیه تمپلیت‌های متنوع اون باید مبلغ پرداخت بشه. ولی توی سایتها بگردید اگر همون تم رو استفاده کرده باشه میتونید کل کتابخونه به همراه تم رو دانلود کنید. منم سایتی پیدا کردم که تمپلیت folio رو نصب و راه‌اندازی کرده بود. گفتم دیگه دنبال خوندن مستندات برای کانفیگ و نصبش نرم و مستقیما از کانفیگ‌های همین سایت استفاده کنم.

همه چیز خوب پیش رفت تا این که بر روی صفحه من وقتی اسکرول میکردم صفحه کادر سیاه نشون میداد.


اول فکر میکردم شاید پلاگین‌ها دارن روی هم تاثیر میزارن با فایرباگ تست کردم دیدم مشکل خاصی نیست. به فکر غیرفعال کردم اسکرول ماوس بر روی همون div افتادم دیدم نشد. و خلاصه همه کار کردم. بعد از حدود ۴ ساعت بالا و پایین زدن و مقایسه فایل css اصلی گالریا با کانفیگ شده اون فهمیدم از فایل کانفیگ css همون سایت که div نمایش گالریا رو بخاطر همخونی با تمپلیت سایتش حدود 10000px- به طرف چپ برده بود و این بر روی سایت من باعث باز شدن صفحه به عرض 10000 شده که با اولین اسکرول به انتهای عرض طرف چپ میرفت.

نتیجه اخلاقی این‌که بهتره همیشه کانفیگ از روی مستندات اصلی انجام بشه که حدود 20 دقیقه هم وقت گیر نیست و بر روی همون پلاگین تسلط هم پیدا می‌کنید.

توابع مفید mysql در برنامه نویسی- تابع UNIX_TIMESTAMP

بارها پیش میاد که بی خبر از توابع مفید در دیتابیس یا دستورات php اقدام به نوشتن قطعه کد و یا فشار بیشتر به سرور بر اثر درگیر شدن با کدهایی که توابع اونها در داکیومنت دیتابیس یا php‌هست.

در این جا قصد دارم تا چند تا از توابع مفید mysql که دونستن اونها به سرعت بیشتر برنامه کمک میکنه.


بدست آوردن زمان unix:

در برنامه نویسی php با تابع time زیاد سر و کار خواهید داشت مثلا برای ثبت مقاله جدید در سایت نیاز به تاریخ درج مقاله هم هست که از قطعه کد زیر برای بدیت آوردن زمان فعلی و ذخیره اون در دیتابیس استفاده میشه


<?php
$time = time();
$sql = "INSERT INTO `article`(`a_title`,`a_content`,`a_time`)
VALUES
('$title','$content','$time')
?>

 در اینجا اصل کار برای ذخیره زمان فعلی همون تابع time هست که بعد از ذخیره به کمک تابع جامع jdf به راحتی به فرمت دلخواه هجری شمسی نشون داده میشه. البته قابلیتهای زمان unix و همچنین تابع time برای زمان یونیکش بیشتر از اینها هست.

ولی با چرخیدن در مستندات mysql پی به تابع UNIX_TIMESTAMP بردم که کار با تاریخ یونیکس رو راحت کرده و نیازی به فراخوانی تابع time در هر بار ثبت مقاله جدید نیست. نمونه‌ای از اجرای تابع UNIX_TIMESTAMP رو در زیر مشاهده می‌کنید.

حالا تکه کد بالا بصورت زیر در میاد

<?php
$sql = "INSERT INTO `article`(`a_title`,`a_content`,`a_time`)
VALUES
('$title','$content','UNIX_TIMESTAMP(now())')
?>

در برنامه‌های بزرگ که نیاز به فراخوانی زیاد تاریخ درج داره مثل ثبت ساعات ورود و خروج کاربران استفاده کمتر از تابع php و استفاده مستقیم از توابع mysql میتونه در روند اجرای برنامه و از درگیر شدن با الگوریتم‌های مختلف کم کنه. در این روش در همان لحظه‌ای که کوئیری زده میشه ساعت هم توسط mysql بدیت میاد و در دیتابیس ذخیره میشه