+44 (0)2 0718 39207
info@enovationsolutions.co.uk
  • Client Support
  • FR
  • IE
EnovationEnovationEnovationEnovation
+44 (0)2 0718 39207
  • WHAT WE DO
    • OUR SERVICES
      • Consultancy
      • Content Creation
      • Build & Design
      • Training
      • Hosting
      • Support & Maintenance
    • OUR SOLUTIONS
      • Moodle
      • Moodle Workplace
      • The LMS Totara Learn
      • Aura Talent
  • WHO WE ARE
    • About Enovation
    • Careers
  • CASE STUDIES
    • Smyths Toys
    • Tata Chemicals Europe
    • Courts Service of Ireland
    • OpenJaw
    • New College Lanarkshire
  • OUR PARTNERS
    • IntelliBoard
    • BigBlueButton
  • INSIGHTS
  • CONTACT US

Creating simple filter in Moodle 2

    Home Blog Creating simple filter in Moodle 2

    Creating simple filter in Moodle 2

    Tomek Muras | Blog, News | 8 December, 2010

    Filters in Moodle are pluggable elements that can convert an output text to some other text. This is currently used for the functionality like:

    • replacing text based emoticons with images (emoticon filter)
    • generating images for mathematical expressions (tex filer)
    • converting plain text URLs (http://…) into proper HTML links
    • and much more

    In this tutorial we will create a simple, stand-alone filter for Moodle 2. The simplest case is actually so simple, that nearly all functionality can be coded in just few lines of code, like:

    [sourcecode language=”php”]
    defined(‘MOODLE_INTERNAL’) || die();

    class filter_tidy extends moodle_text_filter {
    function filter($text, array $options = array()) {
    $text = tidy_repair_string($text, $tidyoptions, ‘utf8’);
    return $text;
    }
    }
    [/sourcecode]

    All we need to do is inherit class moodle_text_filter and implement it’s abstract method:

    [sourcecode language=”php”]
    public abstract function filter($text, array $options = array());
    [/sourcecode]

    The example above is copied and shortened code from the standard “tex” filter. For our tutorial we will create a simple filter for removing (censoring) “bad words”. There is a similar module in core Moodle called censor, we will create a new version of it. First, create a new directory named censor2. Inside create a file filter.php with full basic functionality of our filter:

    [sourcecode language=”php”]
    <?php
    defined(‘MOODLE_INTERNAL’) || die();

    class filter_censor2 extends moodle_text_filter {
    function filter($text, array $options = array()){
    $badwords = array(‘badword1′,’badword2’);

    foreach ($badwords as $badword) {
    $badword = trim($badword);
    $words[] = new filterobject($badword, ‘<span class=”censoredtext” title=”censored”>’,
    ‘</span>’, false, false,”****”);
    }

    return filter_phrases($text, $words);
    }
    }
    [/sourcecode]

    We only need one more file: censor2/lang/en/filter_censor2.php that will contain just a name of our plugin:

    [sourcecode language=”php”]
    <?php

    $string[‘filtername’] = ‘Word Censorship 2’;
    [/sourcecode]

    In our filter_censor2, we have used a filter_phrases function provided by Moodle API and defined in lib/filterlib.php. The function takes two arguments:

    • a full text for filtering – we simply pass our $text argument here
    • a list of filterobject objects

    Each filterobject is a very simple object that stores following information (in the same order as arguments for constructor):

    • $phrase – the phrase to be matched
    • $hreftagbegin – the text to be put before the matched text (default: <span class=”highlight”>)
    • $hreftagend – the text to be added after the match (default: <span class=”highlight”>)
    • $casesensitive – should matching $phrase be case sensitive (default: false)
    • $fullmatch – should we match only full words (default: false)
    • $replacementphrase – a string for replacing matched phrase (default NULL – meaning don’t replace the $phrase)

    Only the first argument is required, all the others have sensible default values.

    At this point we have a very simple but fully functional Moodle 2 filter! All that is left is to deploy it: copy whole censor2 directory into <your_Moodle_installation>/filter, go to Site administration -> Plugins -> Filters -> Manage filters and enable new filter. You can  download full source code.

    Next Previous
    Filter, Moodle+, Moodle2

    Related Post

    • alt=LMS info graphic outlining the aspects of a learning management system

      LMS for Retail Success

      Emma Cronin | Blog, News | 7 August, 2019

      Retail is a notoriously unpredictable industry that is dictated by its seasonal changes, trends and high staff turnover. When retailers equip their staff members with the necessary training and knowledge and skills cost-effectively, without interrupting their busy schedules, a culture of empowerment and encouragement is created. By introducing a cost-effective and customisable LMS, retail businesses are given the power to stay ahead of the curve.

    • Whats new in Moodle 2.0

      Mark Melia | Blog, News | 5 December, 2010

      Moodle 2.0, the long awaited next generation of Moodle was released on the 24th of November to much aclaim. In this blog post I am going to have a quick look at some of theRead more

    • 5 Signs Your LMS Isn’t Working

      Emma Cronin | Blog, News | 25 August, 2019

      At Enovation, we want to add value to your company with an effective learning management solution. This article will outline some telltale signs your current software isn’t working for you and what you should be looking for from your future LMS to ensure success.

    • Alt=moodleworkplace

      Moodle Workplace, the best of Moodle fine-tuned for corporate learning

      Audrey Colmer | Featured News, News | 30 May, 2019

      Do you want to know if Moodle Workplace is the right LMS for your organisation? In this post, we have tried to answer a few questions about Moodle’s new corporate learning solution.

    • Webinar: Adaptive Learning with Moodle & Totara Learn

      Audrey Colmer | News | 5 October, 2018

      Learning through Moodle or Totara Learn can be made more enjoyable by using adaptive learning methods. Join our webinar to find out more.

    • IntelliBoard Moodle Reporting analytics LMS data

      Webinar: Using IntelliBoard’s Analytics within Moodle to Increase Learners’ Engagement

      Audrey Colmer | News | 3 July, 2018

      Power up your Moodle reporting with IntelliBoard’s real-time analytics.

    NextPrevious

    Latest Insights

    • 25 August, 2019
      Comments Off on 5 Signs Your LMS Isn’t Working

      5 Signs Your LMS Isn’t Working

    • 14 August, 2019
      Comments Off on Digital Content for Learner Engagement

      Digital Content for Learner Engagement

    • alt=LMS info graphic outlining the aspects of a learning management system
      7 August, 2019
      Comments Off on LMS for Retail Success

      LMS for Retail Success

    • alt=Concentrated female working on an eLearning course
      23 July, 2019
      Comments Off on Collaborative e-Learning

      Collaborative e-Learning

    Archives

    • August 2019
    • July 2019
    • June 2019
    • May 2019
    • March 2019
    • January 2019
    • December 2018
    • October 2018
    • September 2018
    • July 2018
    • June 2018
    • May 2018
    • April 2018
    • March 2018
    • February 2018
    • January 2018
    • November 2017
    • October 2017
    • September 2017
    • August 2017
    • July 2017
    • June 2017
    • May 2017
    • April 2017
    • March 2017
    • January 2017
    • November 2016
    • October 2016
    • June 2016
    • March 2016
    • February 2016
    • January 2016
    • December 2015
    • November 2015
    • October 2015
    • September 2015
    • July 2015
    • June 2015
    • May 2015
    • March 2015
    • February 2015
    • January 2015
    • December 2014
    • November 2014
    • September 2014
    • June 2014
    • May 2014
    • January 2014
    • August 2013
    • April 2013
    • March 2013
    • February 2013
    • September 2012
    • July 2012
    • May 2012
    • April 2012
    • February 2012
    • December 2011
    • November 2011
    • June 2011
    • May 2011
    • April 2011
    • March 2011
    • February 2011
    • January 2011
    • December 2010

    Sign-up to get our insights direct to your inbox

      Enovation Square

      Enovation Solutions Ltd.,
      T: +44 (0) 2071839207

      Partners & Certifications

      Totara Partner Logo

      Latest Insights

      • 5 Signs Your LMS Isn’t Working

        At Enovation, we want to add value to your company with an effective learning management solution. This article will outline some telltale signs your current software isn’t working for you and what you should be looking for from your future LMS to ensure success.

        25 August, 2019
      • Digital Content for Learner Engagement

        Whatever stage of the eLearning journey you and your business are on, we can help you to bring your project to a successful conclusion. Few companies can offer the breadth of expertise across project management, technology, instructional design, content authoring and learning and development that our team can. Choosing us as your partner will ensure that your eLearning project is a success.

        14 August, 2019
      • alt=LMS info graphic outlining the aspects of a learning management system

        LMS for Retail Success

        Retail is a notoriously unpredictable industry that is dictated by its seasonal changes, trends and high staff turnover. When retailers equip their staff members with the necessary training and knowledge and skills cost-effectively, without interrupting their busy schedules, a culture of empowerment and encouragement is created. By introducing a cost-effective and customisable LMS, retail businesses are given the power to stay ahead of the curve.

        7 August, 2019

      Latest Tweets

      Tweets by @EnovationIRE
      • Legal Information
      © 2021 Enovation Your eLearning Partner
      • WHAT WE DO
        • OUR SERVICES
          • Consultancy
          • Content Creation
          • Build & Design
          • Training
          • Hosting
          • Support & Maintenance
        • OUR SOLUTIONS
          • Moodle
          • Moodle Workplace
          • The LMS Totara Learn
          • Aura Talent
      • WHO WE ARE
        • About Enovation
        • Careers
      • CASE STUDIES
        • Smyths Toys
        • Tata Chemicals Europe
        • Courts Service of Ireland
        • OpenJaw
        • New College Lanarkshire
      • OUR PARTNERS
        • IntelliBoard
        • BigBlueButton
      • INSIGHTS
      • CONTACT US
      Enovation
      +44 (0)2 0718 39207