Пример #1
0
 /**
  * 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;
 }
Пример #2
0
            $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 
Пример #3
0
 /**
  * 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();
 }
Пример #4
0
                    // 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) {
Пример #5
0
 /**
  * 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;
 }
Пример #6
0
 /**
  * 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;
 }