• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نکاتی چند از fuelphp
#1
سلام و درود.
دارم روی یه cms با fuelphp کار می کنم. البته قبلا با ci کار می کردم و می کنم و حالا برای یادگیری دارم این cms رو پیاده سازی می کنم. نکاتی که به درد دوستان بخوره رو اینجا می زارم تا استفاده کنن.

خوب اولین مشکلی که رونمایی شد مشکل ایجاد slug یا نام یکتا برای پست ها بود، تو ci هم این مشکل رو داریم که با زبان فارسی مشکل داره. برای حل این مشکل این کار رو انجام بدید:
به آدرس زیر در فرم ورک برید و فایل Inflector رو پیدا کنید:
کد:
fuel\core\classes
فایل رو باز کنید و خط زیر رو پیدا کنید(شمارش حدود 253 هست)
کد پی‌اچ‌پی:
if ($allow_non_ascii)
        {
            
// Strip regular special chars.
            
$str preg_replace("#[\.;:'\"\]\}\[\{\+\)\(\*&\^\$\#@\!±`%~']#i"''$str);
        } 

حالا فقط کافیه اینو جایگیزن کنید:
کد پی‌اچ‌پی:
if ($allow_non_ascii)
        {
            
// Strip regular special chars.
            
$str preg_replace("#[\.;:'\"\]\}\[\{\+\)\(\*&\^\$\#@\!±`%~']#iu"''$str);
        } 

چند خط پایین تر هم اینو پیدا کنید:
کد پی‌اچ‌پی:
$str preg_replace("#[/_|+ -]+#"$sep$str); 
و با این جایگزین کنید:
کد پی‌اچ‌پی:
$str preg_replace("#[/_|+ -]+#u"$sep$str); 

از این تابع اینطوری استفاده می کنیم:
کد پی‌اچ‌پی:
echo Inflector::friendly_title('از سرگیری پروازهای مسافری در فرودگاه حلب''-'true,true);
// returns از-سرگیری-پروازهای-مسافری-در-فرودگاه-حلب 

تابعی که من برای تولید اسلاگ یکتا نوشتم:
کد پی‌اچ‌پی:
    //create unique slug by name, field name is slug
function create_unique_slug($string)
{
    
$slug =\Inflector::friendly_title($string'-'TRUE,TRUE);
    
$i 0;
    while (
Model_Article::find_by_slug($slug))
    {    
        if (!
preg_match ('/-{1}[0-9]+$/'$slug ))
            
$slug .= '-' . ++$i;
        else
            
$slug preg_replace ('/[0-9]+$/', ++$i$slug );
        
    
    }   
    return 
$slug;    

نکتش هم اینه که فیلد دیتا بیس برای اسلاگ رو با نام slug ایجاد کنید.

اطلاعات بیشتر از این دستور در داکیومنت fuelphp
  پاسخ
تشکر شده توسط : molana
#2
برای ارسال پارامتر به تابع render از دستورات زیر استفاده کنیم:
کد پی‌اچ‌پی:
echo render('categories/_form'$__data); 

مثلا اگه بخوایم یه فرم رو هم برای ساخت پست استفاده کنید و هم برای ویرایش از دستور render برای فراخوانی فرم در view ویرایش و view ساخت پست استفاده می کنیم.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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