• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
سوال در خصوص آدرس دهی فایلهای قالب جدید در Yii
#1
سلام.
من داشتم بررسی میکردم ساختار استاندارد پیاده سازی قالب در Yii به چه صورته و از جمله این لینک رو بررسی کردم. اما چیزی که فهمیدم اینه که ما قالب جدید رو در پوشه theme میایم ایجاد میکنیم و تنظیماتشو انجام میدیم. و دیدم گفته شده که فایلهای View رو هم توی اون باید ایجاد کنیم.الان سوالم اینجاست که نمیشه از این روش استفاده کرد اما Viewها توی همون پوشه Protected بمونن؟

یا اینکه اگه من بیام و فایلهای CSSو JS قالبم رو توی یک پوشه ای بریزم و اون رو توی پوشه Layout توی Protected/view قرار بدم آیا کار استانداردی هست؟ آدرس دهیش اونا توی فایل قالبم -مثلا Layout.php به چه صورته؟

با تشکر
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :
#2
سلام
توی protected یه پوشه views هست که اونجا میتونی لایوت و فایلهای تم اسکریپتت رو بسازی

حالا شاید بخوای همزمان از چند قالب استفاده کنی ، یا امکان انتخاب قالب بدی به کاربرت ، خب بالا پیشفرض رو ساختی از این به بعد میای توی
themes دقیقا به همون شکل فایلها رو میسازی (اگر هم نساختی از فایل های پیشفرض اشتفاده میشه ، مثلا فقط میتونی فایل layout اصلی رو بذاری و بقیه از فایلهای توی protected/views لود میشن و استایل جدید بدی)

توی پروزه هم به این شکل عمل میکنی توی کنترلر

کد پی‌اچ‌پی:
$themes 'name of folder in themes';
Yii::app()->theme $theme

خیلی هم باحال میشه Smile
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : webnevesht
#3
یعنی خدا خیر دعا و آخرت رو بهت بده رضاجان.
جدی میشه بدون ساختن ویو جدید همون ویوها رو لود کنم؟
این کدی که دادی رو هم صرفا توی کنترلر بزارم خارج از اکشن ها دیگه درسته؟ رضا چند وقتیه زدم توی خط Yii خیلی بهم چسبیده. تا الان هرچی بوده قطعه کدهای مختلف بوده ماله پروژه های شرکت.الان یه پروژه ی خودمو صفر تا 100میخوام با Yiiبزنم. Big Grin

اگه توی همون View لایوت اصلیمو بسازم و CSS و JS هاشو هم اونجا بزارم توی فایل لایوت چه جوری باید آدرس CSS و JS توی اون پوشه رو بدم به لایوت برای لود کردن اسکریپت ها و CSSها؟
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :
#4
نقل قول: جدی میشه بدون ساختن ویو جدید همون ویوها رو لود کنم؟
بله
شما مثلا اسم کنترلرت مثلا blog هست پس ساختار پوشه بندی فایلهات میشه
protected/views/blog
و یک لایوت
protected/views/layouts/blog.php

حالا یه پوشه توی themes بساز با آدرس زیر
themes/blog2/views/layouts
که توش یه فایل لایوت اصلی یعنی blog.php رو بساز که کدهای سی اس اس و ... رو توش قرار بدی
بعد میتونی یه پوشه دیگه هم بسازی با آدرس
themes/blog2/static
که فایلهای سی اس اس و ... رو توش بذاری روش دستیبابی بهش هم از توی لایوت قالب دوم بصورت زیر هست مثلا

کد پی‌اچ‌پی:
<?php echo Yii::app()->theme->baseUrl?>/static/css.css 

نقل قول:این کدی که دادی رو هم صرفا توی کنترلر بزارم خارج از اکشن ها دیگه درسته؟
یه متد init بساز توی کنترلرت
کد پی‌اچ‌پی:
function init()
{
    
parent::init();
    
Yii::app()->theme 'blog2'


نقل قول:رضا چند وقتیه زدم توی خط Yii خیلی بهم چسبیده.
گوشت بشه به تنت Heart
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#5
رضا جان همه ی اینکارا رو کردم اما میره لایوت Default خودشو لود میکنه.

اینو اضافه کردم به فایل Controller.php درست شد. به نظرت استفاده ازش منطقی و استاندارده؟
کد پی‌اچ‌پی:
public $layout 'webroot.themes.YOUR_THEME_NAME.views.layouts.main'
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :
#6
کد پی‌اچ‌پی:
رضا جان همه ی اینکارا رو کردم اما میره لایوت Default خودشو لود میکنه
اسم لایوت پیشفرض و لایوتی که توی پوشه themes/blog2 میسازی باید یکی باشه اگه یکی نبود باید ست کنیش مجددا

کد پی‌اچ‌پی:
parent::init();
    
Yii::app()->theme 'blog2'
    
$this->layout newblog2''
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : webnevesht
#7
دمت گرم حل شد.ممنونBlush
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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