Skip to content

Commit 4d06e63

Browse files
committed
first
0 parents  commit 4d06e63

36 files changed

+4017
-0
lines changed

assets/modules/docmanager/classes/dm_backend.class.php

Lines changed: 562 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?php
2+
3+
class DocManagerFrontend {
4+
var $dm = null;
5+
var $modx = null;
6+
7+
function __construct(&$dm, &$modx) {
8+
$this->dm = &$dm;
9+
$this->modx = &$modx;
10+
include (MODX_MANAGER_PATH.'includes/controls/datagrid.class.php');
11+
}
12+
13+
function getViews() {
14+
$this->renderTemplates();
15+
$this->renderTemplateVars();
16+
$this->renderDocGroups();
17+
$this->renderMisc();
18+
$this->renderChangeAuthors();
19+
$this->renderDocumentSelect();
20+
}
21+
22+
function renderTemplates() {
23+
$templateRecordSet = $this->modx->db->select('id,templatename,description', $this->modx->getFullTableName('site_templates'),'','id ASC');
24+
25+
$grd = new DataGrid('', $templateRecordSet);
26+
$grd->noRecordMsg = $this->dm->lang['DM_tpl_no_templates'];
27+
$grd->cssClass = "grid";
28+
$grd->columnHeaderClass = "gridHeader";
29+
$grd->itemClass = "gridItem";
30+
$grd->altItemClass = "gridAltItem";
31+
$grd->columns = " ," . $this->dm->lang['DM_tpl_column_id'] . "," . $this->dm->lang['DM_tpl_column_name'] . "," . $this->dm->lang['DM_tpl_column_description'];
32+
$grd->colTypes = "template:<input type='radio' name='id' value='[+id+]' />";
33+
$grd->colWidths = "5%,5%,40%,50%";
34+
$grd->fields = "template,id,templatename,description";
35+
36+
$this->dm->ph['templates.grid'] = $grd->render();
37+
$this->dm->ph['view.templates'] = $this->dm->parseTemplate('templates.tpl', $this->dm->ph);
38+
}
39+
40+
function renderTemplateVars() {
41+
$templateRecordSet = $this->modx->db->select('id,templatename,description', $this->modx->getFullTableName('site_templates'),'','id ASC');
42+
43+
$grd = new DataGrid('', $templateRecordSet);
44+
$grd->noRecordMsg = $this->dm->lang['DM_tpl_no_templates'];
45+
$grd->cssClass = "grid";
46+
$grd->columnHeaderClass = "gridHeader";
47+
$grd->itemClass = "gridItem";
48+
$grd->altItemClass = "gridAltItem";
49+
$grd->columns = " ," . $this->dm->lang['DM_tpl_column_id'] . "," . $this->dm->lang['DM_tpl_column_name'] . "," . $this->dm->lang['DM_tpl_column_description'];
50+
$grd->colTypes = 'template:<input name="tid" type="radio" value="[+id+]" onclick="loadTemplateVars(\'[+id+]\');" />';
51+
$grd->colWidths = "5%,5%,40%,50%";
52+
$grd->fields = "template,id,templatename,description";
53+
54+
$this->dm->ph['templatevars.grid'] = $grd->render();
55+
$this->dm->ph['view.templatevars'] = $this->dm->parseTemplate('templatevars.tpl', $this->dm->ph);
56+
}
57+
58+
function renderDocGroups() {
59+
$documentgroups = $this->modx->db->select('id,name', $this->modx->getFullTableName('documentgroup_names'),'','id ASC');
60+
61+
$grd = new DataGrid('', $documentgroups);
62+
$grd->noRecordMsg = $this->dm->lang['DM_doc_no_docs'];
63+
$grd->cssClass = "grid";
64+
$grd->columnHeaderClass = "gridHeader";
65+
$grd->itemClass = "gridItem";
66+
$grd->altItemClass = "gridAltItem";
67+
$grd->columns = " ," . $this->dm->lang['DM_doc_column_id'] . "," . $this->dm->lang['DM_doc_column_name'];
68+
$grd->colTypes = "template:<input type='radio' name='docgroupid' value='[+id+]' />";
69+
$grd->colWidths = "5%,5%,40%,50%";
70+
$grd->fields = "template,id,name";
71+
72+
$this->dm->ph['documentgroups.grid'] = $grd->render();
73+
$this->dm->ph['view.documentgroups'] = $this->dm->parseTemplate('documentgroups.tpl', $this->dm->ph);
74+
}
75+
76+
function renderDocumentSelect() {
77+
$this->dm->ph['view.documents'] = $this->dm->parseTemplate('documents.tpl', $this->dm->ph);
78+
}
79+
80+
81+
function renderMisc() {
82+
$this->dm->ph['view.misc'] = $this->dm->parseTemplate('misc.tpl', $this->dm->ph);
83+
$this->dm->ph['view.tab'] = (isset($_GET['tab']) && is_numeric($_GET['tab'])) ? '<script type="text/javascript"> tpResources.setSelectedIndex( '.$_GET['tab'].' );</script>' : '';
84+
}
85+
86+
function renderChangeAuthors() {
87+
$users = $this->modx->db->select('id,username', $this->modx->getFullTableName('manager_users'));
88+
$userOptions = '';
89+
90+
while ($row = $this->modx->db->getRow($users)) {
91+
$userOptions .= '<option value="' . $row['id'] . '">' . $row['username'] . '</option>';
92+
}
93+
$this->dm->ph['changeauthors.options'] = $userOptions;
94+
$this->dm->ph['view.changeauthors'] = $this->dm->parseTemplate('changeauthors.tpl', $this->dm->ph);
95+
}
96+
}
97+
?>
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<?php
2+
3+
class DocManager {
4+
var $modx = null;
5+
var $lang = array();
6+
var $ph = array();
7+
var $theme = '';
8+
var $fileRegister = array();
9+
10+
function __construct(&$modx) {
11+
$this->modx = $modx;
12+
}
13+
14+
function getLang() {
15+
$_lang = array();
16+
$ph = array();
17+
$managerLanguage = $this->modx->config['manager_language'];
18+
19+
$userId = $this->modx->getLoginUserID();
20+
if (!empty($userId)) {
21+
$lang = $this->modx->db->select('setting_value', $this->modx->getFullTableName('user_settings'), "setting_name='manager_language' AND user='{$userId}'");
22+
if ($lang = $this->modx->db->getValue($lang)) {
23+
$managerLanguage = $lang;
24+
}
25+
}
26+
27+
include MODX_MANAGER_PATH.'includes/lang/english.inc.php';
28+
if($managerLanguage != 'english') {
29+
if (file_exists(MODX_MANAGER_PATH.'includes/lang/'.$managerLanguage.'.inc.php')) {
30+
include MODX_MANAGER_PATH.'includes/lang/'.$managerLanguage.'.inc.php';
31+
}
32+
}
33+
34+
include MODX_BASE_PATH.'assets/modules/docmanager/lang/english.inc.php';
35+
if($managerLanguage != 'english') {
36+
if (file_exists(MODX_BASE_PATH.'assets/modules/docmanager/lang/'.$managerLanguage.'.inc.php')) {
37+
include MODX_BASE_PATH.'assets/modules/docmanager/lang/'.$managerLanguage.'.inc.php';
38+
}
39+
}
40+
$this->lang = $_lang;
41+
foreach ($_lang as $key => $value) {
42+
$ph['lang.'.$key] = $value;
43+
}
44+
return $ph;
45+
}
46+
47+
function getTheme() {
48+
$theme = $this->modx->db->select('setting_value', $this->modx->getFullTableName('system_settings'), "setting_name='manager_theme'");
49+
if ($theme = $this->modx->db->getValue($theme)) {
50+
$this->theme = ($theme <> '') ? '/' . $theme : '';
51+
return $this->theme;
52+
} else {
53+
return '';
54+
}
55+
}
56+
57+
function getFileContents($file) {
58+
if (empty($file)) {
59+
return false;
60+
} else {
61+
$file = MODX_BASE_PATH.'assets/modules/docmanager/templates/'.$file;
62+
if(array_key_exists($file, $this->fileRegister)) {
63+
return $this->fileRegister[$file];
64+
} else {
65+
$contents = file_get_contents($file);
66+
$this->fileRegister[$file] = $contents;
67+
return $contents;
68+
}
69+
}
70+
}
71+
72+
function loadTemplates() {
73+
$this->fileGetContents('main.tpl');
74+
}
75+
76+
function parseTemplate($tpl, $values = array()) {
77+
$tpl = array_key_exists($tpl, $this->fileRegister) ? $this->fileRegister[$tpl] : $this->getFileContents($tpl);
78+
if($tpl) {
79+
if(strpos($tpl,'</body>')!==false) {
80+
if(!isset($this->modx->config['mgr_date_picker_path'])) $this->modx->config['mgr_date_picker_path'] = 'media/script/air-datepicker/datepicker.inc.php';
81+
$dp = $this->modx->manager->loadDatePicker($this->modx->config['mgr_date_picker_path']);
82+
$tpl = str_replace('</body>',$dp.'</body>',$tpl);
83+
global $modx;
84+
$evtOut = $modx->invokeEvent('OnManagerMainFrameHeaderHTMLBlock');
85+
$onManagerMainFrameHeaderHTMLBlock = is_array($evtOut) ? implode("\n", $evtOut) : '';
86+
$tpl = str_replace('[+onManagerMainFrameHeaderHTMLBlock+]',$onManagerMainFrameHeaderHTMLBlock,$tpl);
87+
}
88+
if(!isset($this->modx->config['mgr_jquery_path'])) $this->modx->config['mgr_jquery_path'] = 'media/script/jquery/jquery.min.js';
89+
$tpl = $this->modx->mergeSettingsContent($tpl);
90+
foreach ($values as $key => $value) {
91+
$tpl = str_replace('[+'.$key.'+]', $value, $tpl);
92+
}
93+
$tpl = preg_replace('/(\[\+.*?\+\])/' ,'', $tpl);
94+
return $tpl;
95+
} else {
96+
return '';
97+
}
98+
}
99+
}
100+
?>
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
function getCookie(name)
2+
{
3+
var dc = document.cookie;
4+
var prefix = name + '=';
5+
var begin = dc.indexOf('; ' + prefix);
6+
if (begin == -1) {
7+
begin = dc.indexOf(prefix);
8+
if (begin != 0) {
9+
return null;
10+
}
11+
} else {
12+
begin += 2;
13+
}
14+
var end = document.cookie.indexOf(';', begin);
15+
if (end == -1) {
16+
end = dc.length;
17+
}
18+
return decodeURIComponent(dc.substring(begin + prefix.length, end));
19+
}
20+
21+
function getSelectedRadio(buttonGroup)
22+
{
23+
if (buttonGroup[0]) {
24+
for (var i = 0; i < buttonGroup.length; i++) {
25+
if (buttonGroup[i].checked) {
26+
return i;
27+
}
28+
}
29+
} else {
30+
if (buttonGroup.checked) {
31+
return 0;
32+
}
33+
}
34+
return -1;
35+
}
36+
37+
function getSelectedRadioValue(buttonGroup)
38+
{
39+
var i = getSelectedRadio(buttonGroup);
40+
if (i == -1) {
41+
return '';
42+
} else {
43+
if (buttonGroup[i]) {
44+
return buttonGroup[i].value;
45+
} else {
46+
return buttonGroup.value;
47+
}
48+
}
49+
}
50+
51+
function changeOtherLabels()
52+
{
53+
var choice1 = document.getElementById('choice_label_1');
54+
var choice2 = document.getElementById('choice_label_2');
55+
56+
if (document.getElementById('misc').value == '1') {
57+
choice1.innerHTML = document.getElementById('option1').value;
58+
choice2.innerHTML = document.getElementById('option2').value;
59+
} else if (document.getElementById('misc').value == '2') {
60+
choice1.innerHTML = document.getElementById('option3').value;
61+
choice2.innerHTML = document.getElementById('option4').value;
62+
} else if (document.getElementById('misc').value == '3') {
63+
choice1.innerHTML = document.getElementById('option5').value;
64+
choice2.innerHTML = document.getElementById('option6').value;
65+
} else if (document.getElementById('misc').value == '4') {
66+
choice1.innerHTML = document.getElementById('option7').value;
67+
choice2.innerHTML = document.getElementById('option8').value;
68+
} else if (document.getElementById('misc').value == '5') {
69+
choice1.innerHTML = document.getElementById('option9').value;
70+
choice2.innerHTML = document.getElementById('option10').value;
71+
} else if (document.getElementById('misc').value == '6') {
72+
choice1.innerHTML = document.getElementById('option11').value;
73+
choice2.innerHTML = document.getElementById('option12').value;
74+
} else if (document.getElementById('misc').value == '0') {
75+
choice1.innerHTML = ' - ';
76+
choice2.innerHTML = ' - ';
77+
}
78+
}
79+
80+
function postForm()
81+
{
82+
var tabActiveID = getCookie('webfxtab_docManagerPane');
83+
84+
if (tabActiveID == '0' || tabActiveID == null) {
85+
document.getElementById('tabaction').value = 'changeTemplate';
86+
document.getElementById('newvalue').value = getSelectedRadioValue(document.template.id);
87+
88+
document.range.submit();
89+
} else if (tabActiveID == '1') {
90+
document.getElementById('pids_tv').value = document.getElementById('pids').value;
91+
document.getElementById('template_id').value = getSelectedRadioValue(document.templatevariables.tid);
92+
93+
document.templatevariables.submit();
94+
} else if (tabActiveID == '2') {
95+
document.getElementById('tabaction').value = getSelectedRadioValue(document.docgroups.tabAction);
96+
document.getElementById('newvalue').value = getSelectedRadioValue(document.docgroups.docgroupid);
97+
98+
document.range.submit();
99+
} else if (tabActiveID == '3') {
100+
document.getElementById('tabaction').value = 'changeOther';
101+
102+
document.getElementById('setoption').value = document.other.misc.value;
103+
document.getElementById('newvalue').value = getSelectedRadioValue(document.other.choice);
104+
105+
document.getElementById('pubdate').value = document.dates.date_pubdate.value;
106+
document.getElementById('unpubdate').value = document.dates.date_unpubdate.value;
107+
document.getElementById('createdon').value = document.dates.date_createdon.value;
108+
document.getElementById('editedon').value = document.dates.date_editedon.value;
109+
110+
document.getElementById('author_createdby').value = document.authors.author_createdby.value;
111+
document.getElementById('author_editedby').value = document.authors.author_editedby.value;
112+
113+
document.range.submit();
114+
}
115+
}
116+
117+
function hideInteraction()
118+
{
119+
var tabActiveID = getCookie('webfxtab_docManagerPane');
120+
if (tabActiveID == '1') {
121+
document.getElementById('tvloading').style.display = 'none';
122+
}
123+
/*
124+
if (tabActiveID == '3') {
125+
if (document.getElementById('interaction')) {
126+
document.getElementById('interaction').style.display = 'none';
127+
}
128+
parent.tree.ca = 'move';
129+
} else {
130+
document.getElementById('interaction').style.display = '';
131+
parent.tree.ca = '';
132+
}
133+
*/
134+
return true;
135+
}
136+
137+
window.addEventListener('DOMContentLoaded', hideInteraction);
138+
document.addEventListener('click', hideInteraction);

0 commit comments

Comments
 (0)