پرینت

تغییر در SQL برخی پنجره ها

مقدمه
در سایت ساز ضابط هر قسمت از سایت یک "پنجره" نامیده می شود. مثلا  قسمت لاگین یک پنجره است، لوگو بخش کاربری یک پنجره مستقل است، منو های دسته بندی یک پنجره و... این پنجره ها را می توانید در قسمت های مختلف قالب سایت "جابه جا" نمایید یا نمایش آن ها را "فعال و غیر فعال" نمایید و حتی ترتیب چیدمان آن را تغییر دهید.

تغییر اطلاعات پنجره
در برخی از انواع پنجره ها مانند "لیست ساده" با ویرایش SQL اطلاعات نمایش داده شده آنرا تغییر دهید. مثلا می توان دو پنجره از نوع "لیست ساده" ایجاد کنیم که یکی از آن لیست آخرین مطالب پربازدید در این هفته را نمایش دهند و دیگری آخرین مطالب دسته بندی اخبار را نمایش دهند.

فعال بودن
این قابلیت روی تمام پنجره ها فعال نیستند و فقط در پنجره های ذکر شده در بالا فعال هستند.

نکته مهم (پشتیبان گیری)
در صورتیکه قصد دارید مقادیر SQL WHERE  پیش فرض پنجره ها را تغییر بدهید. مقادیر اولیه را در یک نوت پد کپی کنید تا در صورتیکه به هر دلیلی موفق به اینکار نشدید امکان بازگشت به قبل باشد. زیرا در صورتیکه مقادیر را پاک نمایید و یا اشکالی در آن ایجاد نمایید. رفع آن به عهده پشتیبان نیست و برای رفع آن نیازمند پرداخت هزینه خواهید بود. لذا خواهشمندیم بدون بک آپ از داده های اولیه تغییری ایجاد نفرمایید.

پنجره های با قابلیت تغییر در SQL
محتوا و فروشگاه - لیست ساده
محتوا و فروشگاه - لیست ساده با تصویر
محتوا و فروشگاه - لیست ساده با تصویر بزرگ
محتوا و فروشگاه - اسلایدر Slidorion = آی دی 54
محتوا و فروشگاه - اسلایدر TN3
محتوا و فروشگاه - آخرین مطالب متحرک
فهرست ها - منوی بالای سایت داینامیک
دیدگاه - لیست ساده
آگهی ها - لیست با جزئیات

مثال های مورد استفاده از پنجره لیست ساده تا اسلاید TN3
صفحات منتشر شده + موجود در دسته بندی با آی دی 3 و 4 و 5 باشد + چیدمان بر اساس تاریخ انتشار (نزولی) + محدودیت 60 تا
publish='1' and daste in(3,4,5) order by date_submit desc limit 60

همه صفحات + فیلد دلخواه با نام لاتین bargozide روی yes انتخاب شده + چیدمان بر اساس تاریخ انتشار (صعودی) + محدودیت 20 تا
additional_info like '%bargozide|yes%' order by date_submit asc limit 20
اینجا تنظیم نکردیم که صفحه حتما باید روی حالت انتشار قرار گیرد و فقط مهم است فیلد اضافی که تعریف کردیم انتخاب شده باشد.

صفحات منتشر شده + موجود در دسته بندی با آی دی 16 و 18 نباشد + فیلد دلخواه با نام لاتین khas روی yes انتخاب نشده باشد + چیدمان بر اساس تاریخ انتشار (نزولی) + محدودیت 60 تا
publish='1' and daste not in (16,18) and additional_info not like '%khas|yes%'  order by date_submit desc limit 60
تمام صفحات مننشتر شده به غیر از صفحاتی که در دسته بندی 16 و 18 هستند و فیلد دلخواه خاص روی yes انتخاب نشده باشد را نمایش دهد.

صفحات منتشر شده + تاریخ انتشار تا دو روز گذششه + چیدمان بر اساس تعداد بازدید (نزولی) + محدودیت 50 تا
publish='1' and (TO_DAYS(NOW()) - TO_DAYS(date_submit))<=2 order by no_of_views desc limit 50
تمام صفحات منتشر شده پربازدید دو روزگذشته را نمایش می دهیم

صفحات منتشر شده + تیک ویژه زده شده + چیدمان بر اساس تعداد بازدید (نزولی) + محدودیت 5 تا
publish='1' and special='1' order by date_submit desc limit 5

صفحات منتشر شده + تیک مطالب تصادفی + چیدمان بر اساس تصادفی+ محدودیت 3 تا
publish=1 and randompost=2 order by rand() limit 3
مثال های مورد استفاده از پنجره دیدگاه لیست ساده
دیدگاه های تایید شده + چیدمان بر اساس تاریخ انتشار (نزولی) + محدودیت 10 تا
approved='yes' order by date_submitted desc limit 10

