• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
فرستادن مقادیر اضافی به لی اوت
#1
Question 
سلام خدمت همه دوستان...

به طور پیشفرض وقتی با متد render یه ویویی رو فراخوانی می کنیم ، کدهایی که توی اون فایل ویو قرار دادیم به لی اوت ارسال می شه و به جای <? content$ =?> قرار می گیره...

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

مثلا من می خوام توی یه صفحه یه کد جاوااسکریپت خاص رو داخل هدر قرار بدم و در صفحات دیگه نمی خوام باشه..
چطور می تونم این کار رو بکنم؟؟(البته روش معمولیش رو بلدم...کد رو داخل تگ اسکریپت قرار می دی و توی همون فایل ویو ارسال می کنی...اما من می خوام بره داخل هدر قرار بگیره)

یعنی می شه یه چیزی مثل <? content$ =?> داخل هدر تعریف کرد و بعد بهش مقدار داد ؟؟

پیشاپیش ممنون دوستانی که بنده رو راهنمایی بفرمایند. Heart Heart
تا یادگیری در حد کمال پیش خواهم رفت!
Blush
  پاسخ
تشکر شده توسط :
#2
سلام،
برای مثالی که زدی راه حل هست،
کد پی‌اچ‌پی:
<?php $this->registerCssFile('@web/css/file.css');?>
<?php $this
->registerJsFile('@web/js/file.js', ['depends' => [yii\web\JqueryAsset::className()]]);?>
اینجوری فقط توی view مورد نظرت این فایل‌ها توی هدر و فوتر اضافه میشن.
حتی مثلا توی فایل JS می‌تونی وابستگی رو مشخص کنی، مثلا jQuery. که فایل مورد نظر رو بعد از کتابخونه jQuery لود کنه.

یا حتی اگر فایل نه، خواستی یه سری کدهای JS رو اضافه کنی توی یک view خاص.
کد:
<?php
$this->registerJs('
    $(document).ready(function() {
         // Your Jquery Codes.
    });
');

فک کنم واضحه، ولی این هم بگم که این کدها رو باید توی view بذاری.
غایب
  پاسخ
تشکر شده توسط : mojtaba.sln
#3
(۱۳۹۵ مرداد ۱۸, ۰۴:۳۸ ب.ظ)Alaa نوشته: سلام،
برای مثالی که زدی راه حل هست،
کد پی‌اچ‌پی:
<?php $this->registerCssFile('@web/css/file.css');?>
<?php $this
->registerJsFile('@web/js/file.js', ['depends' => [yii\web\JqueryAsset::className()]]);?>
اینجوری فقط توی view مورد نظرت این فایل‌ها توی هدر و فوتر اضافه میشن.
حتی مثلا توی فایل JS می‌تونی وابستگی رو مشخص کنی، مثلا jQuery. که فایل مورد نظر رو بعد از کتابخونه jQuery لود کنه.

یا حتی اگر فایل نه، خواستی یه سری کدهای JS رو اضافه کنی توی یک view خاص.
کد:
<?php
$this->registerJs('
    $(document).ready(function() {
         // Your Jquery Codes.
    });
');

فک کنم واضحه، ولی این هم بگم که این کدها رو باید توی view بذاری.

ممنونم از پاسختون...بله همین کاری که گفتید رو انجام دادم و کار کرد..

اما یه چیز دیگه..
حالا اگه بخوایم یه سری داده ی دیگه که کد جاوااسکریپت یا سی اس اس نیستند اضافه کنیم باید چیکار کنیم؟؟

بذارید با مثال بگم:
توی فریم ورک جنگو (پایتون) می شه هرچند تا که خواستید از این بلوک ها درست کنید :

مثلا توی فایل main یه بلوک به نام head ایجاد می کنید بعد توی فایل دوم به این بلوک مقدار می دین (حالا هر چیزی می خواد باشه)...
یه بلوک به نام content مثلا درست می گنیم و توی فایل دوم به اون هم مقدار می دیم...
و الی آخر هر چندتا که بخوایم می تونیم بلوک درست کنیم...

توی یی چنین چیزی امکان داره؟؟

پیشاپیش ممنونHeart
تا یادگیری در حد کمال پیش خواهم رفت!
Blush
  پاسخ
تشکر شده توسط :
#4
سلام مجدد،
توی Yii هم همچین امکانی هست، باید از Layoutها استفاده کنین.
این لینک رو مشاهده کنین. [لینک]
یکم باید باهاش کار کنید تا دستتون بیاد. مثل پایتون سر راست نیست متاسفانه.
غایب
  پاسخ
تشکر شده توسط : mojtaba.sln


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان