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'); }
/** * 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; }