mojtabapordel

جستجوي سراسري در جوملا (دوستان متخصص برنامه نويسي كمك كنن)

4 پست در این موضوع

سلام دوستان

يه سوالي برام پيش اومده كه مدت هاست ذهنمو درگير كرده. مستقيم ميرم سر اصل مطلب:

همينطور كه مي دونيد كامپوننت جستجوي پيش فرض جوملا فقط بخش هاي خاصي از سايت رو جستجو مي كنه (مطالب، پیوندها، مجموعه ها، بخش ها، خبرخوان ها). خيلي از كامپوننت ها هم پلاگين جستجوي مخصوص خودشون رو دارن. مثلا وقتي فوكا دانلود رو نصب مي كنين، براي اينكه بتونين با استفاده از سرچ جوملا، عبارت مورد نظر رو تو بخش هاي مختلف فوكادانلود هم جستجو كنين، بايد پلاگين سرچ فوكادانلود رو نصب كنين.

حالا سوال اينه كه براي كامپوننت هايي كه پلاگين جستجو ندارن، يا پلاگين جستجوشون تجاريه و نميشه تهيه كرد، راه حل چيه؟

1) آيا ميشه جستجوي جوملا رو طوري تغيير داد كه همه جاي سايت رو بگرده (در واقع كل ديتابيس رو جستجو كنه و همه ي عبارات مرتبط رو از هر جاي سايت كه هستن، بكشه بيرون)؟

2) اگه راه اول شدني نيست، چجوري ميشه براي كامپوننت هاي مختلف، پلاگين جستجو نوشت؟ آيا قاعده و آموزش كلي وجود داره؟

مثلا اگه بشه كاري كرد كه اطلاعاتي رو كه كامپوننت xForms نمايش ميده، جستجو كرد و يا عبارات داخل جداول Event Table Edit رو، خيلي عالي ميشه. (ويا هر كامپوننت ديگه اي رو)

منتظر پاسخ ها و نظرات دوستان متخصص هستم

ممنون

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش لاراول آموزش cPanel آموزش php آموزش فرم ساز RSform آموزش ساخت ربات جذب ممبر آموزش ساخت ربات دوستیابی آموزش ساخت ربات فروشگاهی برای ووکامرس آموزش طراحی سایت داینامیک با php آموزش بخش پشتیبانی با rsticket

ممنون مهندس جان

من آموزش انگليسيشو خوندم. اما چون برنامه نويسي بلد نيستم، يه جاشو متوجه نشدم. موقع ساخت فايل php اون قسمت:

case 'exact':
           $text        = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false );
           $wheres2     = array();
           $wheres2[]     = 'LOWER(a.name) LIKE '.$text;
           $where         = '(' . implode( ') OR (', $wheres2 ) . ')';
           break;

رو متوجه نشدم چجوري بايد تغيير بدم. البته پلاگين هاي جستجوي خود جوملا رو نگاه كردم. اما بازم چيزي دستگيرم نشد. مثلا براي پلاگين جستجوي وب لينك ها اينجوريه:

case 'exact':
               $text        = $db->Quote('%'.$db->escape($text, true).'%', false);
               $wheres2    = array();
               $wheres2[]    = 'a.url LIKE '.$text;
               $wheres2[]    = 'a.description LIKE '.$text;
               $wheres2[]    = 'a.title LIKE '.$text;
               $where        = '(' . implode(') OR (', $wheres2) . ')';
               break;

به هرحال منتظر تكميل آموزشت هستم عزيز.

در ضمن، اين روش ساخت پلاگين تو نسخه هاي مختلف جوملا فرقي نمي كنه؟

Share this post


Link to post
Share on other sites
ممنون مهندس جان

من آموزش انگليسيشو خوندم. اما چون برنامه نويسي بلد نيستم، يه جاشو متوجه نشدم. موقع ساخت فايل php اون قسمت:

case 'exact':
           $text        = $db->Quote( '%'.$db->getEscaped( $text, true ).'%', false );
           $wheres2     = array();
           $wheres2[]     = 'LOWER(a.name) LIKE '.$text;
           $where         = '(' . implode( ') OR (', $wheres2 ) . ')';
           break;

رو متوجه نشدم چجوري بايد تغيير بدم. البته پلاگين هاي جستجوي خود جوملا رو نگاه كردم. اما بازم چيزي دستگيرم نشد. مثلا براي پلاگين جستجوي وب لينك ها اينجوريه:

case 'exact':
               $text        = $db->Quote('%'.$db->escape($text, true).'%', false);
               $wheres2    = array();
               $wheres2[]    = 'a.url LIKE '.$text;
               $wheres2[]    = 'a.description LIKE '.$text;
               $wheres2[]    = 'a.title LIKE '.$text;
               $where        = '(' . implode(') OR (', $wheres2) . ')';
               break;

به هرحال منتظر تكميل آموزشت هستم عزيز.

در ضمن، اين روش ساخت پلاگين تو نسخه هاي مختلف جوملا فرقي نمي كنه؟

سلام،

این یعنی کدوم ستون ها رو بگرده. a. که اول همه ی ستون ها اومده هم یک نام مستعار هست. احتمالا توی FROM اینجوری آورده:

FROM #__weblinks as a

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری