uid GET parameter, which * contains the unique ID of the error report to be edited. */ protected $strEditURL; /** * (string) URL to the page which allows deletion of an error report. * The specified page must handle the uid GET parameter, which * contains the unique ID of the error report to be deleted. */ protected $strDeleteURL; /** * Constructor * @param $objcfg (erConfig) Pointer to an instance of the erConfig class for * retrieving the configuration data * @param $objemm (erErrorReportManager) Pointer to a instance of the * erErrorReportManager class for retrieving the document data * @return erErrorReportView */ public function __construct(erConfig &$objcfg, erErrorReportManager &$objemm) { $this->objcfg = $objcfg; $this->objManager = $objemm; html_header(""); } /** * Print a single error report. * Call this function to print a table or a compound of table rows with the * information of the specified error report. The function determines if the * current user is the owner of the specified report or if he has admin * rights and in this case displays buttons for deletion and editing the * error report. * @param $objem (erErrorReport) Error report to print * @param $bSingle (bool) Determines if you call this function once * (true) or several times to get a compound table of reports * (false). * @param $bAdminButtons (bool) Explicitly determines whether to show the * edit and delete buttons. This parameter overrides the check for owner and * admin rights. */ public function printErrorReport(erErrorReport $objem, $bSingle = false, $bAdminButtons = true) { global $colbox_state, $invtbl; if($bSingle) { bgcol("cb"); echo "<{$GLOBALS["invtbl"]} class='errors-view-table'>"; } $nColor = bgcol_rgb(); $sColor = sprintf("rgb(%d,%d,%d)", ($nColor >> 16) % 256, ($nColor >> 8) % 256, $nColor % 256); echo ""; if($this->objcfg->userIsAdmin() or $this->objManager->userIsOwner($objem->getUid())) { // user is admin or owner echo "<{$GLOBALS["invtbl"]} width='100%'>\n"; $sRow = "%s%s"; echo sprintf("$sRow\n", _c("error-reporter:Reported by:"), erMailToUserLink($objem->getOwner())); echo sprintf("$sRow\n", _c("error-reporter:Date:"), SmartDate($objem->getDate())); echo sprintf("$sRow\n", _c("error-reporter:Affected machine:"), q($objem->getMachine())); echo sprintf("$sRow\n", _c("error-reporter:Text:"), q($objem->getText())); echo sprintf("$sRow\n", _c("error-reporter:Hidden:"), $objem->isHidden() ? _c("error-reporter:yes") : _c("error-reporter:no")); if(trim($objem->getComment()) != "") { echo sprintf("%s%s\n", sprintf(_c("error-reporter:Comment by %s:"), erMailToUserLink($objem->getCommentOwner())), q($objem->getComment())); } echo "\n"; // admin buttons if($bAdminButtons) { echo sprintf("%s". "%s", $this->getEditLink($objem->getUid()), $this->getDeleteLink($objem->getUid())); } echo "\n"; } else { // user can only read the report echo "<{$GLOBALS["invtbl"]} width='100%'>\n"; $sRow = "%s%s"; echo sprintf("$sRow\n", _c("error-reporter:Affected machine:"), $objem->getMachine()); echo sprintf("$sRow\n", _c("error-reporter:Text:"), $objem->getText()); if(trim($objem->getComment()) != "") { echo sprintf("%s%s\n", sprintf(_c("error-reporter:Comment by %s:"), erMailToUserLink($objem->getCommentOwner())), q($objem->getComment())); } echo "\n"; } if($bSingle) { echo "\n"; _bgcol(); } } /** * Print a table of error reports. * Prints a table with several error reports by calling printErrorReport() * for each report. * @param $arobjem (array of errorReport objects) The reports to print */ public public function printErrorReports($arobjem) { echo "<{$GLOBALS["invtbl"]} class='errors-view-table'>"; bgcol("cb"); if(is_array($arobjem)) { foreach($arobjem as $em) { $this->printErrorReport($em); if(_bgcol() == "bl") { bgcol("cb"); } else { bgcol("bl"); } } } _bgcol(); echo "\n"; } /** * Set the link to the edit page. * The specified page must handle the uid GET parameter, which * contains the unique ID of the error report to be edited. * @see getEditURL() * @see getEditLink() * @param $strUrl (string) */ public function setEditURL($strUrl) { $this->strEditURL = $strUrl; } /** * Get the link to the edit page. * @param $nUid (int) Unique ID of the error report to be edited * @see setEditURL() * @see getEditLink() * @return (string) */ public function getEditURL($nUid) { if(preg_match("/\?/", $this->strEditURL) == 0) { $strParam = "?uid=".intval($nUid); } else { $strParam = "&uid=".intval($nUid); } return q($this->strEditURL.$strParam); } /** * Create a link to the edit page * @param $nUid (int) Unique ID of the error report to be edited * @see setEditURL() * @see getEditURL() * @return string */ public function getEditLink($nUid) { return sprintf("%s", pop($this->getEditURL($nUid), 500, 500), _c("error-reporter:Edit this error report"), icon("write")); } /** * Set the link to the delete page. * The specified page must handle the uid GET parameter, which * contains the unique ID of the error report to be deleted. * @see getDeleteURL() * @see getDeleteLink() * @param $strUrl (string) */ public function setDeleteURL($strUrl) { $this->strDeleteURL = $strUrl; } /** * Get the link to the delete page. * @param $nUid (int) Unique ID of the error report to be deleted * @see setDeleteURL() * @see getDeleteLink() * @return (string) */ public function getDeleteURL($nUid) { if(preg_match("/\?/", $this->strDeleteURL) == 0) { $strParam = "?uid=".intval($nUid); } else { $strParam = "&uid=".intval($nUid); } return q($this->strDeleteURL.$strParam); } /** * Create a link to the delete page * @param $nUid (int) Unique ID of the error report to be deleted * @see setDeleteURL() * @see getDeleteURL() * @return string */ public function getDeleteLink($nUid) { return sprintf("%s", $this->getDeleteURL($nUid), _c("error-reporter:Delete this error report"), icon("trash")); } } ?>