سپاس ها 0
سپاس شده 30 بار در 31 ارسال
۱۳۹۶-۰۷-۲۶، ۱۲:۳۰ ب.ظ
(آخرین ویرایش در این ارسال: ۱۳۹۶-۰۷-۲۷، ۰۱:۲۹ ب.ظ، توسط morteza.)
سلام
برای تبدیل حروف عربی به فارسی آیا فانکشنی ساخته شده؟
میخوام وقتی کاربر یک کلمه ای که برای جستجو نوشته است رو قبل از جستجو کردن به کلمه فارسی تبدیل کنه و بعد جستجو کنه
چون خیلی وقتها کاربر حروف عربی که شبیه حروف فارسی است رو جستجو میکنه و وبسایت چیزی نمیاره
لطفا کمک کنید تا یک فانکشن برای این منظور بنویسیم و در function.php قرار دهیم
اینپوتی که چک خواهیم کرد:
کد php:
<input type="text" name="sPattern" id="query" value="<?php echo osc_esc_html( osc_search_pattern() ); ?>" />
سپاس شده توسط | |
|
تاریخ عضویت: فروردین ۱۳۹۲
سپاس ها 101
سپاس شده 339 بار در 342 ارسال
سلام
تابع خاصی نیست ولی میتونید از این تابع که نوشتم استفاده کنید و توی فایل functions.php قالبتون بزارید.
کد php:
function search_replace_word(){ $p_sPattern = trim(strip_tags(Params::getParam('sPattern'))); $replace_word = str_replace(array('ي', 'ك', 'ة',"۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"), array('ی', 'ک','ه',"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"),$p_sPattern); Params::setParam('sPattern', $replace_word); } osc_add_hook('before_search','search_replace_word');
سپاس شده توسط | |
|
سپاس ها 0
سپاس شده 30 بار در 31 ارسال
(۱۳۹۶-۰۷-۲۶، ۰۲:۱۴ ب.ظ)morteza نوشته است: سلام
تابع خاصی نیست ولی میتونید از این تابع که نوشتم استفاده کنید و توی فایل functions.php قالبتون بزارید.
کد php:
function search_replace_word(){ $p_sPattern = trim(strip_tags(Params::getParam('sPattern'))); $replace_word = str_replace(array('ي', 'ك', 'ة',"۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"), array('ی', 'ک','ه',"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"),$p_sPattern); Params::setParam('sPattern', $replace_word); } osc_add_hook('before_search','search_replace_word');
ممنونم از شما
این دقیقا چیزی است که میخواستم
سپاس شده توسط | |
|
سپاس ها 0
سپاس شده 30 بار در 31 ارسال
آقا مرتضی اگر امکان داره لطفا این فانکشن رو تغییر بدید تا title و description رو هم عوض کنه.
همین فانکشنی که جملات عربی search رو عوض میکنه رو لطفا تغییر بدید تا title و description رو هم عوض کنه تا وقتی کسی با کلمات عربی اگهی ثبت میکنه این فانکشن به کلمات فارسی تبدید کنه
خیلی ممنون
سپاس شده توسط | |
|
تاریخ عضویت: فروردین ۱۳۹۲
سپاس ها 101
سپاس شده 339 بار در 342 ارسال
توی پلاگینی که توی این تایپیک گفتم میتونید تغییرات رو انجام بدید و از طریق همان هوک که برای تابع منطقه تعریف کردم برای تبدیل تایتیل و توضحیات هم میتونید استفاده کنید.
http://forum.faosclass.com/Thread-%D9%81...n=lastpost
سپاس شده توسط | |
|
سپاس ها 0
سپاس شده 30 بار در 31 ارسال
(۱۳۹۶-۰۸-۰۱، ۱۱:۴۰ ق.ظ)morteza نوشته است: توی پلاگینی که توی این تایپیک گفتم میتونید تغییرات رو انجام بدید و از طریق همان هوک که برای تابع منطقه تعریف کردم برای تبدیل تایتیل و توضحیات هم میتونید استفاده کنید.
http://forum.faosclass.com/Thread-%D9%81...n=lastpost
آخه اون فانکشن اولا کار نمیکنه هنوز و روش داریم اونجا کار میکنیم تا تکمیل کنیم و بعدش اون فانکشن اصلا کارش یه چیز دیگه است.
همین فانکشنی که برای search اینجا نوشتید و کار کرد و خیلی عالی بود رو لطفا ویرایش کنید و title , description رو هم اضافه کنید خواهشا
همین فانکشن:
کد php:
function search_replace_word(){ $p_sPattern = trim(strip_tags(Params::getParam('sPattern'))); $replace_word = str_replace(array('ي', 'ك', 'ة',"۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"), array('ی', 'ک','ه',"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"),$p_sPattern); Params::setParam('sPattern', $replace_word); } osc_add_hook('before_search','search_replace_word');
سپاس شده توسط | |
|
سپاس ها 0
سپاس شده 30 بار در 31 ارسال
چون اگر title و description رو اضافه نکنیم که این فانکشن کامل نمیشه. چون خیلی ها با حروف عربی آگهی ثبت میکنند و در جستجو نمیاره. اگر لطف کنید و title و description رو هم به فانکشن اضافه کنید ممنون میشیم
سپاس شده توسط | |
|
تاریخ عضویت: فروردین ۱۳۹۲
سپاس ها 101
سپاس شده 339 بار در 342 ارسال
برای تبدیل از این کد زیر استفاده کنید و داخل یک افزونه فعال قرار بدید یا افزونه ای که قبلا به اسم SIMPLE_PLUGIN فرستاده بودم فعال کنید و داخل فایل index.php قرار بدید این تکه کد در نسخه جدید او اس کلاس استفاده کردیم و به زودی همراه نسخه جدید منتشر میشه
کد php:
function faosclass_jalali_convert_atf_send($aItem){ $arabic = array('ي', 'ك', 'ة',"۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"); $farsi = array('ی', 'ک','ه',"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"); $aItem['cityArea'] = str_replace($arabic,$farsi ,$aItem['cityArea']); $aItem['contactName'] = str_replace($arabic,$farsi ,$aItem['contactName']); $aItem['s_zip'] = str_replace($arabic,$farsi ,$aItem['s_zip']); $aItem['address'] = str_replace($arabic,$farsi ,$aItem['address']); $aItem['title']['fa_IR'] = str_replace($arabic,$farsi ,$aItem['title']['fa_IR']); $aItem['description']['fa_IR'] = str_replace($arabic,$farsi ,$aItem['description']['fa_IR']); return $aItem; } osc_add_filter('item_add_prepare_data', 'faosclass_jalali_convert_atf_send'); osc_add_filter('item_edit_prepare_data', 'faosclass_jalali_convert_atf_send');
سپاس شده توسط | |
|
سپاس ها 0
سپاس شده 30 بار در 31 ارسال
(۱۳۹۶-۰۸-۰۹، ۱۲:۲۸ ب.ظ)morteza نوشته است: برای تبدیل از این کد زیر استفاده کنید و داخل یک افزونه فعال قرار بدید یا افزونه ای که قبلا به اسم SIMPLE_PLUGIN فرستاده بودم فعال کنید و داخل فایل index.php قرار بدید این تکه کد در نسخه جدید او اس کلاس استفاده کردیم و به زودی همراه نسخه جدید منتشر میشه
کد php:
function faosclass_jalali_convert_atf_send($aItem){ $arabic = array('ي', 'ك', 'ة',"۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"); $farsi = array('ی', 'ک','ه',"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"); $aItem['cityArea'] = str_replace($arabic,$farsi ,$aItem['cityArea']); $aItem['contactName'] = str_replace($arabic,$farsi ,$aItem['contactName']); $aItem['s_zip'] = str_replace($arabic,$farsi ,$aItem['s_zip']); $aItem['address'] = str_replace($arabic,$farsi ,$aItem['address']); $aItem['title']['fa_IR'] = str_replace($arabic,$farsi ,$aItem['title']['fa_IR']); $aItem['description']['fa_IR'] = str_replace($arabic,$farsi ,$aItem['description']['fa_IR']); return $aItem; } osc_add_filter('item_add_prepare_data', 'faosclass_jalali_convert_atf_send'); osc_add_filter('item_edit_prepare_data', 'faosclass_jalali_convert_atf_send');
خیلی ممنون آقا مرتضی، این همونی بود که میخواستم
آیا میتونیم custom fields ها رو هم به این فانکشن اضافه کنیم؟
سپاس شده توسط | |
|
تاریخ عضویت: فروردین ۱۳۹۲
سپاس ها 101
سپاس شده 339 بار در 342 ارسال
برای فیلدهای اختصاصی بررسی کردم امکان پذیر نبود وگرنه میذاشتم چون بعد از فیلتر هست و امکان تصحیح نیست
سپاس شده توسط | |
|
|