Exemplo n.º 1
0
 public function testWebResourceParameters()
 {
     include_once './Modules/WebResource/classes/class.ilParameterAppender.php';
     $appender = new ilParameterAppender(999);
     $appender->setName('first');
     $appender->setValue(1);
     $appender->add(888);
     $params = ilParameterAppender::_getParams(888);
     foreach ($params as $key => $data) {
         $appender->delete($key);
         $this->assertEquals($data['name'], 'first');
         $this->assertEquals($data['value'], 1);
     }
 }
 /**
  * Update all visible links
  * @return 
  */
 protected function updateLinks()
 {
     global $ilCtrl;
     $this->checkPermission('write');
     $this->activateTabs('content', '');
     if (!is_array($_POST['ids'])) {
         ilUtil::sendFailure($this->lng->txt('select_one'), TRUE);
         $ilCtrl->redirect($this, 'view');
     }
     // Validate
     $invalid = array();
     foreach ($_POST['ids'] as $link_id) {
         $data = $_POST['links'][$link_id];
         // handle internal links
         if ($_POST['tar_' . $link_id . '_ajax_type'] && $_POST['tar_' . $link_id . '_ajax_id']) {
             $data['tar'] = $_POST['links'][$link_id]['tar'] = $_POST['tar_' . $link_id . '_ajax_type'] . '|' . $_POST['tar_' . $link_id . '_ajax_id'];
         }
         if (!strlen($data['tit'])) {
             $invalid[] = $link_id;
             continue;
         }
         if (!strlen($data['tar'])) {
             $invalid[] = $link_id;
             continue;
         }
         if ($data['nam'] and !$data['val']) {
             $invalid[] = $link_id;
             continue;
         }
         if (!$data['nam'] and $data['val']) {
             $invalid[] = $link_id;
             continue;
         }
     }
     if (count($invalid)) {
         ilUtil::sendFailure($this->lng->txt('err_check_input'));
         $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.webr_manage.html', 'Modules/WebResource');
         include_once './Modules/WebResource/classes/class.ilWebResourceEditableLinkTableGUI.php';
         $table = new ilWebResourceEditableLinkTableGUI($this, 'view');
         $table->setInvalidLinks($invalid);
         $table->parseSelectedLinks($_POST['ids']);
         $table->updateFromPost();
         $this->tpl->setVariable('TABLE_LINKS', $table->getHTML());
         return false;
     }
     include_once './Modules/WebResource/classes/class.ilLinkResourceItems.php';
     $links = new ilLinkResourceItems($this->object->getId());
     // Save Settings
     foreach ($_POST['ids'] as $link_id) {
         $data = $_POST['links'][$link_id];
         $links->setLinkId($link_id);
         $links->setTitle(ilUtil::stripSlashes($data['tit']));
         $links->setDescription(ilUtil::stripSlashes($data['des']));
         $links->setTarget(ilUtil::stripSlashes($data['tar']));
         $links->setActiveStatus((int) $data['act']);
         $links->setDisableCheckStatus((int) $data['che']);
         $links->setValidStatus((int) $data['vali']);
         $links->update();
         if (strlen($data['nam']) and $data['val']) {
             $param = new ilParameterAppender($this->object->getId());
             $param->setName(ilUtil::stripSlashes($data['nam']));
             $param->setValue((int) $data['val']);
             $param->add($link_id);
         }
         if ($this->isContainerMetaDataRequired()) {
             $this->object->setTitle(ilUtil::stripSlashes($data['tit']));
             $this->object->setDescription(ilUtil::stripSlashes($data['des']));
             $this->object->update();
         }
         // TODO: Dynamic parameters
     }
     ilUtil::sendSuccess($this->lng->txt('settings_saved'), TRUE);
     $ilCtrl->redirect($this, 'view');
 }