مثال های مورد استفاده از پنجره آگهی لیست با جزئیات
آگهی تایید شده + حذف نشده + منقضی نشده + چیدمان بر اساس تاریخ بروزرسانی (نزولی) + محدودیت 10 تا
approved='yes' and status<>'closed'  and TO_DAYS(NOW()) - TO_DAYS(DATE_ADD(date_submitted,INTERVAL auction_period DAY)) < 0 order by orderdate desc LIMIT 10

نمایش تصادفی
در پنجره با آی دی 54 نمی توانید از rand() استفاده نمایید. کلا در صورتیکه تعداد رکورد ها زیاد باشد و از نمایش تصادفی استفاده شود CPU زیادی در سرور مصرف می شود.

موارد درخواستی مشتریان
فیلتر: آگهی تایید شده + انقضا نشده + حذف نشده + تصویری صفحه اول + دسته بندی 43
چیدمان: ستاره نزولی + تاریخ بروزرسانی نزولی محدودیت 10 عدد
approved='yes' and DATE_ADD(date_submitted,INTERVAL auction_period DAY) > NOW()  and status='open' and gallery_featured='yes' and cid='43' order by num_star desc,orderdate desc limit 10

فیلتر: آگهی تایید شده + انقضا نشده + حذف نشده + تصویری صفحه اول + دسته بندی 1 و 2
چیدمان: تاریخ بروزرسانی نزولی + رندوم + محدودیت 20 عدد
approved='yes' and DATE_ADD(date_submitted,INTERVAL auction_period DAY) > NOW()  and status='open' and gallery_featured='yes' and cid  in ('1,2') order by orderdate desc,rand() limit 20

فیلتر: آگهی تایید شده + انقضا نشده + حذف نشده + تصویری صفحه اول + ارسال شده در 30 روز گذشته
چیدمان: بازدید نزولی + رندوم محدودیت 10 عدد
approved='yes' and DATE_ADD(date_submitted,INTERVAL auction_period DAY) > NOW()  and status='open' and gallery_featured='yes' and (TO_DAYS(NOW()) - TO_DAYS(date_submitted))<=30 order by order by no_of_views desc limit 10

2 دیدگاه

94/10/29 سه شنبه 05:58
[2] پشتیبان:

سلام اگر به نمونه ها توجه کنید تقریبا بیشتر قسمت کد SQL را می توانید بنویسید. در ابتدا فیلتر ها را می نویسیم و با and هر فیلتر را جدا می کنیم. ترتیب فیلتر ها اهمیت ندارند. بعد از فیلتر ها نوبت نحوه چیدمان است که بر اساس ترتیب نوشتن الویت بندی می شوند DESC نزولی و ASC صعودی هستند و در نهایت نیز تعداد نمایش را مشخص می کنید. مثلا فیلتر approved='yes' یعنی آگهی تایید شده، and status='open' یعنی آگهی که توسط کاربر حدف نشده است و and TO_DAYS(NOW()) - and DATE_ADD(date_submittedINTERVAL auction_period DAY) NOW() به معنی اینکه آگهی هنوز منقضی نشده است بنابراین فکر می کنم این موارد در تمام کد هاتون باید باشد. and gallery_featured='yes' هم برای فیلتر آگهی های تصویری صفحه اول استفاده می شود. حال نوبت نحوه چیدمان است. کد چیدمان پنجره آگهی تصویری به صورت زیر است. order by `num_star` DESCrand()featured descdate_submitted desc یعنی اول آگهی ستاره دار به صورت رندوم، سپس آگهی های جدیدتر ارسال شده. حالا فکر می کنم کمی بیشتر آشنا شدید موارد مورد نظرتون را در همین صفحه در قسمت موارد درخواستی مشتریان می نویسم
94/10/29 سه شنبه 05:26
[1] gholizadeh:

سلام لطفا کد SQL موارد زیر را اعلام نمایید. 1- بروزترین آگهیهای تصویری تایید شده که دارای تصویر هستند و دردسته بندی 5 قرار دارندبه شکل نزولی ،طوری که ستاره بیشتر دارای الویت باشدنمایش داده شود و تعدادنمایش در پنجره 20 آگهی است. 2- بروزترین آگهیهای تصویری تایید شده که دارای تصویر هستند و دردسته بندی (1و2 ) قراردارند به صورت رندوم نمایش داده شود تعداد نمایش 20 آگهی. 3- پر بازدید ترین آگهیهای تصویری تایید شده در 30 روز اخیر،به شکل نزولی ، تعداد نمایش 10 آگهی. 4- نمایش آگهی تصویری تایید شده از دسته 10 به شکل رندوم تعداد در پنجره 10. با تشکر

SecImgSes