/** * Return data on a resource sub view (this will be some form of HTML) * * @param object $resource Current resource * @param string $option Name of the component * @param integer $miniview View style * @return array */ public function onResourcesSub($resource, $option, $miniview = 0) { $arr = array('area' => $this->_name, 'html' => '', 'metadata' => ''); require_once __DIR__ . DS . 'models' . DS . 'sponsor.php'; $records = \Plugins\Resources\Sponsors\Models\Sponsor::all()->whereEquals('state', 1)->rows(); if (!$records) { return $arr; } $data = ''; $sponsors = array(); foreach ($records as $record) { $sponsors[$record->alias] = $record; } $rt = new \Components\Resources\Helpers\Tags($resource->id); $tags = $rt->tags(); if ($tags) { foreach ($tags as $tag) { if (isset($sponsors[$tag->get('tag')])) { $data = $sponsors[$tag->get('tag')]->description; break; } } } // Instantiate a view $view = $this->view('mini', 'display')->set('option', $option)->set('resource', $resource)->set('params', $this->params)->set('data', $data)->setErrors($this->getErrors()); if ($miniview) { $view->setLayout('mini'); } // Return the output $arr['html'] = $view->loadTemplate(); return $arr; }
$row->groupname = 'COM_RESOURCES_ACCESS_SPECIAL'; break; case 3: $color_access = 'protected'; $task_access = 'accessprivate'; $row->groupname = 'COM_RESOURCES_ACCESS_PROTECTED'; break; case 4: $color_access = 'private'; $task_access = 'accesspublic'; $row->groupname = 'COM_RESOURCES_ACCESS_PRIVATE'; break; } // Get the tags on this item $rt = new \Components\Resources\Helpers\Tags($row->id); $tags = $rt->tags()->count(); // See if it's checked out or not if ($row->checked_out || $row->checked_out_time != '0000-00-00 00:00:00') { $date = Date::of($row->checked_out_time)->toLocal(Lang::txt('DATE_FORMAT_LC1')); $time = Date::of($row->checked_out_time)->toLocal('H:i'); $checked = '<span class="editlinktip hasTip" title="' . Lang::txt('JLIB_HTML_CHECKED_OUT') . '::' . $this->escape($row->editor) . '<br />' . $date . '<br />' . $time . '">'; $checked .= '<span class="checkedout"></span>' . '</span>'; $info .= $row->checked_out_time != '0000-00-00 00:00:00' ? Lang::txt('COM_RESOURCES_CHECKED_OUT') . ': ' . Date::of($row->checked_out_time)->toLocal(Lang::txt('DATE_FORMAT_HZ1')) . '<br />' : ''; if ($row->editor) { $info .= Lang::txt('COM_RESOURCES_CHECKED_OUT_BY') . ': ' . $this->escape($row->editor); } } else { $checked = Html::grid('id', $i, $row->id, false, 'id'); } ?> <tr class="<?php
/** * Display forms for editing/creating a reosurce * * @return void */ public function displayTask() { // Incoming $alias = Request::getVar('app', ''); $version = Request::getVar('editversion', 'dev'); $step = Request::getInt('step', 1); // Load the tool $obj = new \Components\Tools\Tables\Tool($this->database); $this->_toolid = $obj->getToolId($alias); if (!$this->_toolid) { App::redirect(Route::url('index.php?option=' . $this->_option . '&controller=pipeline')); return; } // make sure user is authorized to go further if (!$this->_checkAccess($this->_toolid)) { App::abort(403, Lang::txt('COM_TOOLS_ALERTNOTAUTH')); return; } $nextstep = $step + 1; // get tool version (dev or current) information $obj->getToolStatus($this->_toolid, $this->_option, $status, $version); // get resource information $row = new \Components\Resources\Tables\Resource($this->database); $row->loadAlias($alias); $row->alias = $row->alias ? $row->alias : $alias; if (!$status['fulltxt']) { $status['fulltxt'] = $row->fulltxt; } // process first step if ($nextstep == 3 && (isset($_POST['nbtag']) || isset($_POST['fulltxt']))) { if (!isset($_POST['fulltxt']) || !trim($_POST['fulltxt'])) { $this->setError(Lang::txt('COM_TOOLS_REQUIRED_FIELD_CHECK', 'Abstract')); $step = 1; $nextstep--; } $hztv = \Components\Tools\Helpers\Version::getToolRevision($this->_toolid, $version); $objV = new \Components\Tools\Tables\Version($this->database); if (!$objV->bind($_POST)) { $this->setError($objV->getError()); return; } $body = $this->txtClean($_POST['fulltxt']); if (preg_match("/([\\<])([^\\>]{1,})*([\\>])/i", $body)) { // Do nothing $status['fulltxt'] = trim(stripslashes($body)); } else { // Wiki format will be used $status['fulltxt'] = Request::getVar('fulltxt', $status['fulltxt'], 'post'); } // Get custom areas, add wrapper tags, and compile into fulltxt $type = new \Components\Resources\Tables\Type($this->database); $type->load($row->type); include_once PATH_CORE . DS . 'components' . DS . 'com_resources' . DS . 'models' . DS . 'elements.php'; $elements = new \Components\Resources\Models\Elements(array(), $type->customFields); $schema = $elements->getSchema(); $fields = array(); foreach ($schema->fields as $field) { $fields[$field->name] = $field; } $nbtag = Request::getVar('nbtag', array()); $found = array(); foreach ($nbtag as $tagname => $tagcontent) { $f = ''; $status['fulltxt'] .= "\n" . '<nb:' . $tagname . '>'; if (is_array($tagcontent)) { $c = count($tagcontent); $num = 0; foreach ($tagcontent as $key => $val) { if (trim($val)) { $num++; } $status['fulltxt'] .= '<' . $key . '>' . trim($val) . '</' . $key . '>'; } if ($c == $num) { $f = 'found'; } } else { $f = trim($tagcontent); if ($f) { $status['fulltxt'] .= trim($tagcontent); } } $status['fulltxt'] .= '</nb:' . $tagname . '>' . "\n"; if (!$f && isset($fields[$tagname]) && $fields[$tagname]->required) { $this->setError(Lang::txt('COM_TOOLS_REQUIRED_FIELD_CHECK', $fields[$tagname]->label)); } $found[] = $tagname; } foreach ($fields as $field) { if (!in_array($field->name, $found) && $field->required) { $found[] = $field->name; $this->setError(Lang::txt('COM_TOOLS_REQUIRED_FIELD_CHECK', $field->label)); } } $hztv->fulltxt = $objV->fulltxt = $status['fulltxt']; $hztv->description = $objV->description = \Hubzero\Utility\String::truncate(Request::getVar('description', $status['description'], 'post'), 500); $hztv->title = $objV->title = \Hubzero\Utility\String::truncate(preg_replace('/\\s+/', ' ', Request::getVar('title', $status['title'], 'post')), 500); if (!$hztv->update()) { throw new Exception(Lang::txt('COM_TOOLS_ERROR_UPDATING_TOOL'), 500); } else { // get updated tool status $obj->getToolStatus($this->_toolid, $this->_option, $status, $version); } if ($version == 'dev') { // update resource page $this->updatePage($row->id, $status); } } // Group access //$accesses = array('Public', 'Registered', 'Special', 'Protected', 'Private'); //$lists = array(); //$lists['access'] = \Components\Tools\Helpers\Html::selectAccess($accesses, $row->access); //$groups = \Hubzero\User\Helper::getGroups(User::get('id'), 'members'); // get authors $objA = new \Components\Tools\Tables\Author($this->database); $authors = $version == 'current' ? $objA->getToolAuthors($version, $row->id, $status['toolname']) : array(); // Tags $tags = Request::getVar('tags', '', 'post'); $tagfa = Request::getVar('tagfa', '', 'post'); // Get any HUB focus areas // These are used where any resource is required to have one of these tags $tconfig = Component::params('com_tags'); $fa1 = $tconfig->get('focus_area_01'); $fa2 = $tconfig->get('focus_area_02'); $fa3 = $tconfig->get('focus_area_03'); $fa4 = $tconfig->get('focus_area_04'); $fa5 = $tconfig->get('focus_area_05'); $fa6 = $tconfig->get('focus_area_06'); $fa7 = $tconfig->get('focus_area_07'); $fa8 = $tconfig->get('focus_area_08'); $fa9 = $tconfig->get('focus_area_09'); $fa10 = $tconfig->get('focus_area_10'); // Instantiate our tag object $tagcloud = new \Components\Resources\Helpers\Tags($row->id); // Normalize the focus areas $tagfa1 = $tagcloud->normalize($fa1); $tagfa2 = $tagcloud->normalize($fa2); $tagfa3 = $tagcloud->normalize($fa3); $tagfa4 = $tagcloud->normalize($fa4); $tagfa5 = $tagcloud->normalize($fa5); $tagfa6 = $tagcloud->normalize($fa6); $tagfa7 = $tagcloud->normalize($fa7); $tagfa8 = $tagcloud->normalize($fa8); $tagfa9 = $tagcloud->normalize($fa9); $tagfa10 = $tagcloud->normalize($fa10); // process new tags if ($tags or $tagfa) { $newtags = ''; if ($tagfa) { $newtags = $tagfa . ', '; } if ($tags) { $newtags .= $tags; } $tagcloud->setTags($newtags, User::get('id')); } // Get all the tags on this resource $tags_men = $tagcloud->tags(); $mytagarray = array(); $fas = array($tagfa1, $tagfa2, $tagfa3, $tagfa4, $tagfa5, $tagfa6, $tagfa7, $tagfa8, $tagfa9, $tagfa10); $fats = array(); if ($fa1) { $fats[$fa1] = $tagfa1; } if ($fa2) { $fats[$fa2] = $tagfa2; } if ($fa3) { $fats[$fa3] = $tagfa3; } if ($fa4) { $fats[$fa4] = $tagfa4; } if ($fa5) { $fats[$fa5] = $tagfa5; } if ($fa6) { $fats[$fa6] = $tagfa6; } if ($fa7) { $fats[$fa7] = $tagfa7; } if ($fa8) { $fats[$fa8] = $tagfa8; } if ($fa9) { $fats[$fa9] = $tagfa9; } if ($fa10) { $fats[$fa10] = $tagfa10; } // Loop through all the tags and pull out the focus areas - those will be displayed differently foreach ($tags_men as $tag_men) { if (in_array($tag_men->get('tag'), $fas)) { $tagfa = $tag_men->get('tag'); } else { $mytagarray[] = $tag_men->get('raw_tag'); } } $tags = implode(', ', $mytagarray); // Set the document title $this->view->title = Lang::txt(strtoupper($this->_option)) . ': ' . Lang::txt('COM_TOOLS_EDIT_TOOL_PAGE') . ' (' . $status['toolname'] . ')'; Document::setTitle($this->view->title); // Set the document pathway (breadcrumbs) if (Pathway::count() <= 0) { Pathway::append(Lang::txt(strtoupper($this->_name)), 'index.php?option=' . $this->_option); } if (Pathway::count() <= 1) { Pathway::append(Lang::txt('COM_TOOLS_STATUS_FOR', $status['toolname']), 'index.php?option=' . $this->_option . '&controller=pipeline&task=status&app=' . $alias); Pathway::append(Lang::txt('COM_TOOLS_EDIT_TOOL_PAGE'), 'index.php?option=' . $this->_option . '&controller=' . $this->_controller . '&app=' . $alias . '&task=start&step=1'); } $this->view->row = $row; $this->view->step = $step; $this->view->version = $version; $this->view->status = $status; $this->view->tags = $tags; $this->view->tagfa = $tagfa; $this->view->fats = $fats; $this->view->authors = $authors; // Pass error messages to the view foreach ($this->getErrors() as $error) { $this->view->setError($error); } // Output HTML $this->view->display(); }
// published // published case 2: $state = 'draft'; break; // draft // draft case 3: $state = 'pending'; break; // pending } $attachments = $ra->getCount($submission->id); $authors = $rc->getCount($submission->id, 'resources'); $rt = new \Components\Resources\Helpers\Tags($submission->id); $tags = $rt->tags('count'); ?> <tr class="<?php echo $cls; ?> "> <td><?php if ($submission->published == 2) { ?> <a href="<?php echo Route::url('index.php?option=' . $this->option . '&task=draft&step=1&id=' . $submission->id); ?> "><?php } echo stripslashes($submission->title); if ($submission->published == 2) {
/** * Check if the tags step is completed * * @param integer $id Resource ID * @return boolean True if step completed */ public function step_tags_check($id) { $database = App::get('db'); $rt = new \Components\Resources\Helpers\Tags($id); $tags = $rt->tags('count'); if ($tags > 0) { return true; } return false; }
/** * Return data on a resource sub view (this will be some form of HTML) * * @param object $resource Current resource * @param string $option Name of the component * @param integer $miniview View style * @return array */ public function onResourcesSub($resource, $option, $miniview = 0) { $arr = array('area' => $this->_name, 'html' => '', 'metadata' => ''); // Get recommendations $this->database = App::get('db'); // Instantiate a view $this->view = $this->view('mini', 'display'); if ($miniview) { $this->view->setLayout('mini'); } // Pass the view some info $this->view->option = $option; $this->view->resource = $resource; $this->view->params = $this->params; $this->view->data = ''; require_once __DIR__ . DS . 'tables' . DS . 'sponsor.php'; $this->sponsors = array(); $model = new \Plugins\Resources\Sponsors\Tables\Sponsor($this->database); $records = $model->getRecords(array('state' => 1)); if (!$records) { return $arr; } foreach ($records as $record) { $this->sponsors[$record->alias] = $record; } include_once PATH_CORE . DS . 'components' . DS . 'com_resources' . DS . 'helpers' . DS . 'tags.php'; $rt = new \Components\Resources\Helpers\Tags($resource->id); $tags = $rt->tags(); if ($tags) { foreach ($tags as $tag) { if (isset($this->sponsors[$tag->get('tag')])) { $this->view->data = $this->sponsors[$tag->get('tag')]->description; break; } } } if ($this->getError()) { $this->view->setError($this->getError()); } // Return the output $arr['html'] = $this->view->loadTemplate(); return $arr; }