شما وارد حساب خود نشده و یا ثبت نام نکرده اید. لطفا وارد شوید یا ثبت نام کنید تا بتوانید از تمامی امکانات انجمن استفاده کنید.
اعلانات

- توجه: بخش لینک سازی و بخش کاملا آزاد ایجاد شد تا کاربران برای لینک سازی مطالب و موضوعات مرتبط با سایت خودشون رو با بقیه و موتورهای جستجو به اشتراک بگذارند توجه کنید اگر کاربری روزانه بالای 5 مطلب و لینک ارسال نمایید اکانت کاربری مسدود خواهد شد.

- توجه: دوستان لطفا سوالات خود را از طریق شماره تماس موجود در سایت اعلام نکنید با پیامک یا تلگرام و... این شماره برای تماس های ضروری مشتریان فروشگاه قرار گرفته است.

- قابل توجه کاربران: سوالات خود را از طریق پیام خصوصی ارسال ننمایید و فقط از طریق انجمن پیگیر باشید به سوالاتی که از طریق پیام خصوصی ارسال شود به هیچ عنوان جواب داده نخواهد شد.


تبلیغات
ads
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش تبدیل حروف عربی به فارسی
#1
سلام
برای تبدیل حروف عربی به فارسی آیا فانکشنی ساخته شده؟
میخوام وقتی کاربر یک کلمه ای که برای جستجو نوشته است رو قبل از جستجو کردن به کلمه فارسی تبدیل کنه و بعد جستجو کنه
چون خیلی وقتها کاربر حروف عربی که شبیه حروف فارسی است رو جستجو میکنه و وبسایت چیزی نمیاره

لطفا کمک کنید تا یک فانکشن برای این منظور بنویسیم و در function.php قرار دهیم

اینپوتی که چک خواهیم کرد:

کد php:
<input type="text" name="sPattern" id="query" value="<?php echo osc_esc_html( osc_search_pattern() ); ?>" /> 
با احترام
  پاسخ
تبلیغات
ads
#2
سلام 
تابع خاصی نیست ولی میتونید از این تابع که نوشتم استفاده کنید و توی فایل 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'); 
  پاسخ
#3
(۱۳۹۶-۰۷-۲۶، ۰۲:۱۴ ب.ظ)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'); 

ممنونم از شما
این دقیقا چیزی است که میخواستم
با احترام
  پاسخ
#4
آقا مرتضی اگر امکان داره لطفا این فانکشن رو تغییر بدید تا title و description رو هم عوض کنه.
همین فانکشنی که جملات عربی search رو عوض میکنه رو لطفا تغییر بدید تا title و description رو هم عوض کنه تا وقتی کسی با کلمات عربی اگهی ثبت میکنه این فانکشن به کلمات فارسی تبدید کنه
خیلی ممنون
با احترام
  پاسخ
تبلیغات
ads
#5
توی پلاگینی که توی این تایپیک گفتم میتونید تغییرات رو انجام بدید و از طریق همان هوک که برای تابع منطقه تعریف کردم برای تبدیل تایتیل و توضحیات هم میتونید استفاده کنید.
http://forum.faosclass.com/Thread-%D9%81...n=lastpost
  پاسخ
#6
(۱۳۹۶-۰۸-۰۱، ۱۱:۴۰ ق.ظ)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'); 
با احترام
  پاسخ
#7
چون اگر title و description رو اضافه نکنیم که این فانکشن کامل نمیشه. چون خیلی ها با حروف عربی آگهی ثبت میکنند و در جستجو نمیاره. اگر لطف کنید و title و description رو هم به فانکشن اضافه کنید ممنون میشیم
با احترام
  پاسخ
تبلیغات
ads
#8
برای تبدیل از این کد زیر استفاده کنید و داخل یک افزونه فعال قرار بدید یا افزونه ای که قبلا به اسم 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'); 
  پاسخ
#9
(۱۳۹۶-۰۸-۰۹، ۱۲:۲۸ ب.ظ)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 ها رو هم به این فانکشن اضافه کنیم؟
با احترام
  پاسخ
#10
برای فیلدهای اختصاصی بررسی کردم امکان پذیر نبود وگرنه میذاشتم چون بعد از فیلتر هست و امکان تصحیح نیست
  پاسخ
تبلیغات
ads


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل با اعداد فارسی salar810 1 158 ۱۳۹۷-۰۲-۱۳، ۰۹:۲۵ ق.ظ
آخرین ارسال: morteza
  تغییر نوشته های فارسی kmr11 3 928 ۱۳۹۵-۰۷-۰۹، ۰۵:۳۴ ب.ظ
آخرین ارسال: morteza
  [پرسش و پاسخ با آموزش] تبدیل قیمت عددی به حروف در هنگام ثبت آگهی saaaaam 14 1,862 ۱۳۹۵-۰۴-۲۰، ۰۱:۵۲ ق.ظ
آخرین ارسال: saaaaam
  اضافه کردن فیلد سوال فارسی برای جلو گیری از ثبت نام ربات های خارجی kala 1 1,019 ۱۳۹۳-۱۱-۱۵، ۰۶:۴۲ ب.ظ
آخرین ارسال: morteza
  تبدیل شماره تماس کاربران به عکس kala 2 1,217 ۱۳۹۳-۱۱-۱۵، ۰۶:۲۹ ب.ظ
آخرین ارسال: morteza
  ایجاد راهنمای فارسی javad.hokmabadi 3 1,994 ۱۳۹۲-۱۰-۰۵، ۰۲:۴۲ ب.ظ
آخرین ارسال: morteza

پرش به انجمن:


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