update copyright year
[GitHub/Stricted/Domain-Control-Panel.git] / lib / page / IndexPage.class.php
CommitLineData
6706658b
S
1<?php
2namespace dns\page;
01c0ad42 3use dns\system\api\idna\idna_convert;
6706658b
S
4use dns\system\DNS;
5use dns\system\User;
6
7/**
8 * @author Jan Altensen (Stricted)
9 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
d4779364 10 * @copyright 2014-2016 Jan Altensen (Stricted)
6706658b
S
11 */
12class IndexPage extends AbstractPage {
13 public $activeMenuItem = 'index';
14
15 public function prepare() {
16 $domains = array();
17 $soaIDs = User::getAccessibleDomains();
18 $idna = new idna_convert();
19
20 $sortField = "id";
21 $sortOrder = "ASC";
22 $sqlOrderBy = "";
23 $validSortFields = array('id', 'origin', 'serial');
24
25 if (isset($_GET['sortField'])) {
26 if (in_array($_GET['sortField'], $validSortFields)) {
27 $sortField = $_GET['sortField'];
28 }
29 }
30
31 if (isset($_GET['sortOrder'])) {
32 if ($_GET['sortOrder'] == "ASC" || $_GET['sortOrder'] == "DESC") {
33 $sortOrder = $_GET['sortOrder'];
34 }
35 }
36
37 if (!empty($sortField) && !empty($sortField)) {
38 $sqlOrderBy = $sortField." ".$sortOrder;
39 }
40
41 $pageNo = 1;
42 if (isset($_GET['pageNo']) && !empty($_GET['pageNo'])) {
43 $pageNo = intval($_GET['pageNo']);
44 }
45
46 $itemsPerPage = 20;
47 $pages = 0;
48
49 $sqlLimit = $itemsPerPage;
50 $sqlOffset = ($pageNo - 1) * $itemsPerPage;
51 $pages = intval(ceil(count($soaIDs) / $itemsPerPage));
52
53 if (count($soaIDs) > 0) {
54 $sql = "SELECT * FROM dns_soa WHERE id IN (".str_repeat('?, ', count($soaIDs) - 1). "?)".(!empty($sqlOrderBy) ? " ORDER BY ".$sqlOrderBy : '')." LIMIT " . $sqlLimit . " OFFSET " . $sqlOffset;
55 $res = DNS::getDB()->query($sql, $soaIDs);
56 while ($row = DNS::getDB()->fetch_array($res)) {
57 $sql2 = "SELECT count(*) as count FROM dns_rr WHERE zone = ?";
58 $res2 = DNS::getDB()->query($sql2, array($row['id']));
59 $row2 = DNS::getDB()->fetch_array($res2);
60 $row['origin'] = $idna->decode($row['origin']);
61 $row['rrc'] = $row2['count'];
62 $domains[] = $row;
63 }
64 }
65
66 DNS::getTPL()->assign(array(
67 'domains' => $domains,
68 'pageNo' => $pageNo,
69 'pages' => $pages,
70 'count' => count($soaIDs),
71 'sortField' => $sortField,
72 'sortOrder' => $sortOrder
73 ));
74 }
75}