/** * \brief Generate a Refresh URL. */ function GetRefresh() { $Mod = GetParm("mod", PARM_STRING); $parm = Traceback_parm(0); $Opt = preg_replace("/&/", "--", $parm); $V = "mod=" . $this->Name . "&remod={$Mod}" . "&reopt={$Opt}"; return $V; }
private function getArrayArrayData($groupId, $canEdit) { $sql = "SELECT rf_pk,rf_shortname,rf_fullname,rf_text,rf_url,marydone FROM license_candidate WHERE group_fk=\$1"; /** @var DbManager */ $dbManager = $this->getObject('db.manager'); $dbManager->prepare($stmt = __METHOD__, $sql); $res = $dbManager->execute($stmt, array($groupId)); $aaData = array(); while ($row = $dbManager->fetchArray($res)) { $aData = array(htmlentities($row['rf_shortname']), htmlentities($row['rf_fullname']), '<div style="overflow-y:scroll;max-height:150px;margin:0;">' . nl2br(htmlentities($row['rf_text'])) . '</div>', htmlentities($row['rf_url']), $this->bool2checkbox($dbManager->booleanFromDb($row['marydone']))); if ($canEdit) { $link = Traceback_uri() . '?mod=' . Traceback_parm() . '&rf=' . $row['rf_pk']; $edit = '<a href="' . $link . '"><img border="0" src="images/button_edit.png"></a>'; array_unshift($aData, $edit); } $aaData[] = $aData; } $dbManager->freeResult($res); return $aaData; }
/** * @param $selectedFormat * @return string */ public function addFormatMenuEntries($selectedFormat, $pageNumber, $menuKey = self::VIEW, $hexFactor = 10) { $uri = Traceback_parm(); $uri = preg_replace("/&format=[a-zA-Z0-9]*/", "", $uri); $uri = preg_replace("/&page=[0-9]*/", "", $uri); $pageNumberHex = NULL; $pageNumberText = NULL; $tooltipTexts = array(self::FORMAT_HEX => _("View as a hex dump"), self::FORMAT_TEXT => _("View as unformatted text"), self::FORMAT_FLOW => _("View as formatted text")); $menuTexts = array(self::FORMAT_HEX => "Hex", self::FORMAT_TEXT => "Text", self::FORMAT_FLOW => "Formatted"); $menuPosition = -9; menu_insert("{$menuKey}::[BREAK]", $menuPosition--); foreach ($this->textFormats as $currentFormat) { $menuName = $menuKey . MENU_PATH_SEPARATOR . $menuTexts[$currentFormat]; if ($currentFormat == $selectedFormat) { menu_insert($menuName, $menuPosition--); } else { $targetPageNumber = $currentFormat == self::FORMAT_HEX ? $hexFactor * $pageNumberHex : $pageNumber; menu_insert($menuName, $menuPosition--, "{$uri}&format={$currentFormat}&pageNumber={$targetPageNumber}", $tooltipTexts[$currentFormat]); } } menu_insert("{$menuKey}::[BREAK]", $menuPosition); }
/** * \brief test for Traceback_parm() */ function test_Traceback_parm() { print "test function Traceback_parm()\n"; $source1 = "http://fossology.org/?mod=test"; $source2 = "http://fossology.org/?mod=test&parm=abc"; $expected1 = "test&parm=abc"; $expected2 = "&parm=abc"; $_SERVER['REQUEST_URI'] = $source1; $result = Traceback_parm(1); $this->assertEquals("test", $result); $_SERVER['REQUEST_URI'] = $source2; $result = Traceback_parm(1); $this->assertEquals($expected1, $result); $result = Traceback_parm(0); $this->assertEquals($expected2, $result); }
/** * \brief Given an $Uploadtree_pk, display: * - The histogram for the directory BY LICENSE. * - The file listing for the directory. */ private function showUploadHist(ItemTreeBounds $itemTreeBounds) { $groupId = Auth::getGroupId(); $selectedAgentId = GetParm('agentId', PARM_INTEGER); $tag_pk = GetParm("tag", PARM_INTEGER); $uploadId = $itemTreeBounds->getUploadId(); $scannerAgents = array_keys($this->agentNames); $scanJobProxy = new ScanJobProxy($this->agentDao, $uploadId); $scannerVars = $scanJobProxy->createAgentStatus($scannerAgents); $agentMap = $scanJobProxy->getAgentMap(); $vars = array('agentId' => GetParm('agentId', PARM_INTEGER), 'agentShowURI' => Traceback_uri() . '?mod=' . Traceback_parm(), 'agentMap' => $agentMap, 'scanners' => $scannerVars); $selectedAgentIds = empty($selectedAgentId) ? $scanJobProxy->getLatestSuccessfulAgentIds() : $selectedAgentId; if (!empty($agentMap)) { $licVars = $this->createLicenseHistogram($itemTreeBounds->getItemId(), $tag_pk, $itemTreeBounds, $selectedAgentIds, $groupId); $vars = array_merge($vars, $licVars); } $this->licenseProjector = new LicenseMap($this->getObject('db.manager'), $groupId, LicenseMap::CONCLUSION, true); $dirVars = $this->countFileListing($itemTreeBounds); $childCount = $dirVars['iTotalRecords']; /*************************************** * Problem: $ChildCount can be zero if you have a container that does not * unpack to a directory. For example: * file.gz extracts to archive.txt that contains a license. * Same problem seen with .pdf and .Z files. * Solution: if $ChildCount == 0, then just view the license! * * $ChildCount can also be zero if the directory is empty. * **************************************/ if ($childCount == 0) { return new RedirectResponse("?mod=view-license" . Traceback_parm_keep(array("upload", "item"))); } $vars['licenseUri'] = Traceback_uri() . "?mod=popup-license&rf="; $vars['bulkUri'] = Traceback_uri() . "?mod=popup-license"; return array_merge($vars, $dirVars); }
/** * \brief Customize submenus. */ function RegisterMenus() { $text = _("View file contents"); menu_insert("Browse-Pfile::View", 10, $this->Name, $text); // For the Browse menu, permit switching between detail and summary. $Format = GetParm("format", PARM_STRING); $Page = GetParm("page", PARM_INTEGER); if (empty($Page)) { $Page = 0; } $URI = Traceback_parm(); $URI = preg_replace("/&format=[a-zA-Z0-9]*/", "", $URI); $URI = preg_replace("/&page=[0-9]*/", "", $URI); $PageHex = NULL; $PageText = NULL; /*********************************** If there is paging, compute page conversions. ***********************************/ switch ($Format) { case 'hex': $PageHex = $Page; $PageText = intval($Page * VIEW_BLOCK_HEX / VIEW_BLOCK_TEXT); break; case 'text': case 'flow': $PageText = $Page; $PageHex = intval($Page * VIEW_BLOCK_TEXT / VIEW_BLOCK_HEX); break; } menu_insert("View::[BREAK]", -1); switch ($Format) { case "hex": $text = _("View as unformatted text"); menu_insert("View::Hex", -10); menu_insert("View::Text", -11, "{$URI}&format=text&page={$PageText}", $text); $text = _("View as formatted text"); menu_insert("View::Formatted", -12, "{$URI}&format=flow&page={$PageText}", $text); break; case "text": $text = _("View as a hex dump"); menu_insert("View::Hex", -10, "{$URI}&format=hex&page={$PageHex}", $text); menu_insert("View::Text", -11); $text = _("View as formatted text"); menu_insert("View::Formatted", -12, "{$URI}&format=flow&page={$PageText}", $text); break; case "flow": $text = _("View as a hex dump"); menu_insert("View::Hex", -10, "{$URI}&format=hex&page={$PageHex}", $text); $text = _("View as unformatted text"); menu_insert("View::Text", -11, "{$URI}&format=text&page={$PageText}", $text); menu_insert("View::Formatted", -12); break; default: $text = _("View as a hex dump"); menu_insert("View::Hex", -10, "{$URI}&format=hex&page={$PageHex}", $text); $text = _("View as unformatted text"); menu_insert("View::Text", -11, "{$URI}&format=text&page={$PageText}", $text); $text = _("View as formatted text"); menu_insert("View::Formatted", -12, "{$URI}&format=flow&page={$PageText}", $text); break; } $URI = Traceback_parm_keep(array("show", "format", "page", "upload", "item")); if (GetParm("mod", PARM_STRING) == $this->Name) { menu_insert("View::View", 2); menu_insert("View-Meta::View", 2); } else { $text = _("View file contents"); menu_insert("View::View", 2, $this->Name . $URI, $text); menu_insert("View-Meta::View", 2, $this->Name . $URI, $text); menu_insert("Browse::View", -2, $this->Name . $URI, $text); menu_insert("Browse::[BREAK]", -1); } }
private function mergeUserLoginVars(&$vars) { global $container; $dbManager = $container->get("db.manager"); $vars['logOutUrl'] = Traceback_uri() . '?mod=' . (plugin_find_id('auth') >= 0 ? 'auth' : 'smauth'); $vars['userName'] = $_SESSION[Auth::USER_NAME]; $sql = 'SELECT group_pk, group_name FROM group_user_member LEFT JOIN groups ON group_fk=group_pk WHERE user_fk=$1'; $stmt = __METHOD__ . '.availableGroups'; $dbManager->prepare($stmt, $sql); $res = $dbManager->execute($stmt, array($_SESSION['UserId'])); $allAssignedGroups = array(); while ($row = $dbManager->fetchArray($res)) { $allAssignedGroups[$row['group_pk']] = $row['group_name']; } $dbManager->freeResult($res); if (count($allAssignedGroups) > 1) { $vars['backtraceUri'] = Traceback_uri() . "?mod=" . Traceback_parm(); $vars['groupId'] = $_SESSION[Auth::GROUP_ID]; $vars['allAssignedGroups'] = $allAssignedGroups; } else { $vars['singleGroup'] = @$_SESSION['GroupName']; } }