Server IP : 103.11.96.170 / Your IP : 18.223.122.53 Web Server : Microsoft-IIS/10.0 System : Windows NT WIN-F6SLGVICLOP 10.0 build 17763 (Windows Server 2016) AMD64 User : elibrary.unsap.ac.id ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF Directory (0777) : D:/localhost/lms/blocks/cocoon_programs/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php require_once($CFG->dirroot. '/theme/edumy/ccn/block_handler/ccn_block_handler.php'); class block_cocoon_programs extends block_base { /** * Start block instance. */ function init() { $this->title = get_string('pluginname', 'block_cocoon_programs'); } /** * The block is usable in all pages */ function applicable_formats() { $ccnBlockHandler = new ccnBlockHandler(); return $ccnBlockHandler->ccnGetBlockApplicability(array('all')); } /** * Customize the block title dynamically. */ function specialization() { // if (isset($this->config->title)) { // $this->title = $this->title = format_string($this->config->title, true, ['context' => $this->context]); // } else { // $this->title = get_string('newcustomsliderblock', 'block_cocoon_programs'); // } global $CFG; include($CFG->dirroot . '/theme/edumy/ccn/block_handler/specialization.php'); } /** * The block can be used repeatedly in a page. */ function instance_allow_multiple() { return true; } /** * Build the block content. */ function get_content() { global $CFG, $PAGE; require_once($CFG->libdir . '/filelib.php'); if ($this->content !== NULL) { return $this->content; } if (!empty($this->config) && is_object($this->config)) { $data = $this->config; $data->slidesnumber = is_numeric($data->slidesnumber) ? (int)$data->slidesnumber : 0; } else { $data = new stdClass(); $data->slidesnumber = 0; } $fs = get_file_storage(); $files = $fs->get_area_files($this->context->id, 'block_cocoon_programs', 'slides', '0'); $ccn_image = ''; foreach ($files as $file) { $filename = $file->get_filename(); if ($filename <> '.') { $url = moodle_url::make_file_url("$CFG->wwwroot/pluginfile.php", "/{$this->context->id}/block_cocoon_programs/slides/0/" . $filename); $ccn_image .= $url; } } $text = ''; if ($data->slidesnumber > 0) { $text = ' <section class="home3_top_course home8"> <div class="container"> <div class="row"> <div class="col-lg-6 offset-lg-3"> <div class="main-title text-center"> <h3 class="mt0">'.format_text($data->title, FORMAT_HTML, array('filter' => true)).'</h3> <p>'.format_text($data->subtitle, FORMAT_HTML, array('filter' => true)).'</p> </div> </div> </div> <div class="row"> <div class="col-lg-5"> <div class="about_program pr30"> <img class="img-fluid" src="'.$ccn_image.'" alt=""> </div> </div> <div class="col-lg-7"> <div class="row"> '; $fs = get_file_storage(); for ($i = 1; $i <= $data->slidesnumber; $i++) { $sliderimage = 'file_slide' . $i; $slide_title = 'slide_title' . $i; $slide_subtitle = 'slide_subtitle' . $i; $style = 'style' . $i; if (!empty($data->$sliderimage)) { $files = $fs->get_area_files($this->context->id, 'block_cocoon_programs', 'slides', $i, 'sortorder DESC, id ASC', false, 0, 0, 1); if (count($files) >= 1) { $mainfile = reset($files); $mainfile = $mainfile->get_filename(); } else { continue; } $text .= ' <div class="col-sm-6 col-lg-6"> <div class="smp_icon_box '.$data->$style.' mt50"> <div class="icon ccn-icon-reset"><img src="' . moodle_url::make_file_url("$CFG->wwwroot/pluginfile.php", "/{$this->context->id}/block_cocoon_programs/slides/" . $i . '/' . $mainfile) . '" alt=""></div> <div class="details"> <h4>'.format_text($data->$slide_title, FORMAT_HTML, array('filter' => true)).'</h4> <p>'.format_text($data->$slide_subtitle, FORMAT_HTML, array('filter' => true)).'</p> </div> </div> </div>'; } } $text .= ' </div> </div> </div> <div class="row"> <div class="col-lg-12"> <div class="about_home3_shape_container"> <div class="about_home3_shape home8"></div> </div> </div> </div> </div> </section>'; } $this->content = new stdClass; $this->content->footer = ''; $this->content->text = $text; return $this->content; } /** * Serialize and store config data */ function instance_config_save($data, $nolongerused = false) { global $CFG; $filemanageroptions = array('maxbytes' => $CFG->maxbytes, 'subdirs' => 0, 'maxfiles' => 1, 'accepted_types' => array('.jpg', '.png', '.gif')); for($i = 1; $i <= $data->slidesnumber; $i++) { $field = 'file_slide' . $i; if (!isset($data->$field)) { continue; } file_save_draft_area_files($data->$field, $this->context->id, 'block_cocoon_programs', 'slides', $i, $filemanageroptions); } parent::instance_config_save($data, $nolongerused); } /** * When a block instance is deleted. */ function instance_delete() { global $DB; $fs = get_file_storage(); $fs->delete_area_files($this->context->id, 'block_cocoon_programs'); return true; } /** * Copy any block-specific data when copying to a new block instance. * @param int $fromid the id number of the block instance to copy from * @return boolean */ public function instance_copy($fromid) { global $CFG; $fromcontext = context_block::instance($fromid); $fs = get_file_storage(); if (!empty($this->config) && is_object($this->config)) { $data = $this->config; $data->slidesnumber = is_numeric($data->slidesnumber) ? (int)$data->slidesnumber : 0; } else { $data = new stdClass(); $data->slidesnumber = 0; } $filemanageroptions = array('maxbytes' => $CFG->maxbytes, 'subdirs' => 0, 'maxfiles' => 1, 'accepted_types' => array('.jpg', '.png', '.gif')); for($i = 1; $i <= $data->slidesnumber; $i++) { $field = 'file_slide' . $i; if (!isset($data->$field)) { continue; } // This extra check if file area is empty adds one query if it is not empty but saves several if it is. if (!$fs->is_area_empty($fromcontext->id, 'block_cocoon_programs', 'slides', $i, false)) { $draftitemid = 0; file_prepare_draft_area($draftitemid, $fromcontext->id, 'block_cocoon_programs', 'slides', $i, $filemanageroptions); file_save_draft_area_files($draftitemid, $this->context->id, 'block_cocoon_programs', 'slides', $i, $filemanageroptions); } } return true; } /** * The block should only be dockable when the title of the block is not empty * and when parent allows docking. * * @return bool */ public function instance_can_be_docked() { return (!empty($this->config->title) && parent::instance_can_be_docked()); } public function html_attributes() { global $CFG; $attributes = parent::html_attributes(); include($CFG->dirroot . '/theme/edumy/ccn/block_handler/attributes.php'); return $attributes; } }