Exemplo n.º 3
0
 /**
  * handler for begin of element
  *
  * @param	resource	$a_xml_parser		xml parser
  * @param	string		$a_name				element name
  * @param	array		$a_attribs			element attributes array
  */
 public function handlerBeginTag($a_xml_parser, $a_name, $a_attribs)
 {
     global $ilErr;
     if ($this->in_metadata) {
         parent::handlerBeginTag($a_xml_parser, $a_name, $a_attribs);
         return;
     }
     switch ($a_name) {
         case "MetaData":
             $this->in_metadata = true;
             // Delete old meta data
             $md = new ilMD($this->getWebLink()->getId(), 0, 'webr');
             $md->deleteAll();
             parent::handlerBeginTag($a_xml_parser, $a_name, $a_attribs);
             break;
         case 'WebLink':
             $this->current_link_update = false;
             $this->current_link_delete = false;
             $this->current_parameters = array();
             if ($this->getMode() == self::MODE_CREATE or isset($a_attribs['action']) and $a_attribs['action'] == 'Create') {
                 // New weblink
                 $this->current_link = new ilLinkResourceItems($this->getWebLink()->getId());
             } elseif ($this->getMode() == self::MODE_UPDATE and $a_attribs['action'] == 'Delete') {
                 $this->current_link_delete = true;
                 $this->current_link = new ilLinkResourceItems($this->getWebLink()->getId());
                 $this->current_link->delete($a_attribs['id']);
                 break;
             } elseif ($this->getMode() == self::MODE_UPDATE and ($a_attribs['action'] == 'Update' or !isset($a_attribs['action']))) {
                 $this->current_link = new ilLinkResourceItems($this->getWebLink()->getId());
                 $this->current_link->readItem($a_attribs['id']);
                 $this->current_link_update = true;
                 // Delete all dynamic parameter
                 include_once './Modules/WebResource/classes/class.ilParameterAppender.php';
                 foreach (ilParameterAppender::getParameterIds($this->getWebLink()->getId(), $a_attribs['id']) as $param_id) {
                     $param = new ilParameterAppender($this->getWebLink()->getId());
                     $param->delete($param_id);
                 }
             } else {
                 throw new ilWebLinkXmlParserException('Invalid action given for element "Weblink"');
             }
             // Active
             $this->current_link->setActiveStatus($a_attribs['active'] ? 1 : 0);
             // Valid
             if (!isset($a_attribs['valid'])) {
                 $valid = 1;
             } else {
                 $valid = $a_attribs['valid'] ? 1 : 0;
             }
             $this->current_link->setValidStatus($valid);
             // Disable check
             $this->current_link->setDisableCheckStatus($a_attribs['disableValidation'] ? 1 : 0);
             break;
         case 'Sorting':
             include_once './Services/Container/classes/class.ilContainerSortingSettings.php';
             $sort = new ilContainerSortingSettings($this->getWebLink()->getId());
             $sort->delete();
             switch ($a_attribs['type']) {
                 case 'Manual':
                     $sort->setSortMode(ilContainer::SORT_MANUAL);
                     break;
                 case 'Title':
                 default:
                     $sort->setSortMode(ilContainer::SORT_TITLE);
             }
             $sort->save();
             break;
         case 'WebLinks':
         case 'Title':
         case 'Description':
         case 'Target':
             // Nothing to do
             break;
         case 'DynamicParameter':
             $param = new ilParameterAppender($this->getWebLink()->getId());
             $param->setName($a_attribs['name']);
             switch ($a_attribs['type']) {
                 case 'userName':
                     #						$GLOBALS['ilLog']->write("VALUE: ".LINKS_LOGIN);
                     $param->setValue(LINKS_LOGIN);
                     break;
                 case 'userId':
                     #						$GLOBALS['ilLog']->write("VALUE: ".LINKS_USER_ID);
                     $param->setValue(LINKS_USER_ID);
                     break;
                 case 'matriculation':
                     #						$GLOBALS['ilLog']->write("VALUE: ".LINKS_MATRICULATION);
                     $param->setValue(LINKS_MATRICULATION);
                     break;
                 default:
                     throw new ilWebLinkXmlParserException('Invalid attribute "type" given for element "Dynamic parameter". Aborting');
                     break;
             }
             $this->current_parameters[] = $param;
             break;
     }
 }
 /**
  * Copy web resource items
  *
  * @access public
  * @param int obj_id of new object
  * 
  */
 public function cloneItems($a_new_id)
 {
     include_once 'Modules/WebResource/classes/class.ilParameterAppender.php';
     $appender = new ilParameterAppender($this->getLinkResourceId());
     foreach ($this->getAllItems() as $item) {
         $new_item = new ilLinkResourceItems($a_new_id);
         $new_item->setTitle($item['title']);
         $new_item->setDescription($item['description']);
         $new_item->setTarget($item['target']);
         $new_item->setActiveStatus($item['active']);
         $new_item->setDisableCheckStatus($item['disable_check']);
         $new_item->setLastCheckDate($item['last_check']);
         $new_item->setValidStatus($item['valid']);
         $new_item->add(true);
         // Add parameters
         foreach (ilParameterAppender::_getParams($item['link_id']) as $param_id => $data) {
             $appender->setName($data['name']);
             $appender->setValue($data['value']);
             $appender->add($new_item->getLinkId());
         }
         unset($new_item);
     }
     return true;
 }