فیلترها – سیستم اسمارتی
فیلترها – سیستم اسمارتی – ایران ترجمه – Irantarjomeh
مقالات ترجمه شده آماده گروه کامپیوتر
مقالات ترجمه شده آماده کل گروه های دانشگاهی
مقالات
قیمت
قیمت این مقاله: 38000 تومان (ایران ترجمه - Irantarjomeh)
توضیح
بخش زیادی از این مقاله بصورت رایگان ذیلا قابل مطالعه می باشد.
شماره | ۵۴ |
کد مقاله | COM54 |
مترجم | گروه مترجمین ایران ترجمه – irantarjomeh |
نام فارسی | فیلترها – سیستم اسمارتی |
نام انگلیسی | Filters – Smarty |
تعداد صفحه به فارسی | ۲۷ |
تعداد صفحه به انگلیسی | ۱۴ |
کلمات کلیدی به فارسی | فیلتر، سیستم اسمارتی |
کلمات کلیدی به انگلیسی | Filters, Smarty |
مرجع به فارسی | |
مرجع به انگلیسی | |
کشور |
فصل ۱۱
فیلترها – سیستم اسمارتی
در حالیکه اغلب برنامههای مکمل (plug in) به سیستم اسمارتی(Smarty) شامل توابع و روالهای تغییر دهنده یا مادیفایرها میباشند، نوع دیگری از برنامههای مکمل گردیده بنام فیلترها نیز وجود دارند که عملکردهای بیشتری را برای شما به ارمغان میآورند. این فیلترها به شما اجازه میدهند تا نسبت به ساخت برنامههای مکمل بیشتری که دارای تعامل افزونتری با روالهای کاری داخلی سیستم اسمارتی میباشند اقدام نمایید که برای این کار لازم است تا روالهای فراخوانی تابع PHP، که بهنگامی اجرا خواهند شد که فازهای خاصی از عملکردهای تجزیه قالب و اجرا اعمال شده باشند، تنظیم گردند.
سه نوع مختلف از این فیلترها عبارتند از:
پیش فیلتر
پس فیلتر
فیلتر خروجی
فیلترها – سیستم اسمارتی
پیش فیلترها
برنامههای مکمل شده پیش فیلتر قبل از کمپایل قالبهای اسمارتی به اسکریپتهای PHP فراخوانده میشوند. بر این اساس راهحل جامعی برای برخی از عملیات مشخص مرتبط با منابع قالبی وجود دارند، نظیر برداشت کلمات نامرتبط. این امر مخصوصاً برای سیستمهای مدیریت محتوا، که در آن کاربران مجاز به تبادل محتوا در قالبهای اسمارتی میباشند، مفید خواهد بود. از جمله عملکرد مفید دیگر دستورات قالببرداری و فاصله سفید اضافه از فایلهای جاوا اسکریپت میباشد، تا آنکه اندازه دانلود فایلهای مورد نظر خود را بهینه سازید.
برنامه مکمل jStrip این امر را به دقت انجام میدهد و در آدرس Smarty Wiki ذیل موجود است:
پس فیلترها
برنامههای مکمل شده مرتبط با پس فیلترها همانند پیش فیلترها میباشند، اما آنها پس از کمپایل قالبهای اسمارتی در اسکریپتهای PHP اجرا میشوند، نظیر هدرها یا توابع تعریف XML بیشتر.
مثال دیگر از برنامه مکمل rel2abs نشأت میگیرد که جایگزین کلیه URLهای مرتبط در فایل قالب با نگارش URI مطلق منطبق میگردد. این خصیصه در آدرس ذیل موجود است:
فیلترهای خروجی
برنامههای مکمل مرتبط با فیلترهای خروجی بهنگامی فراخوانی میشوند که اسمارتی به طور حقیقی برای نمایش خروجی قالب کمپایل تولید شده در پویشگر آماده میشود.این موضوع متمایز از نگارش قبلی است چرا که برنامههای مکمل شده پس فیلتر بر روی قالبهای کمپایل شده قبل از آنکه بر روی دیسک ذخیره شوند اجرا میگردند.
لازم است تا احتیاط مقتضی در این زمینه لحاظ گردد، چرا که فیلترهای خروجی تا زمانی که قالب اجرا نشود و خروجی تولید نگردد، اجرا نخواهند شد. پس از آنکه خروجی بوسیله این دسته از فیلترها تغییر یافت، تنها بر روی سیستم کشینگ اسمارتی ذخیره میگردد (البته در صورتی که این ویژگی فعال باشد).
فیلترها – سیستم اسمارتی
ساخت فیلترها
سه راه اصلی برای ساخت فیلترها و مهیا ساختن آن برای قالبهای اسمارتی وجود دارد:
ثبت بک برنامه مکمل فیلتر در زمان اجرا و اشاره داشتن اسمارتی به فراخوان تابع PHP در داخل اسکریپت قالب با استفاده از توابع register-*filter.
وادار ساختن اسمارتی جهت بارگیری اتوماتیک یک فیلتر از دیرکتوری برنامههای مکمل (پلاگ-این (برنامههای ساخته شده مکمل)) با استفاده از تابع load-filter.
تنظیم دستی خصیصه auto load-filters اسمارتی جهت بارگیری فیلترهای متناسب به صورت اتوماتیک.
لطفا توجه داشته باشید که پارامتری که بنام imp 1 خوانده میشود معرف تابع یا نام روشی است که اسمارتی فرا میخواند و میتواند بصورت موارد ذیل باشد:
یک ارزش رشتهای نگهدارنده نام تابع
یک آرایه مرتبط با آرایه فرم
یک آرایه مرتبط با آرایه فرم
معنی این مورد برای روالهای مکمل فیلتر بدین صورت خواهد بود که اسمارتی نسبت به ارسال منبع قالب یا خروجی قالب بعنوان اولین آرگومان و آبحکت اسمارتی خاص بعنوان دومین آرگومان به تابع PHP اقدام میکند و انتظار دارد تا شما منبع تغییر یافته یا خروجی را از تابع بازگردانید.
فیلترها – سیستم اسمارتی
ثبت یک فیلتر در زمان اجرا
بعنوان مثال، چگونگی استفاده از register-outputfilter جهت ثبت یک فیلتر خروجی در زمان اجرا نشان داده شده است:
همانگونه که میتوانید مشاهده کنید، تابع PHP در زمان اجرا با اسمارتی رجیستر میشود و یک نگارش تغییر یافته خروجی را باز میگرداند و بر این اساس کلمه Smarty پر رنگ میشود. در حالیکه این یک مثال ساده است، میتوان آن را با یک نگارش پیچیدهتر کلمات کلیدی جستجوی پر رنگ دینامیک تعمیم داد.
همچنین میتوانید یک آرایه را به register-outfilter (و یا هر یک از توابع دیگر register-*filter ) انتقال داد تا آنکه به اسمارتی گوشزد شود تا نسبت به فراخوانی کلاس ارائه شده یا روش آبجکت همانند ذیل اقدام کند:
بارگیری دستی یک فیلتر
روش دیگری جهت بارگیری فیلترها در اسمارتی وجود دارد که این خود بعنوان راه معمول ساخت فایلهای مکمل و ذخیرهسازی آنها در یک دیرکتوری از پیش تعریف شده میباشد. اسمارتی پس از آن فیلتر مشخص شده را شامل مینماید و بهنگام نیاز آن را استفاده میکند.
با تدوام فرمت استاندارد توابع register-*filter اسم فایل مکمل فیلتر میبایست منطبق با قواعد ذیل باشد:
…
بارگیری اتوماتیک یک فیلتر
یکی از ویژگیهای نامطبوع روش قبل در زمینه بارگیری روال مکمل فیلتر آن است که شما میبایست از روشload-filter بر روی هر قالبی که خواستار اجرای آن هستید استفاده کنید. حال چه روی خواهد داد اگر خواسته باشید که این فیلتر بر روی کل وب سایت یا برنامه کاربردی شما اجرا شود؟ این عمل را میتوان با فیلترهای بارگیری اتوماتیک با استفاده از خصیصه load-filter اسمارتی انجام داد.
…
فیلتر شماره ۱: حذف دستورات HTML
یکی از مثالهای کلاسیک برای روال مکمل پیش فیلتر مثالی است که توضیحات HTML را از قالبها حذف میکند. معمولا این توضیحات تنها مرتبط با توسعه سفید وب سایت شما یا برنامههای کاربردی آن میباشد، بنابر این میتوان آنها را برای کاهش اندازه دانلود صفحات خود حذف نمود. این امر هیچ گونه تغییر قابل توجهی را برای صفحات یا قالبها بوجود نمیآورد، اما کاربران داشتن تلاش بیشتر را در این عرصه ترغیب مینمایند.
ساخت یک اسکریپت PHP جدید بنام remove-comments.php با مضمون ذیل:
…
فیلترها – سیستم اسمارتی
فیلتر شماره ۲: اطلاعات محک
یکی از نیازهای شایع برای توسعه دهندگان وب بوجود آوردن مستندات لازم برای برنامههای کاربرد PHP خود میباشد تا آنکه اطمینان حاصل شود که هر چیزی بگونهای عملگرایانه در جای خود قرار گرفته است. روش معمول این کار ثبت زمان در بخشهای مختلف کد و پس از آن محاسبه زمانی هر یک از بخشها و برآورد روالهایی جهت ارتقای مضامین مد نظر میباشد.
با این وجود، به هنگامی که این معیار بصورت دستی با در نظر گیری هر بخش از کد PHP محقق میشود، تجزیه قالب و مراحل کامپایل بحساب آورده نمیشود. یکی از راههای عبور از این معضل بوجود آوردن مکمل پس فیلتر میباشد که بسادگی نسبت به ثبت زمان، به هنگامی که اسمارتی کامپایل یک قالب را تمام میکند، اقدام نموده و برنامه مکمل فیلتر خروجی دیگر نیز زمان پردازش را محاسبه نماید و اطلاعات معیار تولید شده را به خروجی قالب اضافه نماید. ما این روال مکمل را بعدا مورد بررسی قرار میدهیم و آن را با اسکریپت محک کلی آغاز مینمائیم.
…
فیلتر شماره ۳: خروجی فشرده با gzip
از جمله مورد بسیار مناسب برای فیلترهای خروجی تغییر روشی است که بر اساس آن وب سایت و برنامه کاربردی شما نسبت به ارسال دادهها به پویشگر وب اقدام میکند. یکی از بهترین روشها جهت ارتقای عملکرد صفحات خود فشرده سازی آنها است، چه با دستورات مطرح شده قبلی و یا با یک الگوریتم واقعی فشرده سازی، نظیر GZIP. اغلب پویشگرهای وب امروزه با صفحات وب فشرده بخوبی کار میکنند.
ما هم اکنون از فیلتر خروجی که خروجی قالب از اسمارتی را فشرده میکند استفاده میکنیم و به هنگامی که هدرهای HTTP مناسب را عبور میدهیم، خروجی فشرده شده را به پویشگر وب ارسال میداریم. کد سورس برنامه مکمل ذیلا عرضه گردیده است. این کد را کپی نموده و آن را بنام فایل outputfilter.gzip.php تحت زیرفهرست فایلهای مکمل اسمارتی ذخیره کنید.
فیلتر شماره ۴: پررنگ کردن موتور جستجو
یکی از رولهای مکمل مورد علاقه من از فصل ۱۰ پررنگ نمودن دینامیکی کلمات کلیدی جستجویی میباشد که بوسیله کاربران سایت شما وارد شده است. اجازه دهید تا این ایدا را گسترش دهیم و همین کار را برای کاربرانی که از طریق موتورهای جستجویی نظیر گوگل وارد سایت ما میشوند انجام دهیم. پروتکل HTTP پویشگرهای وب را وادار میکنند تا هر بار که کاربر بر روی لینکی کلیک مینماید نسبت به ارسال یک مقدار خاص اقدام کند و بر این اساس صفحه نهایی از این مسئله که کاربر از کجا آمده است واقف میگردد. نام این خصیصه فیلد مراجعهگر بوده و در صورتی که کاربر بصورت دستی نسبت به تایپ URL بر روی صفحه وب شما در منطقه فضای آدرس اقدام کند این فیلد ممکن است خالی باشد.
این مورد اطلاعات بسیار خوبی برای وب سایتها بشمار میآید، چرا که اجازه میدهد تا آنکه میزان تاثیر بازاریابی و تبلیغات مربوطه را دریابید و حتی اطلاعات مناسبی را در خصوص آنکه کاربران از کجا شما را مییابند بدست آورید.
بنابر این، با استفاده از این بیت خاص اطلاعات، اجازه دهید تا نسبت به ساخت روال مکمل فیلتر خروجی اسمارتی اقدام کنیم که در آن این روال هر بار که قالب تولید شده در حال ارسال به پویشگرهای کاربران ما باشند فراخوانی شده و سپس هر یک از کلمات کلیدی جستجو استفاده شده را پررنگ میکند.
…
فیلترها – سیستم اسمارتی