-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProcessIndexNow.module.php
88 lines (73 loc) · 2.64 KB
/
ProcessIndexNow.module.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php namespace ProcessWire;
class ProcessIndexNow extends Process implements Module, ConfigurableModule {
public function __construct() {
$this->indexNowReturnCodes = [
200 => 'OK',
202 => 'Accepted',
400 => 'Bad request',
403 => 'Forbidden',
422 => 'Unprocessable Entity',
429 => 'Too Many Requests'
];
}
public function ___execute() {
$ret = '';
/** @var \ProcessWire\IndexNow $indexNow */
$indexNow = $this->modules->get('IndexNow');
$indexNowKey = $indexNow -> get('indexNowKey');
$indexNow -> checkAndWriteFile($indexNowKey);
$database = $this->wire()->database;
/** @var \ProcessWire\MarkupAdminDataTable $table */
$table = $this->modules->get('MarkupAdminDataTable');
$table->setEncodeEntities(false);
$table->headerRow(array(
$this->_('Page ID'),
$this->_('URI'),
$this->_('Saved at'),
$this->_('Response from IndexNow'),
$this->_('Submitted at')
));
$sql = '
SELECT
id,
pages_id,
url,
saved,
response,
submitted
FROM
index_now
WHERE
1=1
ORDER BY
saved DESC
';
$stmt = $database->query($sql);
$tsSaved = null;
$tsSubmitted = null;
while ($row = $stmt->fetch()) {
$tsSaved = strtotime($row['saved']);
if(!is_null($row['submitted'])) {
$tsSubmitted = strtotime($row['submitted']);
}
$table->row([
'<a href="/processwire/page/edit/?id='.$row['pages_id'].'">'.$row['pages_id'].'</a>',
'<a href="'.$row['url'].'">'.$row['url'].'</a>',
'<span title="'.$this->wire()->datetime->date('', $tsSaved).'">'.$this->wire()->datetime->relativeTimeStr($tsSaved).'</span>',
is_null($row['response']) ? '–' : $row['response'].' '.$this -> indexNowReturnCodes[$row['response']],
is_null($tsSubmitted) ? '–' : '<span title="'.$this->wire()->datetime->date('', $tsSubmitted).'">'.$this->wire()->datetime->relativeTimeStr($tsSubmitted).'</span>'
]);
}
if(!is_null($tsSaved)) {
$ret = $table->render();
}
else {
$ret = '<p>'.$this->_('No URIs to show.').'</p>';
}
//$ret .= '<p>'.sprintf($this->_('For explanations of response codes see <a href="%s">the help pages of IndexNow</a>.'), 'https://www.indexnow.org/documentation#response').'<p>';
$ret .= '<p><a href="https://www.bing.com/webmasters/indexnow?siteUrl='.urlencode($this->wire()->input->httpHostUrl()).'">'.sprintf($this->_('Status log at Bing.'), ).'</a><p>';
return $ret;
}
public function getModuleConfigInputfields($inputfields) {
}
}