فیلترها

ساخت وبلاگ

این محتوای این صفحه به روز شده و به منابع جدید توسعه دهنده Moodle منتقل شده است. اطلاعات موجود در صفحه دیگر نباید به روز مشاهده شود.

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

فیلترها راهی برای تبدیل خودکار محتوا قبل از تولید هستند. مثلا

  • معادلات تعبیه شده را به تصاویر ارائه دهید (فیلتر Tex)
  • پیوندها به پرونده های رسانه ای می توانند به طور خودکار برای بازی در رسانه به یک اپلت تعبیه شده تبدیل شوند.
  • ذکر اصطلاحات واژه نامه می تواند به طور خودکار به پیوندها تبدیل شود.

امکانات بی پایان است. تعدادی از فیلترهای استاندارد با مودل وجود دارد ، یا می توانید خود را ایجاد کنید. فیلترها یکی از ساده ترین انواع افزونه ها برای ایجاد هستند. این صفحه نحوه.

فهرست

ایجاد یک فیلتر اساسی

در طی این آموزش ، ما یک فیلتر مثال ساده ایجاد خواهیم کرد. ما قبل از هر وقوع کلمه "جهان" ، کلمه ای را اضافه خواهیم کرد.

1. از آنجا که فیلتر ما بخشی از یک ماژول نیست ، باید آن را درون پوشه "فیلتر" قرار دهیم. بنابراین ، ما یک دایرکتوری به نام "Filter/Helloworld" ایجاد می کنیم.

2. در داخل آن پوشه ، پرونده ای به نام "filter. php" ایجاد می کنیم.

3. Inside that PHP file, we define a class called filter_helloworld, that extends the moodle_text_filter class. (Note that the file doesn't end by closing the php section with the '?>برچسباین استاندارد برای مودل است و برای جلوگیری از مشکلات مربوط به فضای سفید استفاده می شود.)

4- در داخل آن کلاس ، ما باید یک روش به نام "فیلتر" را تعریف کنیم. این باعث می شود HTML به عنوان یک آرگومان فیلتر شود. سپس روش باید آن را تغییر داده و متن پردازش شده را برگرداند. عوض کن '// . در بالا با

5. نسخه . php پرونده نسخه . php نسخه ماژول شما و سایر ویژگی ها را پیگیری می کند و برای نسخه های جدیدتر مودل مورد نیاز است. برای یک لیست کامل از ویژگی ها ، لطفاً به نسخه . php مراجعه کنید. نسخه . php را در فهرست "فیلتر/Helloworld" خود قرار دهید.

این اساساً همه چیز در آن است!

نام فیلتر خود را

برای امتحان کردن فیلتر جدید ، ابتدا باید به عنوان سرپرست وارد شوید و با مراجعه به مدیریت صفحه ► افزونه ها ► فیلترها ► فیلترها را مدیریت کنید.

وقتی این کار را انجام دادید ، متوجه خواهید شد که افزونه شما نامی ندارد. ما یک قدم را از دست دادیم:

6. در داخل پوشه "Filter/Helloworld" ، پوشه ای به نام "Lang" ایجاد کنید و در آنجا پوشه ای به نام "EN" ایجاد کنید.

7. در داخل آنجا ، پرونده ای به نام "filter_helloworld. php" ایجاد کنید. یعنی شما به تازگی پرونده "Filter/Helloworld/Lang/en/filter_helloworld. php" را ایجاد کرده اید.

8. در آن پرونده ، قرار دهید

برای جزئیات بیشتر به API String مراجعه کنید.

فیلتر خود را امتحان کنید

ما به تازگی به صفحه مدیریت فیلترها رسیده بودیم. اگر اکنون آن صفحه را بارگیری کنید ، اکنون باید فیلتر خود را با نام مناسب خود نشان دهد. اکنون فیلتر خود را روشن کنید.

فیلترها برای تمام متنی که با توابع خروجی format_text () چاپ می شود ، اعمال می شود و اگر آن گزینه را روشن کرده اید ، format_string (). بنابراین ، برای دیدن فیلتر خود در عمل ، برخی از مطالب حاوی کلمه "جهان" را در جایی اضافه کنید ، به عنوان مثال ، یک دوره آزمایش ایجاد کنید و از کلمه در توضیحات دوره استفاده کنید. وقتی در لیست دوره به آن دوره نگاه می کنید ، باید ببینید که فیلتر شما آن را دگرگون کرده است.

اضافه کردن یک صفحه تنظیمات جهانی

برخی از فیلترها می توانند از برخی تنظیمات بهره مند شوند تا مدیر بتواند نحوه کار خود را کنترل کند. فرض کنید ما می خواهیم چیزی غیر از "جهان" سلام کنیم. برای افزودن تنظیمات جهانی به فیلتر مورد نیاز:

9. پرونده ای به نام "filtersettings. php" را در داخل پوشه "Filter/Helloworld" ایجاد کنید. از پرونده استاندارد "settings. php" در مودل 2. 6 و بعد استفاده کنید.

10. در پرونده "filtersettings. php" ، چیزی مانند:

