block در yii
یکی از مباحثی که در yii1 استفاده میکردیم استفاده از clip بود
در yii2 این قابلیت در ویجت block قرار داده شده
فهوم کلی به این صورت است که شما برخی مطالب یا برخی اسکریپت ها را فقط در صفحات خاصی نیاز به استفاده دارین
مثلا برای استفاده از اسکریپت های اسلایدرتون فقط آن هارا توی صفحه اصلی سایت نیاز دارین
به همین دلیل میخواین که این اسکریپتها فقط در این صفحه لود بشه و در سایر صفحات لود نشه و سرعت سایتتون را پایین نیاورد.
استفاده از ویجت block
جهت استفاده به این صورت عمل می کنیم:
برای مثال ما اسکریپتی اسلایدر خود را میخواهیم فقط در ویوی صفحه اصلی لود شود
برای اینکار ابتدا در layout مد زیر را قرار می دهیم
block in yii2
if (isset($this->blocks['js'])) { echo $this->blocks['js']; }
سپس در ویو صفحه اصلی
کد زیر را قرار می دهیم
<?php $this->beginBlock('js') ?> <?php $this->registerJsFile('/scripts/js/owl.carousel.min.js' , ['position' => View::POS_END]); ?> <?php $this->endBlock() ?>
تا زمانی که ما در ویو block خود را صدا نزدیم این اسکریپت در layout لود نخواهد شد
block in yii2