/** * @global object */ function portfolio_insane_notify_admins($insane, $instances = false) { global $CFG; if (defined('ADMIN_EDITING_PORTFOLIO')) { return true; } $admins = get_admins(); if (empty($admins)) { return; } if ($instances) { $instances = portfolio_instances(false, false); } $site = get_site(); $a = new StdClass(); $a->sitename = $site->fullname; $a->fixurl = "{$CFG->wwwroot}/{$CFG->admin}/settings.php?section=manageportfolios"; $a->htmllist = portfolio_report_insane($insane, $instances, true); $a->textlist = ''; foreach ($insane as $k => $reason) { if ($instances) { $a->textlist = $instances[$k]->get('name') . ': ' . $reason . "\n"; } else { $a->textlist = $k . ': ' . $reason . "\n"; } } $subject = get_string('insanesubject', 'portfolio'); $plainbody = get_string('insanebody', 'portfolio', $a); $htmlbody = get_string('insanebodyhtml', 'portfolio', $a); $smallbody = get_string('insanebodysmall', 'portfolio', $a); foreach ($admins as $admin) { $eventdata = new stdClass(); $eventdata->modulename = 'portfolio'; $eventdata->component = 'portfolio'; $eventdata->name = 'notices'; $eventdata->userfrom = $admin; $eventdata->userto = $admin; $eventdata->subject = $subject; $eventdata->fullmessage = $plainbody; $eventdata->fullmessageformat = FORMAT_PLAIN; $eventdata->fullmessagehtml = $htmlbody; $eventdata->smallmessage = $smallbody; message_send($eventdata); } }
/** * Builds XHTML to display the control * * @param string $data Unused * @param string $query * @return string XHTML to display the control */ public function output_html($data, $query = '') { global $CFG, $OUTPUT; $output = $OUTPUT->box_start('generalbox'); $namestr = get_string('name'); $pluginstr = get_string('plugin', 'portfolio'); $plugins = get_plugin_list('portfolio'); $plugins = array_keys($plugins); $instances = portfolio_instances(false, false); $alreadyplugins = array(); // to avoid notifications being sent out while admin is editing the page define('ADMIN_EDITING_PORTFOLIO', true); $insane = portfolio_plugin_sanity_check($plugins); $insaneinstances = portfolio_instance_sanity_check($instances); $output .= portfolio_report_insane($insane, null, true); $output .= portfolio_report_insane($insaneinstances, $instances, true); $table = new html_table(); $table->head = array($namestr, $pluginstr, ''); $table->data = array(); foreach ($instances as $i) { $row = ''; $row .= '<a href="' . $this->baseurl . '&edit=' . $i->get('id') . '"><img src="' . $OUTPUT->old_icon_url('t/edit') . '" alt="' . get_string('edit') . '" /></a>' . "\n"; $row .= '<a href="' . $this->baseurl . '&delete=' . $i->get('id') . '"><img src="' . $OUTPUT->old_icon_url('t/delete') . '" alt="' . get_string('delete') . '" /></a>' . "\n"; if (array_key_exists($i->get('plugin'), $insane) || array_key_exists($i->get('id'), $insaneinstances)) { $row .= '<img src="' . $OUTPUT->old_icon_url('t/show') . '" alt="' . get_string('hidden', 'portfolio') . '" />' . "\n"; } else { $row .= ' <a href="' . $this->baseurl . '&hide=' . $i->get('id') . '"><img src="' . $OUTPUT->old_icon_url('t/' . ($i->get('visible') ? 'hide' : 'show')) . '" alt="' . get_string($i->get('visible') ? 'hide' : 'show') . '" /></a>' . "\n"; } $table->data[] = array($i->get('name'), $i->get_name() . ' (' . $i->get('plugin') . ')', $row); if (!in_array($i->get('plugin'), $alreadyplugins)) { $alreadyplugins[] = $i->get('plugin'); } } $output .= $OUTPUT->table($table); $instancehtml = '<br /><br />' . get_string('addnewportfolio', 'portfolio') . ': <br /><br />'; $addable = 0; foreach ($plugins as $p) { if (!portfolio_static_function($p, 'allows_multiple') && in_array($p, $alreadyplugins)) { continue; } if (array_key_exists($p, $insane)) { continue; } $instancehtml .= '<a href="' . $this->baseurl . '&new=' . $p . '">' . portfolio_static_function($p, 'get_name') . ' (' . s($p) . ')' . '</a><br />' . "\n"; $addable++; } if ($addable) { $output .= $instancehtml; } $output .= $OUTPUT->box_end(); return highlight($query, $output); }