11. در پرونده زبان "فیلتر/Helloworld/Lang/en/filter_helloworld. php" رشته های لازم را اضافه کنید:

12. فیلتر را تغییر دهید تا از تنظیمات جدید استفاده کنید:

در مودل استاندارد ، فیلترهای سانسور ، MediaPlugin و Tex همه نمونه های خوبی از نحوه استفاده از فیلترها از پیکربندی جهانی مانند این را ارائه می دهند.

یادداشتی در مورد عملکرد

نکته مهمی که باید هنگام ایجاد فیلتر به خاطر بسپارید این است که فیلتر برای تبدیل هر بیت خروجی متن با استفاده از Format_Text () و احتمالاً Format_String () نیز تغییر می یابد. این بدان معنی است که شما باید مراقب باشید ، یا می توانید مشکلات عملکرد بزرگی ایجاد کنید. اگر مجبور هستید داده ها را از پایگاه داده دریافت کنید ، سعی کنید آن را ذخیره کنید تا فقط تعداد مشخصی از نمایش داده های پایگاه داده را در هر بار انجام دهید. فیلتر واژه نامه نمونه ای از این است.(من مطمئن نیستم که یک مثال چقدر خوب است ؛-))

اگر فیلتر شما از نحو ویژه استفاده می کند یا مبتنی بر ظاهر بستر در متن است ، توصیه می شود سریع و ارزان انجام دهیدstrpos ()ابتدا قبل از اجرای جستجوی کامل مبتنی بر Regex جستجو کنید و جایگزین کنید.

پیکربندی محلی

علاوه بر این ، در Moodle 2. 0 ، فیلترها همچنین می توانند در هر زمینه پیکربندی متفاوتی داشته باشند. به عنوان مثال ، فیلتر واژه نامه می تواند به گونه ای تغییر یابد که در انجمن A ، شما می توانید فقط کلمات را از یک واژه نامه خاص پیوند دهید ، بگویید واژه نامه A ، در حالی که در Forum B شما را انتخاب می کنید کلمات را از واژه نامه B پیوند دهید.

برای انجام این نوع کارها ، باید پرونده ای به نام filterlocalsettings. php اضافه کنید. در آن ، شما باید یک فرم Moodle را تعریف کنید که یک زیر کلاس از FILTER_LOCAL_SETTINGS_FORM باشد. علاوه بر روشهای استاندارد FormsLib ، شما همچنین باید یک روش Save_Changes را تعریف کنید. نمونه خوبی از این در نصب استاندارد مودل وجود ندارد. برای ادامه مثال ما:

13. پرونده ای به نام "Filterlocalsettings. php" را در داخل پوشه "Filter/Helloworld" ایجاد کنید.

14. در پرونده "filterlocalsettings. php" ، قرار دهید:

15. در صورت وجود فیلتر را برای استفاده از تنظیمات جدید گسترش دهید. در صورت تنظیم تنظیمات ، فیلتر باید بتواند کار کند ، به عنوان مثال با بازگشت به تنظیمات جهانی یا پیش فرض در این مورد

دو نوع فیلتر

در گذشته ، مودل از دو نوع فیلتر مختلف پشتیبانی می کرد:

  • فیلترهای مستقل مانند نمونه ای که در بالا ایجاد کردیم. اینها در پوشه ای در داخل پوشه "فیلتر" زندگی می کنند. به عنوان مثال ، در "Filter/MyFilter"."Filter/Tex" نمونه ای از فیلتر اصلی این نوع است.
  • فیلترهایی که بخشی از یک ماژول فعالیت بودند. در این حالت ، کد فیلتر در داخل پوشه "mod/mymod" زندگی می کند."Mod/Glossary" نمونه ای از ماژول هسته با یک فیلتر بود.

گزینه دوم دیگر در Moodle 2. 5 و بعد وجود ندارد. همه فیلترها در پوشه فیلتر زندگی می کنند. البته ، یک فیلتر ممکن است به یک افزونه دیگر مرتبط ، مانند Mod_glossary بستگی داشته باشد. اگر چنین است ، باید آن را در پرونده نسخه . php اعلام کنید.

محتوای پویا

از Moodle 2. 7: در (تعداد بسیار کمی) صفحات - این امکان وجود دارد که محتوای صفحه توسط AJAX * پس از بارگذاری صفحه بارگذاری شود (به عنوان مثال معادلات در یک واژه نامه). در برخی از انواع فیلتر (به عنوان مثال MathJax) JavaScript لازم است تا برای انجام نشانه نهایی روی خروجی فیلتر اجرا شود. برای این نوع فیلترها ، هنگامی که محتوای جدید به صفحه اضافه می شود ، یک رویداد JavaScript ایجاد می شود (محتوا قبلاً توسط فیلتر در PHP پردازش شده است). JavaScript برای یک فیلتر می تواند به این اعلان های رویداد گوش دهد و گره های DOM آسیب دیده را دوباره پردازش کند.

آموزش تحلیل گری...
ما را در سایت آموزش تحلیل گری دنبال می کنید

برچسب : نویسنده : ملیکا زارعی بازدید : 44 تاريخ : پنجشنبه 14 ارديبهشت 1402 ساعت: 11:51