diff --git a/.github/workflows/moodle-plugin-ci.yml b/.github/workflows/moodle-plugin-ci.yml new file mode 100644 index 0000000..bdf5a55 --- /dev/null +++ b/.github/workflows/moodle-plugin-ci.yml @@ -0,0 +1,105 @@ +name: Moodle Plugin CI + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-18.04 + + services: + postgres: + image: postgres:9.6 + env: + POSTGRES_USER: 'postgres' + POSTGRES_HOST_AUTH_METHOD: 'trust' + ports: + - 5432:5432 + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3 + mariadb: + image: mariadb:10 + env: + MYSQL_USER: 'root' + MYSQL_ALLOW_EMPTY_PASSWORD: "true" + ports: + - 3306:3306 + options: --health-cmd="mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 3 + + strategy: + fail-fast: false + matrix: + php: ['7.2', '7.3', '7.4'] + moodle-branch: ['MOODLE_39_STABLE'] + database: [pgsql, mariadb] + + steps: + - name: Check out repository code + uses: actions/checkout@v2 + with: + path: plugin + + - name: Setup PHP ${{ matrix.php }} + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: none + + - name: Initialise moodle-plugin-ci + run: | + composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3 + echo $(cd ci/bin; pwd) >> $GITHUB_PATH + echo $(cd ci/vendor/bin; pwd) >> $GITHUB_PATH + sudo locale-gen en_AU.UTF-8 + echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV + + - name: Install moodle-plugin-ci + run: | + moodle-plugin-ci install --plugin ./plugin --db-host=127.0.0.1 + env: + DB: ${{ matrix.database }} + MOODLE_BRANCH: ${{ matrix.moodle-branch }} + + - name: PHP Lint + if: ${{ always() }} + run: moodle-plugin-ci phplint + + - name: PHP Copy/Paste Detector + continue-on-error: true # This step will show errors but will not fail + if: ${{ always() }} + run: moodle-plugin-ci phpcpd + + - name: PHP Mess Detector + continue-on-error: true # This step will show errors but will not fail + if: ${{ always() }} + run: moodle-plugin-ci phpmd + + - name: Moodle Code Checker + if: ${{ always() }} + run: moodle-plugin-ci codechecker --max-warnings 0 + + - name: Moodle PHPDoc Checker + if: ${{ always() }} + run: moodle-plugin-ci phpdoc + + - name: Validating + if: ${{ always() }} + run: moodle-plugin-ci validate + + - name: Check upgrade savepoints + if: ${{ always() }} + run: moodle-plugin-ci savepoints + + - name: Mustache Lint + if: ${{ always() }} + run: moodle-plugin-ci mustache + + - name: Grunt + if: ${{ always() }} + run: moodle-plugin-ci grunt --max-lint-warnings 0 + + - name: PHPUnit tests + if: ${{ always() }} + run: moodle-plugin-ci phpunit + + - name: Behat features + if: ${{ always() }} + run: moodle-plugin-ci behat --profile chrome diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 01343c1..0000000 --- a/.travis.yml +++ /dev/null @@ -1,48 +0,0 @@ -language: php - -addons: - postgresql: "9.6" - -services: - - mysql - - postgresql - - docker - -cache: - directories: - - $HOME/.composer/cache - - $HOME/.npm - -php: - - 7.2 - - 7.3 - - 7.4 - -env: - global: - - MOODLE_BRANCH=MOODLE_39_STABLE - matrix: - - DB=pgsql - - DB=mysqli - -before_install: - - phpenv config-rm xdebug.ini - - cd ../.. - - composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3 - - export PATH="$(cd ci/bin; pwd):$(cd ci/vendor/bin; pwd):$PATH" - -install: - - moodle-plugin-ci install - -script: - - moodle-plugin-ci phplint - - moodle-plugin-ci phpcpd - - moodle-plugin-ci phpmd - - moodle-plugin-ci codechecker - - moodle-plugin-ci validate - - moodle-plugin-ci savepoints - - moodle-plugin-ci mustache - - moodle-plugin-ci grunt - - moodle-plugin-ci phpdoc - - moodle-plugin-ci phpunit - - moodle-plugin-ci behat --dump diff --git a/CHANGES.md b/CHANGES.md index eedd490..05ece49 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,6 +6,10 @@ Changes ### Unreleased +* 2021-02-05 - Move Moodle Plugin CI from Travis CI to Github actions + +### Release v3.9-r2 + * 2021-01-06 - Change in Moodle release support: For the time being, this plugin is maintained for the most recent LTS release of Moodle as well as the most recent major release of Moodle. Bugfixes are backported to the LTS release. However, new features and improvements are not necessarily backported to the LTS release. diff --git a/README.md b/README.md index 125260c..2998a7e 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ moodle-block_cohortspecifichtml =============================== -[![Build Status](https://travis-ci.com/moodleuulm/moodle-block_cohortspecifichtml.svg?branch=master)](https://travis-ci.com/moodleuulm/moodle-block_cohortspecifichtml) +[![Moodle Plugin CI](https://github.com/moodleuulm/moodle-block_cohortspecifichtml/workflows/Moodle%20Plugin%20CI/badge.svg?branch=MOODLE_39_STABLE)](https://github.com/moodleuulm/moodle-block_cohortspecifichtml/actions?query=workflow%3A%22Moodle+Plugin+CI%22+branch%3AMOODLE_39_STABLE) This HTML block provides the possibility to selectively display the block to members of specific cohorts. diff --git a/classes/output/mobile.php b/classes/output/mobile.php new file mode 100644 index 0000000..bb36a44 --- /dev/null +++ b/classes/output/mobile.php @@ -0,0 +1,86 @@ +. + +/** + * HTML (on cohorts) - Mobile provider + * + * @package block_cohortspecifichtml + * @copyright 2021 Andrew Hancox + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +namespace block_cohortspecifichtml\output; + +defined('MOODLE_INTERNAL') || die(); + +/** + * Mobile output functions. + */ +class mobile { + + /** + * Returns the SC document view page for the mobile app. + * + * @param array $args Arguments from tool_mobile_get_content WS + * @return array HTML, javascript and otherdata + */ + public static function mobile_block_view(array $args) : array { + global $CFG, $DB, $PAGE, $OUTPUT; + + require_once("$CFG->dirroot/lib/blocklib.php"); + require_once("$CFG->dirroot/lib/filelib.php"); + $block = block_instance('cohortspecifichtml', + $DB->get_record('block_instances', ['id' => $args['blockid']]), + $PAGE + ); + + $data = new \stdClass(); + if (block_cohortspecifichtml_show_block($block) && $block->config->text) { + $blockcontext = \context_block::instance($args['blockid']); + $contenttext = file_rewrite_pluginfile_urls($block->config->text, 'pluginfile.php', $blockcontext->id, + 'block_cohortspecifichtml', 'content', null); + // Default to FORMAT_HTML which is what will have been used before the editor was properly + // implemented for the block. + $format = FORMAT_HTML; + // Check to see if the format has been properly set on the config. + if (isset($block->config->format)) { + $format = $block->config->format; + } + + $filteropt = new \stdClass; + $filteropt->overflowdiv = true; + if ($block->content_is_trusted()) { + // Fancy html allowed only on course, category and system blocks. + $filteropt->noclean = true; + } + + $data->content = format_text($contenttext, $format, $filteropt); + } + $data->blockid = $block->$args['blockid']; + $data->title = $block->title; + return [ + 'templates' => [ + [ + 'id' => 'main', + 'html' => $OUTPUT->render_from_template('block_cohortspecifichtml/mobile_block_view', $data), + ], + ], + 'javascript' => '', + 'otherdata' => [], + 'files' => [] + ]; + } +} diff --git a/db/mobile.php b/db/mobile.php new file mode 100644 index 0000000..48424b4 --- /dev/null +++ b/db/mobile.php @@ -0,0 +1,40 @@ +. + +/** + * HTML (on cohorts) - Mobile provider + * + * @package block_cohortspecifichtml + * @copyright 2021 Andrew Hancox + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +$addons = [ + 'block_cohortspecifichtml' => [ + 'handlers' => [ + 'blockcohortspecifichtmlview' => [ + 'delegate' => 'CoreBlockDelegate', + 'method' => 'mobile_block_view', + 'displaydata' => [] + ], + ], + 'lang' => [ + ['pluginname', 'block_cohortspecifichtml'] + ] + ] +]; diff --git a/templates/mobile_block_view.mustache b/templates/mobile_block_view.mustache new file mode 100644 index 0000000..707d2f1 --- /dev/null +++ b/templates/mobile_block_view.mustache @@ -0,0 +1,11 @@ +{{=<% %>=}} +<%#content%> + +

<%{title}%>

+
+ + + + + +<%/content%> diff --git a/version.php b/version.php index 8ef124d..82a647a 100644 --- a/version.php +++ b/version.php @@ -25,8 +25,8 @@ defined('MOODLE_INTERNAL') || die(); $plugin->component = 'block_cohortspecifichtml'; -$plugin->version = 2020071600; -$plugin->release = 'v3.9-r1'; +$plugin->version = 2021010602; +$plugin->release = 'v3.9-r2'; $plugin->requires = 2020061500; $plugin->supported = [39, 39]; $plugin->maturity = MATURITY_STABLE;