-
Notifications
You must be signed in to change notification settings - Fork 201
/
ProcessList.module
83 lines (69 loc) · 2.44 KB
/
ProcessList.module
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
<?php
/**
* ProcessWire List Process
*
* Generates a <dl> definition list of Processes attached to each child page.
*
* For more details about how Process modules work, please see:
* /wire/core/Process.php
*
* ProcessWire 2.x
* Copyright (C) 2015 by Ryan Cramer
* This file licensed under Mozilla Public License v2.0 http://mozilla.org/MPL/2.0/
*
* https://processwire.com
*
*
*/
class ProcessList extends Process {
public static function getModuleInfo() {
return array(
'title' => __('List', __FILE__), // getModuleInfo title
'summary' => __('Lists the Process assigned to each child page of the current', __FILE__), // getModuleInfo summary
'version' => 101,
'permanent' => true,
'permission' => 'page-view',
);
}
public function ___execute() {
return $this->render();
}
protected function render() {
$out = "\n<dl class='nav'>";
$cnt = 0;
foreach($this->page->children("check_access=0") as $child) {
if(!$child->viewable()) continue;
$class = '';
if($child->process) {
$info = $this->modules->getModuleInfoVerbose($child->process, array('noCache' => true));
$icon = $info['icon'] ? "<i style='float: right;' class='fa fa-3x fa-fw fa-$info[icon] ui-priority-secondary'></i> " : '';
$title = $child->title;
if(!strlen($title)) $title = $info['title'];
if(!strlen($title)) $title = $child->name;
$titleTranslated = __($title, '/wire/templates-admin/default.php');
if($titleTranslated && $titleTranslated != $title) $title = $titleTranslated;
$title = $this->wire('sanitizer')->entities1($title);
if($child->summary) $summary = $child->summary;
else $summary = $info['summary'];
$summary = $this->wire('sanitizer')->entities1($summary);
} else {
$title = $child->get("title|name");
if($child->template == 'admin') {
$summary = $this->_('The process module assigned to this page does not appear to be installed.');
$class = " class='ui-priority-secondary'";
} else if($child->summary) {
$summary = $this->wire('sanitizer')->entities($child->getUnformatted('summary'));
} else {
$summary = '<!--' . $this->_('No description available') . '-->';
}
$icon = '';
}
$out .= "\n\t<dt$class><a class='label' href='{$child->url}'>$icon$title</a></dt>";
if($summary) $out .= "\n\t<dd$class>$summary</dd>";
$cnt++;
}
$out .= "\n</dl>";
if(!$cnt) $out = '';
return $out;
}
}