private function createView() { $this->oView->addData('titre', Language::translate('RANKS_ADMIN_TABLE_TITLE')); $oTable = new TableGenerator(); $oTable->setId(md5('ranks')); $oTable->addColumn(Language::translate('RANKS_ADMIN_TABLE_NAME')); $oTable->addColumn(Language::translate('RANKS_ADMIN_TABLE_DEFAULT')); $oTable->addColumn(''); $aRanks = Rank::getRanks(); foreach ($aRanks as $oRank) { if ($oRank->isDefault()) { $sType = 'success'; $sText = Language::translate('RANKS_ADMIN_TABLE_YES'); } else { $sType = 'danger'; $sText = Language::translate('RANKS_ADMIN_TABLE_NO'); } $oLabel = new View('label'); $oLabel->addData('text', $sText); $oLabel->addData('type', $sType); $oLabel->create(); $oTable->addLine(array($oRank->getName(), $oLabel->getCode(), $this->createEditPopup($oRank))); } $oTable->setBottom($this->createAddPopup()); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->Create(); }
/** * create the content of upcoming dates * @return string html-content * @global Options determine how many days before event should contact be shown? */ function innerCreate() { global $options, $CONFIG_DATELIST_NAME_SPEC; $contacts = $this->contactList->getContacts(); $dates = $this->contactList->getDates(); $data = array(); $time = getdate(); if (!isset($CONFIG_DATELIST_NAME_SPEC)) { $spec = null; } else { $spec = $CONFIG_DATELIST_NAME_SPEC; } foreach ($contacts as $k => $c) { $data[] = array('display_name' => $c->generateFullName('html', $spec), 'type' => $dates[$k]['type'], 'time' => date('M j', strtotime('1975-' . $dates[$k]['month'] . '-' . $dates[$k]['day'])) . ($dates[$k]['year'] != '0000' ? ', ' . $dates[$k]['year'] : ''), 'age' => intval($time['year'] - $dates[$k]['year']) . 'y', 'daysAway' => $dates[$k]['daysAway'] > 0 ? $dates[$k]['daysAway'] . 'd' : 'today'); } $tGen = new TableGenerator('changed-list'); $cont = '<table class="changed-list">'; $cont .= '<caption>Upcoming dates (Next ' . $options->getOption('bdayInterval') . ' days)</caption>'; if (count($data) > 0) { $cont .= $tGen->generateBody($data, array('display_name', 'type', 'time', 'age', 'daysAway')); } else { $cont .= '<tr class="noentry"><td>Nothing upcoming</td></tr>'; } $cont .= '</table>'; return HTMLHelper::createNestedDivBoxModel('changed-list', $cont); }
public function procede() { if (!$this->oRequest->existParam('key')) { throw new Error('Vous devez renseigner la clé.', 3003); } if ($this->oRequest->getParam('key', 'string') != Config::get('ingestkey')) { throw new Error('La clé est invalide.', 3003); } //Ajoute du titre $this->oView->addData('titre', 'Analyse des releases'); //On récupère les 30 dernières releases $oMysqli = Database::getInstance(); //Traitement de la requête $sSqlRequest = "SELECT r.*, \r\n (SELECT GROUP_CONCAT(t.id_regex ORDER BY t.id_regex SEPARATOR ';') FROM tks_tags t WHERE t.id_release = r.id) AS tags,\r\n (SELECT GROUP_CONCAT(f.date ORDER BY f.date SEPARATOR ';') FROM tks_torrents f WHERE f.id_release = r.id) AS dates\t\r\n FROM tks_releases r \r\n WHERE r.id_categorie = '0' \r\n ORDER BY r.id DESC \r\n LIMIT 10"; $oResults = $oMysqli->query($sSqlRequest); $oTable = new TableGenerator(); $oTable->setId(md5('Scrapper')); $oTable->addColumn('Release'); $oTable->addColumn('Catégorie'); $oTable->addColumn('ID Fiche'); $aCategories = Categorie::getCategoriesSelect(); while ($aResult = $oResults->fetch_assoc()) { $oScrapper = new Scrapper($aResult['name'], $aResult['id']); $oScrapper->procede(); $oTable->addLine(array($aResult['name'], $aCategories[$oScrapper->getCategorie()], $oScrapper->getFiche())); } $oTable->setBottom(''); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->Create(); }
/** * Créer la vue de la page */ private function createView() { //Affichage des utilisateurs $this->oView->addData('titre', 'Administration des invitations'); //Construction du tableau $oTable = new TableGenerator(); $oTable->setId(md5('Administration des invitations')); $oTable->addColumn('Parrain'); $oTable->addColumn('Code'); $oTable->addColumn('Filleul'); $oTable->addColumn(''); $aInvites = Invites::getInvites(); foreach ($aInvites as $oInvite) { //Affichage du type if ($oInvite->getFilleulId() === 0) { $sType = 'danger'; $sText = 'Aucun'; $oLabel = new View('label'); $oLabel->addData('text', $sText); $oLabel->addData('type', $sType); $oLabel->create(); $sFilleul = $oLabel->getCode(); } else { $sFilleul = $oInvite->getFilleulLogin(); } $oTable->addLine(array($oInvite->getParrainLogin(), $oInvite->getCode(), $sFilleul, $this->createEditPopup($oInvite))); } $oTable->setBottom($this->createAddPopup()); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->create(); }
/** * create the content of recently changed * @return string html-content * @global Options determine how many days after change the contact should still be shown * @param boolean $compact whether list should be displayed with imported link and user who changed contact */ function innerCreate() { global $db, $CONFIG_DB_PREFIX, $CONFIG_ADMIN_REQUEST_INTERFACE, $CONFIG_ADMIN_REQUEST_BREAKS; $db->query("SELECT * FROM `{$CONFIG_DB_PREFIX}AdministrativeRequests` AS request WHERE dateProcessed IS NULL OR ( DATE_ADD(dateProcessed, INTERVAL 14 DAY) >= NOW() )", 'AdministrativeRequest'); //. TABLE_PROPERTIES . " AS prop //WHERE contact.id=prop.id AND prop.label=" . $db->escape($this->featureLabel) . ' //ORDER BY prop.value ' . ($this->ascending ? 'ASC' : 'DESC') . ($this->limit > 0 ? ' LIMIT '.$this->limit : '')); $fields = array('contactId', 'dateAdded', 'requesterId', 'dateProcessed', 'whoProcessedId'); foreach ($CONFIG_ADMIN_REQUEST_INTERFACE as $k => $v) { if (substr($k, 0, 4) != 'html' && $k != 'submit') { // not for DB! $fields[] = $k; } } $data = array(); $i = 0; while ($c = $db->next('AdministrativeRequest')) { $data[$i] = $c; if (empty($data[$i]['dateProcessed'])) { $id = $data[$i]['requestId']; $data[$i]['dateProcessed'] = "<a href='todo?mode=done&id={$id}'>set done</a>"; } if (!empty($data[$i]['whoProcessedId'])) { $contact = Contact::newContact($data[$i]['whoProcessedId']); $data[$i]['whoProcessedId'] = '<a href="../contact/contact.php?id=' . $contact->contact['id'] . '">' . $contact->contact['lastname'] . (!empty($contact->contact['firstname']) ? ', ' . $contact->contact['firstname'] : '') . '</a>'; } $contact = Contact::newContact($data[$i]['contactId']); $data[$i]['contactId'] = '<a href="../contact/contact.php?id=' . $contact->contact['id'] . '">' . $contact->contact['lastname'] . (!empty($contact->contact['firstname']) ? ', ' . $contact->contact['firstname'] : '') . '</a>'; $contact = Contact::newContact($data[$i]['requesterId']); $data[$i]['requesterId'] = '<a href="../contact/contact.php?id=' . $contact->contact['id'] . '">' . $contact->contact['lastname'] . (!empty($contact->contact['firstname']) ? ', ' . $contact->contact['firstname'] : '') . '</a>'; $i++; } $cont = '<style>.parr-list { margin: 20px auto 20px auto; width: 90%; } .parr-list th { border: 1px solid; } .parr-list td { border: 1px solid #AAA; } td.parr-list-tdblank { border: none; } </style>'; $tGen = new TableGenerator('parr-list', $fields, $CONFIG_ADMIN_REQUEST_BREAKS); $cont .= $tGen->generateTable($data, $fields); $cont .= '<div><a href="' . Navigation::previousPageUrl() . '">return</a></div><br>'; return $cont; }
/** * Create view */ private function createView() { $this->oView->addData('titre', Language::translate('PERMISSIONS_ADMIN_TABLE_TITLE')); $oTable = new TableGenerator(); $oTable->setId(md5('Access')); $aRanks = Rank::getRanks(); $oTable->addColumn(''); foreach ($aRanks as $oRank) { $oTable->addColumn($oRank->getName()); } $aModules = Permission::getModules(); foreach ($aModules as $iId => $sName) { $aBuffer = array(); $aBuffer[] = $sName; foreach ($aRanks as $oRank) { if ($oRank->checkAccess($sName)) { $sIcon = 'fa-check'; $sStyle = 'success'; $sNewValue = 'false'; } else { $sIcon = 'fa-times'; $sStyle = 'danger'; $sNewValue = 'true'; } $oLabel = new View('minibutton'); $oLabel->addData('icon', $sIcon); $oLabel->addData('style', $sStyle); $oLabel->addData('link', 'index.php?p=adminpermissions&m=' . $iId . '&r=' . $oRank->getId() . '&v=' . $sNewValue); $oLabel->create(); $aBuffer[] = $oLabel->getCode(); } $oTable->addLine($aBuffer); } $oTable->setBottom(''); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->Create(); }
/** * create the content of recently changed * @return string html-content * @global Options determine how many days after change the contact should still be shown */ function innerCreate() { global $options; global $db; $db->query('SELECT * FROM ' . TABLE_CONTACT . ' AS contact, ' . TABLE_PROPERTIES . " AS prop \r\n WHERE contact.id=prop.id AND prop.label=" . $db->escape($this->featureLabel) . ' ORDER BY prop.value ' . ($this->ascending ? 'ASC' : 'DESC') . ($this->limit > 0 ? ' LIMIT ' . $this->limit : '')); $data = array(); while ($c = $db->next()) { $data[] = array('display_name' => $c['lastname'] . ', ' . $c['firstname'], 'feature' => $c['value']); } $tGen = new TableGenerator('changed-list'); $cont = '<table class="changed-list">'; $cont .= '<caption>Ranklist'; $cont .= '</caption>'; if (count($data) > 0) { $cont .= $tGen->generateBody($data, array('display_name', 'feature')); } else { $cont .= '<tr class="noentry"><td>Not found</td></tr>'; } $cont .= '</table>'; return $cont; }
/** * create the content of recently changed * @return string html-content * @param boolean $compact whether list should be displayed with imported link and user who changed contact * @global Options determine how many days after change the contact should still be shown * @global CONFIG_LIST_NAME_SPEC */ function innerCreate() { global $options, $CONFIG_CHANGEDLIST_NAME_SPEC; $contacts = $this->contactList->getContacts(); $data = array(); foreach ($contacts as $c) { $who = new User(intval($c->contact['whoModified'])); if (!isset($CONFIG_CHANGEDLIST_NAME_SPEC)) { $spec = null; } else { $spec = $CONFIG_CHANGEDLIST_NAME_SPEC; } $data[] = array('display_name' => $c->generateFullName('html', $spec), 'chdate' => date('F j', strtotime($c->contact['lastUpdate'])), 'change' => $c->contact['lastModification'], 'reset' => '<a href="../admin/saveadmin.php?id=' . $c->contact['id'] . '&mode=imported">imported</a>', 'who' => isset($who->contact['id']) ? '<a href="../contact/contact.php?id=' . $who->contact['id'] . '">' . $who->contact['lastname'] . (!empty($who->contact['firstname']) ? ', ' . $who->contact['firstname'] : '') . '</a>' : 'null'); } $tGen = new TableGenerator('changed-list'); $cont = '<table class="changed-list">'; $cont .= '<caption>Recently changed (past ' . $options->getOption('bdayInterval') . ' days)'; if (!$this->expanded) { $cont .= ' <a href="../contact/changedlist.php">expand</a>'; } $cont .= '</caption>'; if (count($data) > 0) { if ($_SESSION['user']->isAtLeast('admin') && $this->expanded) { $cont .= $tGen->generateBody($data, array('display_name', 'chdate', 'change', 'reset', 'who')); } else { $cont .= $tGen->generateBody($data, array('display_name', 'chdate', 'change')); } } else { $cont .= '<tr class="noentry"><td>Nothing changed</td></tr>'; } $cont .= '</table>'; if ($this->expanded) { $cont .= '<div><a href="' . Navigation::previousPageUrl() . '">return</a></div><br>'; } return HTMLHelper::createNestedDivBoxModel('changed-list', $cont); }
private function createView() { //Display keys $this->oView->addData('titre', Language::translate('API_ADMIN_TABLE_TITLE')); $oTable = new TableGenerator(); $oTable->setId(md5('API')); $oTable->addColumn(Language::translate('API_ADMIN_TABLE_KEY')); $oTable->addColumn(Language::translate('API_ADMIN_TABLE_TYPE')); $oTable->addColumn(''); $aKeys = ApiKey::getAllKeys(); foreach ($aKeys as $oApiKey) { $oTable->addLine(array($oApiKey->getUserLogin(), $oApiKey->getKey(), $this->createAccessLabel($oApiKey), $this->createEditPopup($oApiKey))); } $oTable->setBottom($this->createAddPopup()); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->Create(); }
/** * Create View */ private function createView() { $this->oView->addData('titre', Language::translate('PARSER_ADMIN_TABLE_TITLE')); $oTable = new TableGenerator(); $oTable->setId(md5('Parser')); $oTable->addColumn(Language::translate('PARSER_ADMIN_TABLE_TAG')); $oTable->addColumn(Language::translate('PARSER_ADMIN_TABLE_REGEX')); $oTable->addColumn(Language::translate('PARSER_ADMIN_TABLE_CATEGORIE')); $oTable->addColumn(''); $aRegex = Regex::getAllRegex(); $aCategories = Categorie::getCategoriesSelect(); $aCategories[0] = Language::translate('PARSER_ADMIN_TABLE_NONE'); foreach ($aRegex as $oRegex) { $oTable->addLine(array($oRegex->getName(), $oRegex->getRegex(), $aCategories[$oRegex->getCategorie()], $this->createEditPopup($oRegex, $aCategories))); } $oTable->setBottom($this->createAddPopup($aCategories)); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->create(); }
private function createView() { $this->oView->addData('titre', Language::translate('RSS_ADMIN_TABLE_TITLE')); $oTable = new TableGenerator(); $oTable->setId(md5('rss')); $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_TRACKER')); $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_URL')); $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_ENCODE')); $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_DATE')); $oTable->addColumn(Language::translate('RSS_ADMIN_TABLE_MASK')); $oTable->addColumn(''); $aRss = Rss::getFlux(); $aTrackers = Tracker::getTrackersSelect(); $aCategories = Categorie::getCategoriesSelect(); foreach ($aRss as $oRss) { $oTable->addLine(array($aTrackers[$oRss->getTrackerId()], $this->createUrlPopup($oRss), $oRss->getEncoding(), $oRss->isForcedate() ? Language::translate('RSS_ADMIN_TABLE_SERVER') : Language::translate('RSS_ADMIN_TABLE_RSS'), $this->createMaskPopup($oRss), $this->createEditPopup($oRss, $aTrackers, $aCategories))); } $oTable->setBottom($this->createAddPopup($aTrackers, $aCategories)); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->create(); }
/** * create the table containing the contacts * * @uses Contact * @return string html-content * @uses TableGenerator */ function createTable() { // create big table $contacts = $this->contactList->getContacts(); $mailtohref = ''; // email link $data = array(); $htmlId = 0; foreach ($contacts as $c) { if ($this->expand) { $p = Page::newPage('PageContact', $c); $data[] = array('cont' => $p->innerCreate(), 'css_class' => 'list-expanded-card', 'group_n' => $groupNormalizer->normalize(mb_substr($c->contact['lastname'], 0, 1))); continue; } // fetch first email ... $mails = $c->getValueGroup('email'); $e = EmailHelper::sendEmailHref($c->rawEmail($mails[0])); $mailtohref .= $e . ','; $r = $c->generateListRowArray(); //$r[] = "<input type='checkbox' checked=1 name='$e' id='cx$htmlId' onchange='generateMailto();'/>"; $data[] = $r; $htmlId++; } $tGen = new TableGenerator('contact-list'); $cont = '<table class="contact-list">'; //$cont .= '<caption>' . $this->contactList->getGroupCaption() . '</caption>'; if (count($data) > 0) { if ($this->expand) { $cont .= $tGen->generateBody($data, array('cont'), 'css_class', $this->isSorted ? 'group_n' : null); } else { $cont .= $tGen->generateBody($data, range(0, count($data[0]) - 3), 'css_class', $this->isSorted ? 'group_n' : null); } } else { $cont .= '<tr class="noentry"><td>No Entries.</td></tr>'; } $cont .= '</table>'; //$this->nav->addEntry('mailtoSelected','mail to selected',"mailto:$mailtohref"); return $cont; }
/** * Créer la vue pour la page */ private function createView() { //Affichage des utilisateurs $this->oView->addData('titre', 'Administration des utilisateurs'); //Construction du tableau $oTable = new TableGenerator(); $oTable->setId(md5('Administration des utilisateurs')); $oTable->addColumn('Identifiant'); $oTable->addColumn('Email'); $oTable->addColumn('Rang'); $oTable->addColumn(''); $aUsers = User::getUsers(); $aRanks = Rank::getRanksSelect(); foreach ($aUsers as $oUser) { $oTable->addLine(array($oUser->getLogin(), $oUser->getMail(), $oUser->getRank()->getName(), $this->createEditPopup($oUser, $aRanks))); } $oTable->setBottom($this->createAddPopup($aRanks)); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); //Popup d'ajout $this->oView->Create(); }
/** * create the content of recently changed * @return string html-content * @global Options determine how many days after change the contact should still be shown * @param boolean $compact whether list should be displayed with imported link and user who changed contact */ function innerCreate() { global $options; global $db; $db->query('SELECT * FROM ' . TABLE_CONTACT . ' AS contact, ' . TABLE_GROUPS . ' AS groups, ' . TABLE_GROUPLIST . ' AS grouplist WHERE ( certState="issued" OR certState="used" ) AND ( DATE_ADD(certLastUsed, INTERVAL 3 MONTH) < NOW() OR certLastUsed IS NULL ) AND contact.id=groups.id AND groups.groupid=grouplist.groupid ORDER BY groupname, certLastUsed DESC', 1); $mailto = ''; $currentGroup = null; $data = array(); $neverUsed = 0; while (1) { $c = $db->next(1); if ($currentGroup != $c['groupname'] || $c == null) { if ($currentGroup != null) { $subject = htmlentities($options->getOption('adminEmailSubject') . ': Security Certificate Expiration Notice'); $body = str_replace("\n", '%0A', htmlentities($options->getOption('adminEmailFooter'))); $data[] = array('display_name' => "Expired: <a href='mailto:?bcc={$mailto}&subject=" . $subject . '&body=' . $body . "'>mailto expired</a>", 'certLastUsed' => ' ', 'certState' => ' ', 'groupname' => $currentGroup); $mailto = ''; } if ($c == null) { break; } $currentGroup = $c['groupname']; } $data[] = array('display_name' => '<a href="../../contact/contact.php?id=' . $c['id'] . '">' . $c['lastname'] . ', ' . $c['firstname'] . '</a>', 'certLastUsed' => $c['certLastUsed'], 'certState' => $c['certState'], 'groupname' => $c['groupname']); if ($c['certState'] == 'issued') { // never used $neverUsed++; } $co = new Contact($c['id']); $mailto .= $co->getFirstEmail() . ','; } // START OUTPUT $cont = '<div> </div>'; $db->query('SELECT MAX(certLastUsed) AS number FROM ' . TABLE_CONTACT . ' AS contact WHERE certState="issued" OR certState="used"'); $r = $db->next(); $cont .= '<div>Newest update: ' . $r['number'] . '</div><br>'; $db->query('SELECT COUNT(*) AS number FROM ' . TABLE_CONTACT . ' AS contact WHERE certState="issued" OR certState="used"'); $r = $db->next(); $cont .= '<div>Certificates (issued or used): ' . $r['number'] . '</div><br>'; $db->query('SELECT COUNT(*) AS number FROM ' . TABLE_CONTACT . ' AS contact WHERE certState="used" AND DATE_ADD(certLastUsed, INTERVAL 3 MONTH) >= NOW()'); $r = $db->next(); $cont .= '<div>Certificates used within last 3 month: ' . $r['number'] . '</div><br>'; $cont .= '<div>Unused certificates (entries in this list): ' . count($data) . ' (multi grouped entries listed multiple times)</div><br>'; $cont .= '<div>Never used (issued): ' . $neverUsed . '</div><br>'; // generate Table $tGen = new TableGenerator('changed-list'); $cont .= '<table class="changed-list">'; $cont .= '<caption>Unused Certificates (unused >3 month)</caption>'; if (count($data) > 0) { $cont .= $tGen->generateBody($data, array('display_name', 'certLastUsed', 'certState'), '', 'groupname', false); } else { $cont .= '<tr class="noentry"><td>Not found</td></tr>'; } $cont .= '</table>'; $cont .= '<div><a href="gencerts.php">return</a></div><br>'; return $cont; }
function genHTML($cssClass, $header, $data, $arr, $class = '') { $cont = '<a name="' . $this->tableName . '"></a>'; $cont .= '<form method="post" action="' . $_SERVER['PHP_SELF'] . ($this->get ? '?' . $this->get : '') . "#" . $this->tableName . '">'; // consider if this should be an inline style or better be placed in a stylesheet if ($this->saved > 0) { $cont .= '<div style="padding: 3px; border: #3399FF 1px solid; border-color: ; background-color: #99FF99;">Successfully saved<b> ' . $this->saved . ' (' . $this->processed . ')</b></div>'; } $cont .= '<input type="hidden" name="' . $this->tableName . '[confirmer]" value="' . $this->tableName . '" />'; $cont .= '<table>'; $tableGen = new TableGenerator($cssClass, $header, $this->rowFolding); $cont .= $tableGen->generateTable($data, $arr, $class); $cont .= '</table>'; $cont .= '<button id="TableEditorSubmitButton" type="submit">save</button>'; $cont .= '</form>'; return $cont; }
private function createReleasesTable($sType) { $oSearch = new Search($this->oCurrentUser); $oSearch->searchWithIdFiche($this->oFiche->getId(), $sType); $aReleases = $oSearch->getReleaseTable(); if (count($aReleases) != 0) { $oFinalTable = new TableGenerator(); $oFinalTable->setId('releases'); $oFinalTable->addColumn('Tags'); $oFinalTable->addColumn('Release'); $oFinalTable->addColumn('Lien'); $aTrackers = Tracker::getTrackers(); $aCategories = Categorie::getCategories(); foreach ($aReleases as $iIdRelease => $aRelease) { //Affichage de la catégorie $oCatView = new View('label'); $oCatView->addData('type', 'primary'); if ($aRelease['categorie'] != 0) { $oCatView->addData('text', $aCategories[$aRelease['categorie']]->getName()); } else { $oCatView->addData('text', 'Non scrappé'); } $oCatView->create(); $sTags = $oCatView->getCode() . ' '; //Affichage des TAGS : foreach ($aRelease['tags'] as $iTagId => $sTagName) { if ($iTagId != NULL) { $oTagView = new View('label'); $oTagView->addData('type', 'info'); $oTagView->addData('text', $sTagName); $oTagView->create(); $sTags .= $oTagView->getCode() . ' '; } } //Affichage de la source : $oOriginView = new View('label'); $oOriginView->addData('text', $aRelease['origin']); if ($aRelease['origin'] == 'Scene') { $oOriginView->addData('type', 'success'); } else { $oOriginView->addData('type', 'danger'); } $oOriginView->create(); $sTags .= $oOriginView->getCode(); //Création de la popup Tracker $oPopup = new View('releasepopup'); $oPopup->addData('id', $iIdRelease); $oPopup->addData('tracker', $aTrackers[$aRelease["first_tracker"]]->getName()); $oPopup->addData('nbtracker', count($aRelease['torrents'])); $oPopup->addData('title', $aRelease['release']); //Affichage des liens $aTableLinks = array(); foreach ($aRelease['torrents'] as $aTorrent) { $sButtons = ''; if (isset($aTorrent['fichelink'])) { $oFicheButton = new View('minibutton'); $oFicheButton->addData('link', $aTorrent['fichelink']); $oFicheButton->addData('icon', 'fa-search-plus'); $oFicheButton->addData('style', 'primary'); $oFicheButton->create(); $sButtons .= $oFicheButton->getCode() . ' '; } if (isset($aTorrent['directlink'])) { $oDirectButton = new View('minibutton'); $oDirectButton->addData('link', $aTorrent['directlink']); $oDirectButton->addData('icon', 'fa-download'); $oDirectButton->addData('style', 'success'); $oDirectButton->create(); $sButtons .= $oDirectButton->getCode() . ' '; $oRssButton = new View('miniajaxbutton'); $oRssButton->addData('tid', $aTorrent['torrentid']); $oRssButton->addData('icon', 'fa-rss-square'); $oRssButton->addData('style', 'warning'); $oRssButton->create(); $sButtons .= $oRssButton->getCode() . ' '; } $aTableLinks[] = array($aTrackers[$aTorrent['tracker']]->getName(), $aTorrent['delay'], $sButtons); } $oTable = new View('torrentlist'); $oTable->addData('titre', $aRelease['release']); $oTable->addData('tabledatas', $aTableLinks); $oTable->addData('bottom', $aRelease['first']); $oTable->create(); $oPopup->addData('content', $oTable->getCode()); $oPopup->create(); //Affichage du lien de modération if ($this->oCurrentUser->checkAccess('modrelease')) { $sFicheLink = '<a href="index.php?p=modrelease&id=' . $aRelease['release_id'] . '" style="color: black;">' . $aRelease['release'] . '</a>'; } else { $sFicheLink = $aRelease['release']; } $oFinalTable->addLine(array($sTags, $sFicheLink, $oPopup->getCode())); } $oFinalTable->create(); $this->oView->addData('releases', $oFinalTable->getCode()); } else { $this->oView->addData('releases', 'Aucune release trouvée :('); } }
private function createView() { //Affichage des Trackers $this->oView->addData('titre', 'Signalements des membres'); //Construction du tableau $oTable = new TableGenerator(); $oTable->setId(md5('Signalements')); $oTable->addColumn('Date'); $oTable->addColumn('Utilisateur'); $oTable->addColumn('Fiche'); $oTable->addColumn('Commentaire'); $oTable->addColumn(''); $aFiches = Fiche::getSignaledFiche(); if ($aFiches != false) { foreach ($aFiches as $aFiche) { $oClearButton = new View('minibutton'); $oClearButton->addData('link', 'index.php?p=modwarnings&type=' . $aFiche['type'] . '&id=' . $aFiche['id_fiche']); $oClearButton->addData('icon', 'fa-check'); $oClearButton->addData('style', 'success'); $oClearButton->create(); $sLink = '<a href="index.php?p=fichedetail&type=' . $aFiche['type'] . '&id=' . $aFiche['id_fiche'] . '">[' . $aFiche['type'] . '] ' . $aFiche['id_fiche'] . '</a>'; $oTable->addLine(array($aFiche['date'], $aFiche['login_user'], $sLink, $this->createCommentPopup($aFiche), $oClearButton->getCode())); } } else { $oTable->setBottom('Aucun signalement'); } $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->create(); }
/** * Créer la page */ private function createView() { //Affichage des passkeys $this->oView->addData('pk_titre', 'Mes passkeys'); //Construction du tableau $oTable = new TableGenerator(); $oTable->setId(md5('Mes passkeys')); $oTable->addColumn('Tracker'); $oTable->addColumn('Passkey'); $oTable->addColumn(''); $aPasskeys = Passkey::getUserPasskeys($this->oCurrentUser->getId()); $aTrackers = Tracker::getTrackersSelect(); foreach ($aPasskeys as $oPasskey) { $oTable->addLine(array($oPasskey->getTrackerName(), $oPasskey->getPasskey(), $this->createPkEditPopup($oPasskey))); } $oTable->setBottom($this->createPkAddPopup($aTrackers)); $oTable->create(); $this->oView->addData('pk_content', $oTable->getCode()); //Affichage RSS $oPurgeButton = new View('minibutton'); $oPurgeButton->addData('link', 'index.php?p=profil&a=purge'); $oPurgeButton->addData('icon', 'fa-trash-o'); $oPurgeButton->addData('style', 'danger'); $oPurgeButton->create(); $this->oView->addData('rss_titre', 'Mes flux RSS'); $this->oView->addData('rss_link', Config::get('installdir') . 'rss.php?cat=autoget&pk=' . $this->oCurrentUser->getPasskey()); $this->oView->addData('rss_purge', $oPurgeButton->getCode()); $aFlux = array(); $aFlux[] = array("name" => "Général", "link" => Config::get('installdir') . 'rss.php?pk=' . $this->oCurrentUser->getPasskey()); $aCategories = Categorie::getCategories(); foreach ($aCategories as $oCategorie) { $aFlux[] = array("name" => $oCategorie->getName(), "link" => Config::get('installdir') . 'rss.php?cat=' . $oCategorie->getId() . '&pk=' . $this->oCurrentUser->getPasskey()); } $this->oView->addData('rss_flux', $aFlux); $this->oView->addData('rss_passkey', $this->oCurrentUser->getPasskey()); $this->oView->Create(); }
private function createView() { //Affichage des Trackers $this->oView->addData('titre', 'Administration des Trackers'); //Construction du tableau $oTable = new TableGenerator(); $oTable->setId(md5('Administration des Trackers')); $oTable->addColumn('Nom'); $oTable->addColumn('Passkey'); $oTable->addColumn('Lien de la fiche'); $oTable->addColumn('Lien de téléchargement'); $oTable->addColumn(''); $aTrackers = Tracker::getTrackers(); foreach ($aTrackers as $oTracker) { $oTable->addLine(array($oTracker->getName(), $oTracker->getNbPasskeys() == 0 ? 'Aucun' : $oTracker->getNbPasskeys() . ' passkeys', $this->createLinkPopup($oTracker), $this->createDirectLinkPopup($oTracker), $this->createEditPopup($oTracker))); } //Popup d'ajout $oTable->setBottom($this->createAddPopup() . ' ' . $this->createImportPopup()); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->create(); }
/** * create the table containing the contacts * * @uses Contact * @return string html-content * @global GroupNormalizer used to modify the contact names, in order to get them correctly grouped * @uses TableGenerator */ function createTable() { global $groupNormalizer; // create big table $contacts = $this->contactList->getContacts(); $data = array(); foreach ($contacts as $c) { if ($this->expand) { $p = Page::newPage('PageContact', $c); $data[] = array('cont' => $p->innerCreate(), 'css_class' => 'list-expanded-card', 'group_n' => $groupNormalizer->normalize(mb_substr($c->contact['lastname'], 0, 1))); continue; } $data[] = $c->generateListRowArray(); } $tGen = new TableGenerator('contact-list'); $cont = '<table class="contact-list">'; $cont .= '<caption>' . $this->contactList->getGroupCaption() . '</caption>'; if (count($data) > 0) { if ($this->expand) { $cont .= $tGen->generateBody($data, array('cont'), 'css_class', 'group_n'); } else { $cont .= $tGen->generateBody($data, range(0, count($data[0]) - 3), 'css_class', 'group_n'); } } else { $cont .= '<tr class="noentry"><td>No Entries.</td></tr>'; } $cont .= '</table>'; return HTMLHelper::createNestedDivBoxModel('contact-list', $cont); }
/** * create the form needed for user management * @return string html-content * @global DB used for database access * @global CONFIG_USER_ACCOUNT_EXPIRED_MAIL email subject and content (mailto:) for expired account message * @global CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL SQL interval for DATE_ADD e.g. "1 MONTH" to check account expiration */ function createUserManagementForm() { global $db, $CONFIG_USER_ACCOUNT_EXPIRED_MAIL, $CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL; $cont = '<fieldset class="options-options">'; $cont .= '<legend>User list</legend>'; if (empty($CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL)) { $CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL = '1 MONTH'; } $db->query("SELECT *, DATE_ADD(lastLogin, INTERVAL {$CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL})<NOW() AS expiredLogin FROM " . TABLE_USERS . ' AS users LEFT JOIN ' . TABLE_CONTACT . ' AS contact ON users.id = contact.id ORDER BY usertype'); $data = array(); // collect user types in array for mailto link $users = array(); $managers = array(); $admins = array(); while ($r = $db->next()) { $email = $r['firstname'] . ' ' . $r['lastname'] . ' <' . $r['reg_email'] . '>'; $baseHref = '../contact/contact.php?id=' . $r['id'] . '&noxslt=1'; // no stylesheet display $editHref = $baseHref . '&mode=edit'; if (isset($r['lastname'])) { $name = '<a href="' . $baseHref . '">' . $r['lastname'] . ', ' . $r['firstname'] . '</a> (<a href="' . $editHref . '">edit</a>, ' . EmailHelper::sendEmailLink($email, $r['reg_email']) . ')'; } else { $name = EmailHelper::sendEmailLink($email, $email); } $data[] = array('name' => $name, 'lastLogin' => $r['lastLogin'], 'loginExpired' => $r['expiredLogin'] ? "<a href='mailto:{$email}{$CONFIG_USER_ACCOUNT_EXPIRED_MAIL}'>[!]</a>" : '', 'type' => $r['usertype'], 'delete' => '<a href="javascript:deleteUser(' . $r['userid'] . ')">delete</a>'); switch ($r['usertype']) { case 'admin': $admins[] = $email; break; case 'manager': $managers[] = $email; break; case 'user': $users[] = $email; break; } } $tableGen = new TableGenerator('admin-users'); $cont .= $tableGen->generateTable($data, null, '', 'type', false); //group by type $cont .= '<div><br> Send email to: ' . EmailHelper::sendEmailLink($admins, 'administrators') . ' '; $cont .= EmailHelper::sendEmailLink($managers, 'managers') . ' '; $cont .= EmailHelper::sendEmailLink($users, 'users') . ' '; $cont .= EmailHelper::sendEmailLink(array_merge($managers, $users), 'users and managers') . ' '; $cont .= EmailHelper::sendEmailLink(array_merge($admins, $managers, $users), 'all') . ' </div>'; $cont .= '</fieldset>'; return $cont; }
public function procede() { if (!$this->oRequest->existParam('key')) { throw new Error('Vous devez renseigner la clé.', 3003); } if ($this->oRequest->getParam('key', 'string') != Config::get('ingestkey')) { throw new Error('La clé est invalide.', 3003); } //Ajoute du titre $this->oView->addData('titre', 'Analyse des flux RSS'); //On récupère les éléments pour les statistiques $iNbReleases = Release::getCount(); $iNbTorrents = Torrent::getCount(); $iStartTime = time(); //Traitement des Trackers $aTrackers = Tracker::getTrackers(); //Ajout des flux $aRssList = Rss::getFlux(); foreach ($aRssList as $oRss) { $aTrackers[$oRss->getTrackerId()]->addFlux($oRss); } //Parsage des flux $aResults = array(); foreach ($aTrackers as $oTracker) { $aResults = array_merge($aResults, $oTracker->parseRss()); } //Traitement des résultats $oTable = new TableGenerator(); $oTable->setId(md5('Ingest')); $oTable->addColumn('Tags'); $oTable->addColumn('Tracker'); $oTable->addColumn('Release'); foreach ($aResults as $oResult) { if (is_string($oResult)) { Logger::log('ingest', $oResult); $this->oView->addAlert($oResult, 'danger'); } else { $oResult->store(); $sTags = ''; foreach ($oResult->getTags() as $oTag) { $oTagView = new View('label'); $oTagView->addData('type', 'info'); $oTagView->addData('text', $oTag->getName()); $oTagView->create(); $sTags .= $oTagView->getCode() . ' '; } $oTable->addLine(array($sTags, $aTrackers[$oResult->getTracker()]->getName(), $oResult->getReleaseName())); } } //Statistiques $iNewReleases = Release::getCount() - $iNbReleases; $iNewTorrents = Torrent::getCount() - $iNbTorrents; Stats::storeIngestStats($iNewReleases, $iNewTorrents, date("Y-m-j G:i:s", $iStartTime)); //Enregistrement de la dernière date de vérification Rss::updateLastCheck(date("Y-m-j G:i:s", $iStartTime)); Logger::log('ingest', $iNewReleases . ' nouvelles releases et ' . $iNewTorrents . ' nouveaux torrents.'); $oTable->setBottom($iNewReleases . ' nouvelles releases et ' . $iNewTorrents . ' nouveaux torrents.'); $oTable->create(); $this->oView->addData('content', $oTable->getCode()); $this->oView->Create(); }
function passwordTable() { // font suitable for faxing $cont = "\n" . '<style type="text/css"> .sslca-fax { font-family: courier; font-size: 20px; border: solid 1px; } </style>'; $tGen = new TableGenerator('', array('company' => 'Company', 'name' => 'Name', 'password' => 'Password')); $data = array(); foreach ($this->data->getContacts() as $c) { $gr = $c->getValueGroup('groups'); $gr = $gr[0]['groupname']; $data[] = array('company' => $gr, 'name' => $c->contact['firstname'] . ' ' . $c->contact['lastname'], 'password' => $c->contact['certPassword'], 'hint' => '[0,1,lion,OK]'); } $cont .= "\n<table class='sslca-fax' width='80%'>"; //$cont .= '<caption>Password List</caption>'; //$cont .= $tGen->generateHead(array('name','password')); $cont .= $tGen->generateBody($data, array('name', 'password', 'hint'), 'sslca-fax', 'company', false); $cont .= '</table>'; return $cont; }