Ejemplo n.º 1
0
 protected function define_structure()
 {
     // Create really simple structure (1 nested with 1 attr and 2 fields)
     $test = new backup_nested_element('test', array('id'), array('field1', 'field2'));
     $test->set_source_array(array(array('id' => 1, 'field1' => 'value1', 'field2' => 'value2')));
     return $test;
 }
Ejemplo n.º 2
0
 protected function define_structure()
 {
     global $DB;
     // Get the block
     $block = $DB->get_record('block_instances', array('id' => $this->task->get_blockid()));
     // Extract configdata
     $config = unserialize(base64_decode($block->configdata));
     // Get array of used rss feeds
     if (!empty($config->rssid)) {
         $feedids = $config->rssid;
         // Get the IN corresponding query
         list($in_sql, $in_params) = $DB->get_in_or_equal($feedids);
         // Define all the in_params as sqlparams
         foreach ($in_params as $key => $value) {
             $in_params[$key] = backup_helper::is_sqlparam($value);
         }
     }
     // Define each element separated
     $rss_client = new backup_nested_element('rss_client', array('id'), null);
     $feeds = new backup_nested_element('feeds');
     $feed = new backup_nested_element('feed', array('id'), array('title', 'preferredtitle', 'description', 'shared', 'url'));
     // Build the tree
     $rss_client->add_child($feeds);
     $feeds->add_child($feed);
     // Define sources
     $rss_client->set_source_array(array((object) array('id' => $this->task->get_blockid())));
     // Only if there are feeds
     if (!empty($config->rssid)) {
         $feed->set_source_sql("\n                SELECT *\n                  FROM {block_rss_client}\n                 WHERE id {$in_sql}", $in_params);
     }
     // Annotations (none)
     // Return the root element (rss_client), wrapped into standard block structure
     return $this->prepare_block_structure($rss_client);
 }
 protected function define_structure()
 {
     //error_log("in define_structure()");
     global $DB, $CFG;
     // To know if we are including userinfo
     $userinfo = $this->get_setting_value('users');
     // Get the block
     $block = $DB->get_record('block_instances', array('id' => $this->task->get_blockid()));
     // Extract configdata
     $config = unserialize(base64_decode($block->configdata));
     //$pre=$CFG->prefix.'block_timetracker_';
     $pre = 'block_timetracker_';
     //error_log($pre);
     $timetracker_main = new backup_nested_element('timetracker', array('id'), null);
     // Define each element separated
     $workerinfo = new backup_nested_element('workerinfo', array('id'), array('active', 'address', 'budget', 'comments', 'currpayrate', 'dept', 'email', 'firstname', 'idnum', 'institution', 'lastname', 'maxtermearnings', 'phonenumber', 'supervisor', 'timetrackermethod', 'mdluserid'));
     //annotate mdluserid
     $terms = new backup_nested_element('term', array('id'), array('name', 'month', 'day'));
     $config = new backup_nested_element('config', array('id'), array('name', 'value'));
     $alertunits = new backup_nested_element('alerunits', array('id'), array('timein', 'lasteditedby', 'lastedited', 'message', 'origtimein', 'origtimeout', 'payrate', 'todelete', 'alerttime'));
     $alertcom = new backup_nested_element('alert_com', array('id'), array('mdluserid'));
     $pending = new backup_nested_element('pending', array('id'), array('timein'));
     $workunits = new backup_nested_element('workunit', array('id'), array('timein', 'timeout', 'lastedited', 'lasteditedby', 'payrate'));
     // Build the tree -- isn't this all of the dependencies?
     $timetracker_main->add_child($workerinfo);
     $timetracker_main->add_child($terms);
     $timetracker_main->add_child($config);
     $workerinfo->add_child($alertunits);
     $workerinfo->add_child($pending);
     $alertunits->add_child($alertcom);
     $workerinfo->add_child($workunits);
     // Define sources
     $timetracker_main->set_source_array(array((object) array('id' => $this->task->get_blockid())));
     $terms->set_source_table($pre . 'term', array('courseid' => backup::VAR_COURSEID));
     $config->set_source_table($pre . 'config', array('courseid' => backup::VAR_COURSEID));
     if ($userinfo) {
         $workerinfo->set_source_table($pre . 'workerinfo', array('courseid' => backup::VAR_COURSEID));
         $alertunits->set_source_table($pre . 'alertunits', array('courseid' => backup::VAR_COURSEID, 'userid' => '../id'));
         /*
         //need to fix all of this
         $alertcom->set_source_table($pre.'alert_com', 
             array('courseid' => backup::VAR_COURSEID,
             'alertid'=>'../id'));
         */
         $pending->set_source_table($pre . 'pending', array('courseid' => backup::VAR_COURSEID, 'userid' => '../id'));
         $workunits->set_source_table($pre . 'workunit', array('courseid' => backup::VAR_COURSEID, 'userid' => '../id'));
     }
     // Annotations (none)
     $alertcom->annotate_ids('user', 'mdluserid');
     $workerinfo->annotate_ids('user', 'mdluserid');
     // Return the root element (timetracker), wrapped into standard block structure
     return $this->prepare_block_structure($timetracker_main);
 }
 protected function define_structure()
 {
     global $DB;
     // Get the block
     $block = $DB->get_record('block_instances', array('id' => $this->task->get_blockid()));
     // Extract configdata
     $config = unserialize(base64_decode($block->configdata));
     // Define each element separated
     $pearson = new backup_nested_element('pearson', array('id'), null);
     // Define sources
     $pearson->set_source_array(array((object) array('id' => $this->task->get_blockid())));
     // Annotations (none)
     // Return the root element (pearson), wrapped into standard block structure
     return $this->prepare_block_structure($pearson);
 }
 protected function define_structure()
 {
     global $DB;
     $params = array('courseid' => $this->get_courseid());
     $context = get_context_instance(CONTEXT_COURSE, $params['courseid']);
     $quickmail_logs = $DB->get_records('block_quickmail_log', $params);
     $include_history = $this->get_setting_value('include_quickmail_log');
     $backup_logs = new backup_nested_element('emaillogs', array('courseid'), null);
     $log = new backup_nested_element('log', array('id'), array('userid', 'courseid', 'alternateid', 'mailto', 'subject', 'message', 'attachment', 'format', 'time'));
     $backup_logs->add_child($log);
     $backup_logs->set_source_array(array((object) $params));
     if (!empty($quickmail_logs) and $include_history) {
         $log->set_source_sql('SELECT * FROM {block_quickmail_log}
             WHERE courseid = ?', array(array('sqlparam' => $this->get_courseid())));
     }
     $log->annotate_ids('user', 'userid');
     $log->annotate_files('block_quickmail', 'log', 'id', $context->id);
     $log->annotate_files('block_quickmail', 'attachment_log', 'id', $context->id);
     return $this->prepare_block_structure($backup_logs);
 }
 protected function define_structure()
 {
     global $DB;
     $params = array('courseid' => $this->get_courseid());
     $context = context_course::instance($params['courseid']);
     //LOGS
     $quickmail_logs = $DB->get_records('block_quickmail_log', $params);
     $include_history = $this->get_setting_value('include_quickmail_log');
     // QM BLOCK CONFIG BACKUP
     // attempt to create block settings step for quickmail, so people can restore their quickmail settings
     // WHY IS CONFIGS TABLE SET TO COURSES WITH AN S ID????????
     $paramsTwo = array('coursesid' => $this->get_courseid());
     $quickmail_block_level_settings = $DB->get_records('block_quickmail_config', $paramsTwo);
     $include_config = $this->get_setting_value('include_quickmail_config');
     //LOGS
     $backup_logs_and_settings = new backup_nested_element('emaillogs', array('courseid'), null);
     $log = new backup_nested_element('log', array('id'), array('userid', 'courseid', 'alternateid', 'mailto', 'subject', 'message', 'attachment', 'format', 'time', 'failuserids', 'additional_emails'));
     // courseid name value
     $quickmail_settings = new backup_nested_element('block_level_setting', array('id'), array('courseid', 'name', 'value'));
     $backup_logs_and_settings->add_child($log);
     $backup_logs_and_settings->add_child($quickmail_settings);
     $backup_logs_and_settings->set_source_array(array((object) $params));
     if (!empty($quickmail_logs) and $include_history) {
         $log->set_source_sql('SELECT * FROM {block_quickmail_log}
             WHERE courseid = ?', array(array('sqlparam' => $this->get_courseid())));
     }
     if (!empty($quickmail_block_level_settings) and $include_config) {
         $quickmail_settings->set_source_sql('SELECT * FROM {block_quickmail_config}
             WHERE coursesid = ?', array(array('sqlparam' => $this->get_courseid())));
     }
     $log->annotate_ids('user', 'userid');
     //$quickmail_settings->annotate_ids('setting');
     $log->annotate_files('block_quickmail', 'log', 'id', $context->id);
     $log->annotate_files('block_quickmail', 'attachment_log', 'id', $context->id);
     // $quickmail_settings->annotate_files('block_quickmail', 'settings', 'courseid', $context->id);
     return $this->prepare_block_structure($backup_logs_and_settings);
 }
Ejemplo n.º 7
0
 protected function define_structure()
 {
     global $DB;
     // Define each element separated
     $block = new backup_nested_element('block', array('id', 'contextid', 'version'), array('blockname', 'parentcontextid', 'showinsubcontexts', 'pagetypepattern', 'subpagepattern', 'defaultregion', 'defaultweight', 'configdata'));
     $positions = new backup_nested_element('block_positions');
     $position = new backup_nested_element('block_position', array('id'), array('contextid', 'pagetype', 'subpage', 'visible', 'region', 'weight'));
     // Build the tree
     $block->add_child($positions);
     $positions->add_child($position);
     // Transform configdata information if needed (process links and friends)
     $blockrec = $DB->get_record('block_instances', array('id' => $this->task->get_blockid()));
     if ($attrstotransform = $this->task->get_configdata_encoded_attributes()) {
         $configdata = (array) unserialize(base64_decode($blockrec->configdata));
         foreach ($configdata as $attribute => $value) {
             if (in_array($attribute, $attrstotransform)) {
                 $configdata[$attribute] = $this->contenttransformer->process($value);
             }
         }
         $blockrec->configdata = base64_encode(serialize((object) $configdata));
     }
     $blockrec->contextid = $this->task->get_contextid();
     // Get the version of the block
     $blockrec->version = $DB->get_field('block', 'version', array('name' => $this->task->get_blockname()));
     // Define sources
     $block->set_source_array(array($blockrec));
     $position->set_source_table('block_positions', array('blockinstanceid' => backup::VAR_PARENTID));
     // File anotations (for fileareas specified on each block)
     foreach ($this->task->get_fileareas() as $filearea) {
         $block->annotate_files('block_' . $this->task->get_blockname(), $filearea, null);
     }
     // Return the root element (block)
     return $block;
 }