Completed
Push — master ( 825da9...adb11b )
by Michael
02:15
created
class/Category.php 1 patch
Indentation   +159 added lines, -159 removed lines patch added patch discarded remove patch
@@ -16,60 +16,60 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class Category extends \XoopsObject
18 18
 {
19
-    // constructor
20
-    public function __construct()
21
-    {
22
-        //		$this->XoopsObject();
23
-        $this->initVar('cid', XOBJ_DTYPE_INT, null, false, 5);
24
-        $this->initVar('pid', XOBJ_DTYPE_INT, 0, false, 5);
25
-        $this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false);
26
-        $this->initVar('imgurl', XOBJ_DTYPE_TXTBOX, '', false);
27
-        $this->initVar('description', XOBJ_DTYPE_TXTAREA, null, false);
28
-        $this->initVar('weight', XOBJ_DTYPE_INT, 0, false, 11);
29
-        $this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
30
-        $this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
31
-        $this->initVar('metakeywords', XOBJ_DTYPE_TXTBOX, '', false);
32
-        $this->initVar('metadescription', XOBJ_DTYPE_TXTBOX, '', false);
33
-    }
34
-
35
-    /**
36
-     * @return mixed
37
-     */
38
-    public function getNewInstertId()
39
-    {
40
-        $newEnreg = $GLOBALS['xoopsDB']->getInsertId();
41
-        return $newEnreg;
42
-    }
43
-
44
-    // Получаем форму
45
-
46
-    /**
47
-     * @param bool|null|string $action
48
-     * @return \XoopsThemeForm
49
-     */
50
-    public function getForm($action = false)
51
-    {
52
-        //global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
53
-        require_once __DIR__ . '/../include/common.php';
54
-        // Если нет $action
55
-        if (false === $action) {
56
-            $action = xoops_getenv('REQUEST_URI');
57
-        }
58
-        // Подключаем формы
59
-        include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
60
-
61
-        // Название формы
62
-        $title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDCAT) : sprintf(_AM_INSTRUCTION_FORMEDITCAT);
63
-
64
-        // Форма
65
-        $form = new \XoopsThemeForm($title, 'formcat', $action, 'post', true);
66
-        //$form->setExtra('enctype="multipart/form-data"');
67
-        // Название категории
68
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
69
-        // Редактор
70
-        $form->addElement(new \XoopsFormTextArea(_AM_INSTRUCTION_DSCC, 'description', $this->getVar('description', 'e')), true);
71
-        //image
72
-        /*
19
+	// constructor
20
+	public function __construct()
21
+	{
22
+		//		$this->XoopsObject();
23
+		$this->initVar('cid', XOBJ_DTYPE_INT, null, false, 5);
24
+		$this->initVar('pid', XOBJ_DTYPE_INT, 0, false, 5);
25
+		$this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false);
26
+		$this->initVar('imgurl', XOBJ_DTYPE_TXTBOX, '', false);
27
+		$this->initVar('description', XOBJ_DTYPE_TXTAREA, null, false);
28
+		$this->initVar('weight', XOBJ_DTYPE_INT, 0, false, 11);
29
+		$this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
30
+		$this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
31
+		$this->initVar('metakeywords', XOBJ_DTYPE_TXTBOX, '', false);
32
+		$this->initVar('metadescription', XOBJ_DTYPE_TXTBOX, '', false);
33
+	}
34
+
35
+	/**
36
+	 * @return mixed
37
+	 */
38
+	public function getNewInstertId()
39
+	{
40
+		$newEnreg = $GLOBALS['xoopsDB']->getInsertId();
41
+		return $newEnreg;
42
+	}
43
+
44
+	// Получаем форму
45
+
46
+	/**
47
+	 * @param bool|null|string $action
48
+	 * @return \XoopsThemeForm
49
+	 */
50
+	public function getForm($action = false)
51
+	{
52
+		//global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
53
+		require_once __DIR__ . '/../include/common.php';
54
+		// Если нет $action
55
+		if (false === $action) {
56
+			$action = xoops_getenv('REQUEST_URI');
57
+		}
58
+		// Подключаем формы
59
+		include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
60
+
61
+		// Название формы
62
+		$title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDCAT) : sprintf(_AM_INSTRUCTION_FORMEDITCAT);
63
+
64
+		// Форма
65
+		$form = new \XoopsThemeForm($title, 'formcat', $action, 'post', true);
66
+		//$form->setExtra('enctype="multipart/form-data"');
67
+		// Название категории
68
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
69
+		// Редактор
70
+		$form->addElement(new \XoopsFormTextArea(_AM_INSTRUCTION_DSCC, 'description', $this->getVar('description', 'e')), true);
71
+		//image
72
+		/*
73 73
         $downloadscat_img = $this->getVar('imgurl') ? $this->getVar('imgurl') : 'blank.gif';
74 74
         $uploadirectory='/uploads/tdmdownloads/images/cats';
75 75
         $imgtray = new \XoopsFormElementTray(_AM_TDMDOWNLOADS_FORMIMG,'<br>');
@@ -88,110 +88,110 @@  discard block
 block discarded – undo
88 88
         $imgtray->addElement($fileseltray);
89 89
         $form->addElement($imgtray);
90 90
         */
91
-        // Родительская категория
92
-        //        $categoryHandler = xoops_getModuleHandler('category', 'instruction');
93
-        $criteria = new \CriteriaCompo();
94
-        // Если мы редактируем, то убрать текущую категорию из списка выбора родительской
95
-        if (!$this->isNew()) {
96
-            $criteria->add(new \Criteria('cid', $this->getVar('cid'), '<>'));
97
-        }
98
-        $criteria->setSort('weight ASC, title');
99
-        $criteria->setOrder('ASC');
100
-
101
-        $db              = \XoopsDatabaseFactory::getDatabase();
102
-        $categoryHandler = new CategoryHandler($db);
103
-
104
-        $instructioncat_arr = $categoryHandler->getall($criteria);
105
-        unset($criteria);
106
-        // Подключаем трей
107
-        include_once $GLOBALS['xoops']->path('class/tree.php');
108
-        $mytree = new \XoopsObjectTree($instructioncat_arr, 'cid', 'pid');
109
-
110
-        // $form->addElement(new \XoopsFormLabel(_AM_INSTRUCTION_PCATC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
111
-
112
-        $helper = Helper::getInstance();
113
-        $module = $helper->getModule();
114
-
115
-        if (Utility::checkVerXoops($module, '2.5.9')) {
116
-            $mytree_select = $mytree->makeSelectElement('pid', 'title', '--', $this->getVar('pid'), true, 0, '', _AM_INSTRUCTION_PCATC);
117
-            $form->addElement($mytree_select);
118
-        } else {
119
-            $form->addElement(new \XoopsFormLabel(_AM_INSTRUCTION_PCATC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
120
-        }
121
-
122
-        // Вес
123
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_WEIGHTC, 'weight', 5, 5, $this->getVar('weight')), true);
124
-        // Мета-теги ключевых слов
125
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'metakeywords', 50, 255, $this->getVar('metakeywords')), false);
126
-        // Мета-теги описания
127
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'metadescription', 50, 255, $this->getVar('metadescription')), false);
128
-
129
-        // ==========================================================
130
-        // ==========================================================
131
-
132
-        // Права
133
-        $memberHandler = xoops_getHandler('member');
134
-        $group_list    = $memberHandler->getGroupList();
135
-        $gpermHandler  = xoops_getHandler('groupperm');
136
-        $full_list     = array_keys($group_list);
137
-
138
-        // Права на просмотр
139
-        $groups_ids = [];
140
-        // Если мы редактируем
141
-        if (!$this->isNew()) {
142
-            $groups_ids        = $gpermHandler->getGroupIds('instruction_view', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
143
-            $groups_ids        = array_values($groups_ids);
144
-            $groups_instr_view = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_VIEW, 'groups_instr_view', $groups_ids);
145
-        } else {
146
-            $groups_instr_view = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_VIEW, 'groups_instr_view', $full_list);
147
-        }
148
-        $groups_instr_view->addOptionArray($group_list);
149
-        $form->addElement($groups_instr_view);
150
-
151
-        // Права на отправку
152
-        $groups_ids = [];
153
-        if (!$this->isNew()) {
154
-            $groups_ids          = $gpermHandler->getGroupIds('instruction_submit', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
155
-            $groups_ids          = array_values($groups_ids);
156
-            $groups_instr_submit = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_SUBMIT, 'groups_instr_submit', $groups_ids);
157
-        } else {
158
-            $groups_instr_submit = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_SUBMIT, 'groups_instr_submit', $full_list);
159
-        }
160
-        $groups_instr_submit->addOptionArray($group_list);
161
-        $form->addElement($groups_instr_submit);
162
-
163
-        // Права на редактирование
164
-        $groups_ids = [];
165
-        if (!$this->isNew()) {
166
-            $groups_ids        = $gpermHandler->getGroupIds('instruction_edit', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
167
-            $groups_ids        = array_values($groups_ids);
168
-            $groups_instr_edit = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_EDIT, 'groups_instr_edit', $groups_ids);
169
-        } else {
170
-            $groups_instr_edit = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_EDIT, 'groups_instr_edit', $full_list);
171
-        }
172
-        $groups_instr_edit->addOptionArray($group_list);
173
-        $form->addElement($groups_instr_edit);
174
-
175
-        // ==========================================================
176
-        // ==========================================================
177
-
178
-        // Если мы редактируем категорию
179
-        if (!$this->isNew()) {
180
-            $form->addElement(new \XoopsFormHidden('cid', $this->getVar('cid')));
181
-            //$form->addElement( new \XoopsFormHidden( 'catmodify', true));
182
-        }
183
-        //
184
-        $form->addElement(new \XoopsFormHidden('op', 'savecat'));
185
-        // Кнопка
186
-        $button_tray = new \XoopsFormElementTray('', '');
187
-        $submit_btn  = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
188
-        $button_tray->addElement($submit_btn);
189
-        $cancel_btn = new \XoopsFormButton('', 'cancel', _CANCEL, 'cancel');
190
-        $cancel_btn->setExtra('onclick="javascript:history.go(-1);"');
191
-        $button_tray->addElement($cancel_btn);
192
-        $form->addElement($button_tray);
193
-
194
-        return $form;
195
-    }
91
+		// Родительская категория
92
+		//        $categoryHandler = xoops_getModuleHandler('category', 'instruction');
93
+		$criteria = new \CriteriaCompo();
94
+		// Если мы редактируем, то убрать текущую категорию из списка выбора родительской
95
+		if (!$this->isNew()) {
96
+			$criteria->add(new \Criteria('cid', $this->getVar('cid'), '<>'));
97
+		}
98
+		$criteria->setSort('weight ASC, title');
99
+		$criteria->setOrder('ASC');
100
+
101
+		$db              = \XoopsDatabaseFactory::getDatabase();
102
+		$categoryHandler = new CategoryHandler($db);
103
+
104
+		$instructioncat_arr = $categoryHandler->getall($criteria);
105
+		unset($criteria);
106
+		// Подключаем трей
107
+		include_once $GLOBALS['xoops']->path('class/tree.php');
108
+		$mytree = new \XoopsObjectTree($instructioncat_arr, 'cid', 'pid');
109
+
110
+		// $form->addElement(new \XoopsFormLabel(_AM_INSTRUCTION_PCATC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
111
+
112
+		$helper = Helper::getInstance();
113
+		$module = $helper->getModule();
114
+
115
+		if (Utility::checkVerXoops($module, '2.5.9')) {
116
+			$mytree_select = $mytree->makeSelectElement('pid', 'title', '--', $this->getVar('pid'), true, 0, '', _AM_INSTRUCTION_PCATC);
117
+			$form->addElement($mytree_select);
118
+		} else {
119
+			$form->addElement(new \XoopsFormLabel(_AM_INSTRUCTION_PCATC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
120
+		}
121
+
122
+		// Вес
123
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_WEIGHTC, 'weight', 5, 5, $this->getVar('weight')), true);
124
+		// Мета-теги ключевых слов
125
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'metakeywords', 50, 255, $this->getVar('metakeywords')), false);
126
+		// Мета-теги описания
127
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'metadescription', 50, 255, $this->getVar('metadescription')), false);
128
+
129
+		// ==========================================================
130
+		// ==========================================================
131
+
132
+		// Права
133
+		$memberHandler = xoops_getHandler('member');
134
+		$group_list    = $memberHandler->getGroupList();
135
+		$gpermHandler  = xoops_getHandler('groupperm');
136
+		$full_list     = array_keys($group_list);
137
+
138
+		// Права на просмотр
139
+		$groups_ids = [];
140
+		// Если мы редактируем
141
+		if (!$this->isNew()) {
142
+			$groups_ids        = $gpermHandler->getGroupIds('instruction_view', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
143
+			$groups_ids        = array_values($groups_ids);
144
+			$groups_instr_view = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_VIEW, 'groups_instr_view', $groups_ids);
145
+		} else {
146
+			$groups_instr_view = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_VIEW, 'groups_instr_view', $full_list);
147
+		}
148
+		$groups_instr_view->addOptionArray($group_list);
149
+		$form->addElement($groups_instr_view);
150
+
151
+		// Права на отправку
152
+		$groups_ids = [];
153
+		if (!$this->isNew()) {
154
+			$groups_ids          = $gpermHandler->getGroupIds('instruction_submit', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
155
+			$groups_ids          = array_values($groups_ids);
156
+			$groups_instr_submit = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_SUBMIT, 'groups_instr_submit', $groups_ids);
157
+		} else {
158
+			$groups_instr_submit = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_SUBMIT, 'groups_instr_submit', $full_list);
159
+		}
160
+		$groups_instr_submit->addOptionArray($group_list);
161
+		$form->addElement($groups_instr_submit);
162
+
163
+		// Права на редактирование
164
+		$groups_ids = [];
165
+		if (!$this->isNew()) {
166
+			$groups_ids        = $gpermHandler->getGroupIds('instruction_edit', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
167
+			$groups_ids        = array_values($groups_ids);
168
+			$groups_instr_edit = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_EDIT, 'groups_instr_edit', $groups_ids);
169
+		} else {
170
+			$groups_instr_edit = new \XoopsFormCheckBox(_AM_INSTRUCTION_PERM_EDIT, 'groups_instr_edit', $full_list);
171
+		}
172
+		$groups_instr_edit->addOptionArray($group_list);
173
+		$form->addElement($groups_instr_edit);
174
+
175
+		// ==========================================================
176
+		// ==========================================================
177
+
178
+		// Если мы редактируем категорию
179
+		if (!$this->isNew()) {
180
+			$form->addElement(new \XoopsFormHidden('cid', $this->getVar('cid')));
181
+			//$form->addElement( new \XoopsFormHidden( 'catmodify', true));
182
+		}
183
+		//
184
+		$form->addElement(new \XoopsFormHidden('op', 'savecat'));
185
+		// Кнопка
186
+		$button_tray = new \XoopsFormElementTray('', '');
187
+		$submit_btn  = new \XoopsFormButton('', 'submit', _SUBMIT, 'submit');
188
+		$button_tray->addElement($submit_btn);
189
+		$cancel_btn = new \XoopsFormButton('', 'cancel', _CANCEL, 'cancel');
190
+		$cancel_btn->setExtra('onclick="javascript:history.go(-1);"');
191
+		$button_tray->addElement($cancel_btn);
192
+		$form->addElement($button_tray);
193
+
194
+		return $form;
195
+	}
196 196
 }
197 197
 
Please login to merge, or discard this patch.
class/Page.php 1 patch
Indentation   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -12,172 +12,172 @@
 block discarded – undo
12 12
  */
13 13
 class Page extends \XoopsObject
14 14
 {
15
-    // constructor
16
-    public function __construct()
17
-    {
18
-        //	$this->XoopsObject();
19
-        $this->initVar('pageid', XOBJ_DTYPE_INT, null, false, 11);
20
-        $this->initVar('pid', XOBJ_DTYPE_INT, 0, false, 11);
21
-        $this->initVar('instrid', XOBJ_DTYPE_INT, 0, false, 11);
22
-        $this->initVar('uid', XOBJ_DTYPE_INT, 0, false, 11);
23
-        $this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false, 255);
24
-        $this->initVar('status', XOBJ_DTYPE_INT, 1, false, 1);
25
-        $this->initVar('type', XOBJ_DTYPE_INT, 1, false, 1);
26
-        $this->initVar('hometext', XOBJ_DTYPE_TXTAREA, null, false);
27
-        $this->initVar('footnote', XOBJ_DTYPE_TXTAREA, '', false);
28
-        $this->initVar('weight', XOBJ_DTYPE_INT, 0, false, 11);
29
-        $this->initVar('keywords', XOBJ_DTYPE_TXTBOX, '', false, 255);
30
-        $this->initVar('description', XOBJ_DTYPE_TXTBOX, '', false, 255);
31
-        $this->initVar('comments', XOBJ_DTYPE_INT, 0, false, 11);
32
-        $this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
33
-        $this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
34
-        $this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false, 1);
35
-        $this->initVar('dosmiley', XOBJ_DTYPE_INT, 0, false, 1);
36
-        $this->initVar('doxcode', XOBJ_DTYPE_INT, 1, false, 1);
37
-        $this->initVar('dobr', XOBJ_DTYPE_INT, 0, false, 1);
38
-    }
39
-
40
-    /**
41
-     * @return mixed
42
-     */
43
-    public function getNewInstertId()
44
-    {
45
-        $newEnreg = $GLOBALS['xoopsDB']->getInsertId();
46
-        return $newEnreg;
47
-    }
48
-
49
-    // Получаем форму
50
-
51
-    /**
52
-     * @param bool|null|string $action
53
-     * @param int  $instrid
54
-     * @return \XoopsThemeForm
55
-     */
56
-    public function getForm($action = false, $instrid = 0)
57
-    {
58
-        // Если нет $action
59
-        if (false === $action) {
60
-            $action = xoops_getenv('REQUEST_URI');
61
-        }
62
-
63
-        // Подключаем формы
64
-        include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
65
-        // Подключаем типы страниц
66
-        $pagetypes = include $GLOBALS['xoops']->path('modules/instruction/include/pagetypes.inc.php');
67
-
68
-        // Название формы
69
-        $title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDPAGE) : sprintf(_AM_INSTRUCTION_FORMEDITPAGE);
70
-
71
-        // Форма
72
-        $form = new \XoopsThemeForm($title, 'instr_form_page', $action, 'post', true);
73
-        // Название
74
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
75
-
76
-        // Родительская страница
77
-        //        $pageHandler = xoops_getModuleHandler('page', 'instruction');
78
-        $criteria = new \CriteriaCompo();
79
-        // ID инструкции в которой данная страница
80
-        $instrid_page = $this->isNew() ? $instrid : $this->getVar('instrid');
81
-        // Находим все страницы данной инструкции
82
-        $criteria->add(new \Criteria('instrid', $instrid_page, '='));
83
-        // Если мы редактируем, то убрать текущую страницу из списка выбора родительской
84
-        if (!$this->isNew()) {
85
-            $criteria->add(new \Criteria('pageid', $this->getVar('pageid'), '<>'));
86
-        }
87
-        $criteria->setSort('weight');
88
-        $criteria->setOrder('ASC');
89
-        $inspage_arr = $pageHandler->getall($criteria);
90
-        unset($criteria);
91
-        // Подключаем трей
92
-        include_once $GLOBALS['xoops']->path('class/tree.php');
93
-        $mytree = new \XoopsObjectTree($inspage_arr, 'pageid', 'pid');
94
-
95
-        // $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PPAGEC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
96
-        $helper = Helper::getInstance();
97
-        $module = $helper->getModule();
98
-
99
-        if (Utility::checkVerXoops($module, '2.5.9')) {
100
-            $mytree_select = $mytree->makeSelectElement('pid', 'title', '--', $this->getVar('pid'), true, 0, '', _AM_INSTRUCTION_PPAGEC);
101
-            $form->addElement($mytree_select);
102
-        } else {
103
-            $form->addElement(new \XoopsFormLabel(_AM_INSTRUCTION_PPAGEC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
104
-        }
105
-
106
-        // Вес
107
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_WEIGHTC, 'weight', 5, 5, $this->getVar('weight')), true);
108
-        // Основной текст
109
-        $form->addElement(Utility::getWysiwygForm(_AM_INSTRUCTION_HOMETEXTC, 'hometext', $this->getVar('hometext', 'e')), true);
110
-        // Сноска
111
-        $form_footnote = new \XoopsFormTextArea(_AM_INSTRUCTION_FOOTNOTEC, 'footnote', $this->getVar('footnote', 'e'));
112
-        $form_footnote->setDescription(_AM_INSTRUCTION_FOOTNOTE_DSC);
113
-        $form->addElement($form_footnote, false);
114
-        unset($form_footnote);
115
-        // Статус
116
-        $form->addElement(new \XoopsFormRadioYN(_AM_INSTRUCTION_ACTIVEC, 'status', $this->getVar('status')), false);
117
-        // Тип страницы
118
-        $form_type = new \XoopsFormSelect(_AM_INSTR_PAGETYPEC, 'type', $this->getVar('type'));
119
-        $form_type->setDescription(_AM_INSTR_PAGETYPEC_DESC);
120
-        $form_type->addOptionArray($pagetypes);
121
-        $form->addElement($form_type, false);
122
-        // Мета-теги ключевых слов
123
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'keywords', 50, 255, $this->getVar('keywords')), false);
124
-        // Мета-теги описания
125
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'description', 50, 255, $this->getVar('description')), false);
126
-
127
-        // Настройки
128
-        $option_tray = new \XoopsFormElementTray(_OPTIONS, '<br>');
129
-        // HTML
130
-        $html_checkbox = new \XoopsFormCheckBox('', 'dohtml', $this->getVar('dohtml'));
131
-        $html_checkbox->addOption(1, _AM_INSTR_DOHTML);
132
-        $option_tray->addElement($html_checkbox);
133
-        // Смайлы
134
-        $smiley_checkbox = new \XoopsFormCheckBox('', 'dosmiley', $this->getVar('dosmiley'));
135
-        $smiley_checkbox->addOption(1, _AM_INSTR_DOSMILEY);
136
-        $option_tray->addElement($smiley_checkbox);
137
-        // ББ коды
138
-        $xcode_checkbox = new \XoopsFormCheckBox('', 'doxcode', $this->getVar('doxcode'));
139
-        $xcode_checkbox->addOption(1, _AM_INSTR_DOXCODE);
140
-        $option_tray->addElement($xcode_checkbox);
141
-        //
142
-        $br_checkbox = new \XoopsFormCheckBox('', 'dobr', $this->getVar('dobr'));
143
-        $br_checkbox->addOption(1, _AM_INSTR_DOAUTOWRAP);
144
-        $option_tray->addElement($br_checkbox);
145
-        //
146
-        $form->addElement($option_tray);
147
-
148
-        // Если мы редактируем страницу
149
-        if (!$this->isNew()) {
150
-            $form->addElement(new \XoopsFormHidden('pageid', $this->getVar('pageid')));
151
-        } else {
152
-            $form->addElement(new \XoopsFormHidden('pageid', 0));
153
-        }
154
-        // ID инструкции
155
-        if ($instrid) {
156
-            $form->addElement(new \XoopsFormHidden('instrid', $instrid));
157
-        } else {
158
-            $form->addElement(new \XoopsFormHidden('instrid', 0));
159
-        }
160
-        //
161
-        $form->addElement(new \XoopsFormHidden('op', 'savepage'));
162
-        // Кнопка
163
-        $button_tray = new \XoopsFormElementTray('', '');
164
-        $button_tray->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
165
-        $save_btn = new \XoopsFormButton('', 'cancel', _AM_INSTR_SAVEFORM);
166
-        $save_btn->setExtra('onclick="instrSavePage();"');
167
-        $button_tray->addElement($save_btn);
168
-        $form->addElement($button_tray);
169
-
170
-        return $form;
171
-    }
172
-
173
-    //
174
-
175
-    /**
176
-     * @return mixed
177
-     */
178
-    public function getInstrid()
179
-    {
180
-        // Возвращаем ID инструкции
181
-        return $this->getVar('instrid');
182
-    }
15
+	// constructor
16
+	public function __construct()
17
+	{
18
+		//	$this->XoopsObject();
19
+		$this->initVar('pageid', XOBJ_DTYPE_INT, null, false, 11);
20
+		$this->initVar('pid', XOBJ_DTYPE_INT, 0, false, 11);
21
+		$this->initVar('instrid', XOBJ_DTYPE_INT, 0, false, 11);
22
+		$this->initVar('uid', XOBJ_DTYPE_INT, 0, false, 11);
23
+		$this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false, 255);
24
+		$this->initVar('status', XOBJ_DTYPE_INT, 1, false, 1);
25
+		$this->initVar('type', XOBJ_DTYPE_INT, 1, false, 1);
26
+		$this->initVar('hometext', XOBJ_DTYPE_TXTAREA, null, false);
27
+		$this->initVar('footnote', XOBJ_DTYPE_TXTAREA, '', false);
28
+		$this->initVar('weight', XOBJ_DTYPE_INT, 0, false, 11);
29
+		$this->initVar('keywords', XOBJ_DTYPE_TXTBOX, '', false, 255);
30
+		$this->initVar('description', XOBJ_DTYPE_TXTBOX, '', false, 255);
31
+		$this->initVar('comments', XOBJ_DTYPE_INT, 0, false, 11);
32
+		$this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
33
+		$this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
34
+		$this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false, 1);
35
+		$this->initVar('dosmiley', XOBJ_DTYPE_INT, 0, false, 1);
36
+		$this->initVar('doxcode', XOBJ_DTYPE_INT, 1, false, 1);
37
+		$this->initVar('dobr', XOBJ_DTYPE_INT, 0, false, 1);
38
+	}
39
+
40
+	/**
41
+	 * @return mixed
42
+	 */
43
+	public function getNewInstertId()
44
+	{
45
+		$newEnreg = $GLOBALS['xoopsDB']->getInsertId();
46
+		return $newEnreg;
47
+	}
48
+
49
+	// Получаем форму
50
+
51
+	/**
52
+	 * @param bool|null|string $action
53
+	 * @param int  $instrid
54
+	 * @return \XoopsThemeForm
55
+	 */
56
+	public function getForm($action = false, $instrid = 0)
57
+	{
58
+		// Если нет $action
59
+		if (false === $action) {
60
+			$action = xoops_getenv('REQUEST_URI');
61
+		}
62
+
63
+		// Подключаем формы
64
+		include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
65
+		// Подключаем типы страниц
66
+		$pagetypes = include $GLOBALS['xoops']->path('modules/instruction/include/pagetypes.inc.php');
67
+
68
+		// Название формы
69
+		$title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDPAGE) : sprintf(_AM_INSTRUCTION_FORMEDITPAGE);
70
+
71
+		// Форма
72
+		$form = new \XoopsThemeForm($title, 'instr_form_page', $action, 'post', true);
73
+		// Название
74
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
75
+
76
+		// Родительская страница
77
+		//        $pageHandler = xoops_getModuleHandler('page', 'instruction');
78
+		$criteria = new \CriteriaCompo();
79
+		// ID инструкции в которой данная страница
80
+		$instrid_page = $this->isNew() ? $instrid : $this->getVar('instrid');
81
+		// Находим все страницы данной инструкции
82
+		$criteria->add(new \Criteria('instrid', $instrid_page, '='));
83
+		// Если мы редактируем, то убрать текущую страницу из списка выбора родительской
84
+		if (!$this->isNew()) {
85
+			$criteria->add(new \Criteria('pageid', $this->getVar('pageid'), '<>'));
86
+		}
87
+		$criteria->setSort('weight');
88
+		$criteria->setOrder('ASC');
89
+		$inspage_arr = $pageHandler->getall($criteria);
90
+		unset($criteria);
91
+		// Подключаем трей
92
+		include_once $GLOBALS['xoops']->path('class/tree.php');
93
+		$mytree = new \XoopsObjectTree($inspage_arr, 'pageid', 'pid');
94
+
95
+		// $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PPAGEC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
96
+		$helper = Helper::getInstance();
97
+		$module = $helper->getModule();
98
+
99
+		if (Utility::checkVerXoops($module, '2.5.9')) {
100
+			$mytree_select = $mytree->makeSelectElement('pid', 'title', '--', $this->getVar('pid'), true, 0, '', _AM_INSTRUCTION_PPAGEC);
101
+			$form->addElement($mytree_select);
102
+		} else {
103
+			$form->addElement(new \XoopsFormLabel(_AM_INSTRUCTION_PPAGEC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
104
+		}
105
+
106
+		// Вес
107
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_WEIGHTC, 'weight', 5, 5, $this->getVar('weight')), true);
108
+		// Основной текст
109
+		$form->addElement(Utility::getWysiwygForm(_AM_INSTRUCTION_HOMETEXTC, 'hometext', $this->getVar('hometext', 'e')), true);
110
+		// Сноска
111
+		$form_footnote = new \XoopsFormTextArea(_AM_INSTRUCTION_FOOTNOTEC, 'footnote', $this->getVar('footnote', 'e'));
112
+		$form_footnote->setDescription(_AM_INSTRUCTION_FOOTNOTE_DSC);
113
+		$form->addElement($form_footnote, false);
114
+		unset($form_footnote);
115
+		// Статус
116
+		$form->addElement(new \XoopsFormRadioYN(_AM_INSTRUCTION_ACTIVEC, 'status', $this->getVar('status')), false);
117
+		// Тип страницы
118
+		$form_type = new \XoopsFormSelect(_AM_INSTR_PAGETYPEC, 'type', $this->getVar('type'));
119
+		$form_type->setDescription(_AM_INSTR_PAGETYPEC_DESC);
120
+		$form_type->addOptionArray($pagetypes);
121
+		$form->addElement($form_type, false);
122
+		// Мета-теги ключевых слов
123
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'keywords', 50, 255, $this->getVar('keywords')), false);
124
+		// Мета-теги описания
125
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'description', 50, 255, $this->getVar('description')), false);
126
+
127
+		// Настройки
128
+		$option_tray = new \XoopsFormElementTray(_OPTIONS, '<br>');
129
+		// HTML
130
+		$html_checkbox = new \XoopsFormCheckBox('', 'dohtml', $this->getVar('dohtml'));
131
+		$html_checkbox->addOption(1, _AM_INSTR_DOHTML);
132
+		$option_tray->addElement($html_checkbox);
133
+		// Смайлы
134
+		$smiley_checkbox = new \XoopsFormCheckBox('', 'dosmiley', $this->getVar('dosmiley'));
135
+		$smiley_checkbox->addOption(1, _AM_INSTR_DOSMILEY);
136
+		$option_tray->addElement($smiley_checkbox);
137
+		// ББ коды
138
+		$xcode_checkbox = new \XoopsFormCheckBox('', 'doxcode', $this->getVar('doxcode'));
139
+		$xcode_checkbox->addOption(1, _AM_INSTR_DOXCODE);
140
+		$option_tray->addElement($xcode_checkbox);
141
+		//
142
+		$br_checkbox = new \XoopsFormCheckBox('', 'dobr', $this->getVar('dobr'));
143
+		$br_checkbox->addOption(1, _AM_INSTR_DOAUTOWRAP);
144
+		$option_tray->addElement($br_checkbox);
145
+		//
146
+		$form->addElement($option_tray);
147
+
148
+		// Если мы редактируем страницу
149
+		if (!$this->isNew()) {
150
+			$form->addElement(new \XoopsFormHidden('pageid', $this->getVar('pageid')));
151
+		} else {
152
+			$form->addElement(new \XoopsFormHidden('pageid', 0));
153
+		}
154
+		// ID инструкции
155
+		if ($instrid) {
156
+			$form->addElement(new \XoopsFormHidden('instrid', $instrid));
157
+		} else {
158
+			$form->addElement(new \XoopsFormHidden('instrid', 0));
159
+		}
160
+		//
161
+		$form->addElement(new \XoopsFormHidden('op', 'savepage'));
162
+		// Кнопка
163
+		$button_tray = new \XoopsFormElementTray('', '');
164
+		$button_tray->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
165
+		$save_btn = new \XoopsFormButton('', 'cancel', _AM_INSTR_SAVEFORM);
166
+		$save_btn->setExtra('onclick="instrSavePage();"');
167
+		$button_tray->addElement($save_btn);
168
+		$form->addElement($button_tray);
169
+
170
+		return $form;
171
+	}
172
+
173
+	//
174
+
175
+	/**
176
+	 * @return mixed
177
+	 */
178
+	public function getInstrid()
179
+	{
180
+		// Возвращаем ID инструкции
181
+		return $this->getVar('instrid');
182
+	}
183 183
 }
Please login to merge, or discard this patch.
class/Instruction.php 1 patch
Indentation   +110 added lines, -110 removed lines patch added patch discarded remove patch
@@ -12,115 +12,115 @@
 block discarded – undo
12 12
  */
13 13
 class Instruction extends \XoopsObject
14 14
 {
15
-    // constructor
16
-    public function __construct()
17
-    {
18
-        //		$this->XoopsObject();
19
-        $this->initVar('instrid', XOBJ_DTYPE_INT, null, false, 11);
20
-        $this->initVar('cid', XOBJ_DTYPE_INT, 0, false, 5);
21
-        $this->initVar('uid', XOBJ_DTYPE_INT, 0, false, 11);
22
-        $this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false);
23
-        $this->initVar('status', XOBJ_DTYPE_INT, 0, false, 1);
24
-        $this->initVar('pages', XOBJ_DTYPE_INT, 0, false, 11);
25
-        $this->initVar('description', XOBJ_DTYPE_TXTAREA, null, false);
26
-        $this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
27
-        $this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
28
-        $this->initVar('metakeywords', XOBJ_DTYPE_TXTBOX, '', false);
29
-        $this->initVar('metadescription', XOBJ_DTYPE_TXTBOX, '', false);
30
-
31
-        // Нет в таблице
32
-        $this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false);
33
-        $this->initVar('dobr', XOBJ_DTYPE_INT, 0, false);
34
-    }
35
-
36
-    /**
37
-     * @return mixed
38
-     */
39
-    public function getNewInstertId()
40
-    {
41
-        $newEnreg = $GLOBALS['xoopsDB']->getInsertId();
42
-        return $newEnreg;
43
-    }
44
-
45
-    // Получаем форму
46
-
47
-    /**
48
-     * @param bool|null|string $action
49
-     * @return \XoopsThemeForm
50
-     */
51
-    public function getForm($action = false)
52
-    {
53
-        global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
54
-        // Если нет $action
55
-        if (false === $action) {
56
-            $action = xoops_getenv('REQUEST_URI');
57
-        }
58
-        // Подключаем формы
59
-        include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
60
-
61
-        // Название формы
62
-        $title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDINSTR) : sprintf(_AM_INSTRUCTION_FORMEDITINSTR);
63
-
64
-        // Форма
65
-        $form = new \XoopsThemeForm($title, 'forminstr', $action, 'post', true);
66
-        //$form->setExtra('enctype="multipart/form-data"');
67
-        // Название инструкции
68
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
69
-        // Категория
70
-        $categoryHandler = new CategoryHandler;
71
-        $criteria        = new \CriteriaCompo();
72
-        $criteria->setSort('weight ASC, title');
73
-        $criteria->setOrder('ASC');
74
-        $instructioncat_arr = $categoryHandler->getall($criteria);
75
-        unset($criteria);
76
-        // Подключаем трей
77
-        include_once $GLOBALS['xoops']->path('class/tree.php');
78
-        $mytree = new \XoopsObjectTree($instructioncat_arr, 'cid', 'pid');
79
-
80
-        // $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_CATC, $mytree->makeSelBox('cid', 'title', '--', $this->getVar('cid'), true)));
81
-        $helper = Helper::getInstance();
82
-        $module = $helper->getModule();
83
-
84
-        if (Utility::checkVerXoops($module, '2.5.9')) {
85
-            $mytree_select = $mytree->makeSelectElement('cid', 'title', '--', $this->getVar('cid'), true, 0, '', _AM_INSTRUCTION_CATC);
86
-            $form->addElement($mytree_select);
87
-        } else {
88
-            $form->addElement(new \XoopsFormLabel(_AM_INSTRUCTION_CATC, $mytree->makeSelBox('cid', 'title', '--', $this->getVar('cid'), true)));
89
-        }
90
-
91
-        // Описание
92
-        $form->addElement(Utility::getWysiwygForm(_AM_INSTRUCTION_DESCRIPTIONC, 'description', $this->getVar('description', 'e')), true);
93
-        // Статус
94
-        $form->addElement(new \XoopsFormRadioYN(_AM_INSTRUCTION_ACTIVEC, 'status', $this->getVar('status')), false);
95
-
96
-        // Теги
97
-        $dir_tag_ok = false;
98
-        if (is_dir('../../tag') || is_dir('../tag')) {
99
-            $dir_tag_ok = true;
100
-        }
101
-        // Если влючена поддержка тегов и есть модуль tag
102
-        if (xoops_getModuleOption('usetag', 'instruction') && $dir_tag_ok) {
103
-            $itemIdForTag = $this->isNew() ? 0 : $this->getVar('instrid');
104
-            // Подключаем форму тегов
105
-            include_once $GLOBALS['xoops']->path('modules/tag/include/formtag.php');
106
-            // Добавляем элемент в форму
107
-            $form->addElement(new \XoopsFormTag('tag', 60, 255, $itemIdForTag, 0));
108
-        }
109
-
110
-        // Мета-теги ключевых слов
111
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'metakeywords', 50, 255, $this->getVar('metakeywords')), false);
112
-        // Мета-теги описания
113
-        $form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'metadescription', 50, 255, $this->getVar('metadescription')), false);
114
-
115
-        // Если мы редактируем категорию
116
-        if (!$this->isNew()) {
117
-            $form->addElement(new \XoopsFormHidden('instrid', $this->getVar('instrid')));
118
-        }
119
-        //
120
-        $form->addElement(new \XoopsFormHidden('op', 'saveinstr'));
121
-        // Кнопка
122
-        $form->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
123
-        return $form;
124
-    }
15
+	// constructor
16
+	public function __construct()
17
+	{
18
+		//		$this->XoopsObject();
19
+		$this->initVar('instrid', XOBJ_DTYPE_INT, null, false, 11);
20
+		$this->initVar('cid', XOBJ_DTYPE_INT, 0, false, 5);
21
+		$this->initVar('uid', XOBJ_DTYPE_INT, 0, false, 11);
22
+		$this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false);
23
+		$this->initVar('status', XOBJ_DTYPE_INT, 0, false, 1);
24
+		$this->initVar('pages', XOBJ_DTYPE_INT, 0, false, 11);
25
+		$this->initVar('description', XOBJ_DTYPE_TXTAREA, null, false);
26
+		$this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
27
+		$this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
28
+		$this->initVar('metakeywords', XOBJ_DTYPE_TXTBOX, '', false);
29
+		$this->initVar('metadescription', XOBJ_DTYPE_TXTBOX, '', false);
30
+
31
+		// Нет в таблице
32
+		$this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false);
33
+		$this->initVar('dobr', XOBJ_DTYPE_INT, 0, false);
34
+	}
35
+
36
+	/**
37
+	 * @return mixed
38
+	 */
39
+	public function getNewInstertId()
40
+	{
41
+		$newEnreg = $GLOBALS['xoopsDB']->getInsertId();
42
+		return $newEnreg;
43
+	}
44
+
45
+	// Получаем форму
46
+
47
+	/**
48
+	 * @param bool|null|string $action
49
+	 * @return \XoopsThemeForm
50
+	 */
51
+	public function getForm($action = false)
52
+	{
53
+		global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
54
+		// Если нет $action
55
+		if (false === $action) {
56
+			$action = xoops_getenv('REQUEST_URI');
57
+		}
58
+		// Подключаем формы
59
+		include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
60
+
61
+		// Название формы
62
+		$title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDINSTR) : sprintf(_AM_INSTRUCTION_FORMEDITINSTR);
63
+
64
+		// Форма
65
+		$form = new \XoopsThemeForm($title, 'forminstr', $action, 'post', true);
66
+		//$form->setExtra('enctype="multipart/form-data"');
67
+		// Название инструкции
68
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
69
+		// Категория
70
+		$categoryHandler = new CategoryHandler;
71
+		$criteria        = new \CriteriaCompo();
72
+		$criteria->setSort('weight ASC, title');
73
+		$criteria->setOrder('ASC');
74
+		$instructioncat_arr = $categoryHandler->getall($criteria);
75
+		unset($criteria);
76
+		// Подключаем трей
77
+		include_once $GLOBALS['xoops']->path('class/tree.php');
78
+		$mytree = new \XoopsObjectTree($instructioncat_arr, 'cid', 'pid');
79
+
80
+		// $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_CATC, $mytree->makeSelBox('cid', 'title', '--', $this->getVar('cid'), true)));
81
+		$helper = Helper::getInstance();
82
+		$module = $helper->getModule();
83
+
84
+		if (Utility::checkVerXoops($module, '2.5.9')) {
85
+			$mytree_select = $mytree->makeSelectElement('cid', 'title', '--', $this->getVar('cid'), true, 0, '', _AM_INSTRUCTION_CATC);
86
+			$form->addElement($mytree_select);
87
+		} else {
88
+			$form->addElement(new \XoopsFormLabel(_AM_INSTRUCTION_CATC, $mytree->makeSelBox('cid', 'title', '--', $this->getVar('cid'), true)));
89
+		}
90
+
91
+		// Описание
92
+		$form->addElement(Utility::getWysiwygForm(_AM_INSTRUCTION_DESCRIPTIONC, 'description', $this->getVar('description', 'e')), true);
93
+		// Статус
94
+		$form->addElement(new \XoopsFormRadioYN(_AM_INSTRUCTION_ACTIVEC, 'status', $this->getVar('status')), false);
95
+
96
+		// Теги
97
+		$dir_tag_ok = false;
98
+		if (is_dir('../../tag') || is_dir('../tag')) {
99
+			$dir_tag_ok = true;
100
+		}
101
+		// Если влючена поддержка тегов и есть модуль tag
102
+		if (xoops_getModuleOption('usetag', 'instruction') && $dir_tag_ok) {
103
+			$itemIdForTag = $this->isNew() ? 0 : $this->getVar('instrid');
104
+			// Подключаем форму тегов
105
+			include_once $GLOBALS['xoops']->path('modules/tag/include/formtag.php');
106
+			// Добавляем элемент в форму
107
+			$form->addElement(new \XoopsFormTag('tag', 60, 255, $itemIdForTag, 0));
108
+		}
109
+
110
+		// Мета-теги ключевых слов
111
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'metakeywords', 50, 255, $this->getVar('metakeywords')), false);
112
+		// Мета-теги описания
113
+		$form->addElement(new \XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'metadescription', 50, 255, $this->getVar('metadescription')), false);
114
+
115
+		// Если мы редактируем категорию
116
+		if (!$this->isNew()) {
117
+			$form->addElement(new \XoopsFormHidden('instrid', $this->getVar('instrid')));
118
+		}
119
+		//
120
+		$form->addElement(new \XoopsFormHidden('op', 'saveinstr'));
121
+		// Кнопка
122
+		$form->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
123
+		return $form;
124
+	}
125 125
 }
126 126
 
Please login to merge, or discard this patch.
admin/cat.php 1 patch
Indentation   +259 added lines, -259 removed lines patch added patch discarded remove patch
@@ -29,264 +29,264 @@
 block discarded – undo
29 29
 // Выбор
30 30
 switch ($op) {
31 31
 
32
-    case 'main':
33
-
34
-        // Подключаем трей
35
-
36
-        //        include_once __DIR__  . '/../class/tree.php';
37
-        //include_once $GLOBALS['xoops']->path('modules/instruction/class/tree.php');
38
-
39
-        // Заголовок админки
40
-        xoops_cp_header();
41
-        // Навигация
42
-        $adminObject->displayNavigation(basename(__FILE__));
43
-
44
-        // Находим ID-категории => Число страниц
45
-        $cidinstrids = [];
46
-        $sql         = "SELECT `cid`, COUNT( `instrid` ) FROM {$instructionHandler->table} GROUP BY `cid`";
47
-        $result      = $GLOBALS['xoopsDB']->query($sql);
48
-        while (list($cid, $count) = $GLOBALS['xoopsDB']->fetchRow($result)) {
49
-            // Заполняем массив
50
-            $cidinstrids[$cid] = $count;
51
-        }
52
-
53
-        // Выбираем категории из БД
54
-        $criteria = new \CriteriaCompo();
55
-        $criteria->setSort('weight ASC, title');
56
-        $criteria->setOrder('ASC');
57
-        $ins_cat = $categoryHandler->getall($criteria);
58
-        unset($criteria);
59
-
60
-        // Инициализируем
61
-        $cattree = new instruction\Tree($ins_cat, 'cid', 'pid');
62
-        // Выводим списко категорий в шаблон
63
-        $GLOBALS['xoopsTpl']->assign('insListCat', $cattree->makeCatsAdmin('--', $cidinstrids));
64
-
65
-        // Создание новой категории
66
-        $objInstructioncat = $categoryHandler->create();
67
-        $form              = $objInstructioncat->getForm('cat.php');
68
-        // Форма
69
-        $GLOBALS['xoopsTpl']->assign('insFormCat', $form->render());
70
-        // Выводим шаблон
71
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_cat.tpl');
72
-
73
-        // Текст внизу админки
74
-        include __DIR__ . '/admin_footer.php';
75
-
76
-        break;
77
-
78
-    // Редактирование категории
79
-    case 'editcat':
80
-
81
-        // Заголовок админки
82
-        xoops_cp_header();
83
-        // Навигация
84
-        $adminObject->displayNavigation(basename(__FILE__));
85
-
86
-        $objInstructioncat = $categoryHandler->get($cid);
87
-        $form              = $objInstructioncat->getForm('cat.php');
88
-        // Форма
89
-        //$GLOBALS['xoopsTpl']->assign( 'insFormCat', $form->render() );
90
-        echo $form->render();
91
-        // Выводим шаблон
92
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editcat.tpl');
93
-
94
-        // Текст внизу админки
95
-        include __DIR__ . '/admin_footer.php';
96
-
97
-        break;
98
-
99
-    // Сохранение категорий
100
-    case 'savecat':
101
-
102
-        // Проверка
103
-        if (!$GLOBALS['xoopsSecurity']->check()) {
104
-            redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
105
-        }
106
-        // Если мы редактируем
107
-        if ($cid) {
108
-            $objInstructioncat = $categoryHandler->get($cid);
109
-        } else {
110
-            $objInstructioncat = $categoryHandler->create();
111
-            // Указываем дату создания
112
-            $objInstructioncat->setVar('datecreated', $time);
113
-        }
114
-
115
-        $err         = false;
116
-        $message_err = '';
117
-
118
-        // Дата обновления
119
-        $objInstructioncat->setVar('dateupdated', $time);
120
-        $objInstructioncat->setVar('pid', $pid);
121
-        $objInstructioncat->setVar('title', $_POST['title']);
122
-        $objInstructioncat->setVar('description', $_POST['description']);
123
-        $objInstructioncat->setVar('weight', $weight);
124
-        $objInstructioncat->setVar('metakeywords', $_POST['metakeywords']);
125
-        $objInstructioncat->setVar('metadescription', $_POST['metadescription']);
126
-
127
-        // Проверка веса
128
-        if (0 == $weight) {
129
-            $err         = true;
130
-            $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
131
-        }
132
-        // Проверка категорий
133
-        if ($cid && ($cid == $pid)) {
134
-            $err         = true;
135
-            $message_err .= _AM_INSTRUCTION_ERR_PCAT . '<br>';
136
-        }
137
-        // Если были ошибки
138
-        if (true === $err) {
139
-            xoops_cp_header();
140
-            // Навигация
141
-            $adminObject->displayNavigation(basename(__FILE__));
142
-
143
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
144
-            // Выводим ошибки в шаблон
145
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
146
-            // Если небыло ошибок
147
-        } else {
148
-            // Вставляем данные в БД
149
-            if ($categoryHandler->insert($objInstructioncat)) {
150
-
151
-                // ID категории. Если редактируем - то не изменяется. Если создаём новую - то получаем ID созданной записи.
152
-                $new_cid = $cid ?: $objInstructioncat->getNewInstertId();
153
-
154
-                // ===============
155
-                // ==== Права ====
156
-                // ===============
157
-
158
-                $gpermHandler = xoops_getHandler('groupperm');
159
-
160
-                // Если мы редактируем категорию, то старые права нужно удалить
161
-                if ($cid) {
162
-                    // Права на просмотр
163
-                    $criteria = new\ CriteriaCompo();
164
-                    $criteria->add(new \Criteria('gperm_itemid', $new_cid, '='));
165
-                    $criteria->add(new \Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
166
-                    $criteria->add(new \Criteria('gperm_name', 'instruction_view', '='));
167
-                    $gpermHandler->deleteAll($criteria);
168
-                    // Права на добавление
169
-                    $criteria = new \CriteriaCompo();
170
-                    $criteria->add(new \Criteria('gperm_itemid', $new_cid, '='));
171
-                    $criteria->add(new \Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
172
-                    $criteria->add(new \Criteria('gperm_name', 'instruction_submit', '='));
173
-                    $gpermHandler->deleteAll($criteria);
174
-                    // Права на редактирование
175
-                    $criteria = new \CriteriaCompo();
176
-                    $criteria->add(new \Criteria('gperm_itemid', $new_cid, '='));
177
-                    $criteria->add(new \Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
178
-                    $criteria->add(new \Criteria('gperm_name', 'instruction_edit', '='));
179
-                    $gpermHandler->deleteAll($criteria);
180
-                }
181
-
182
-                // Добавляем права
183
-                // Права на просмотр
184
-                if (isset($_POST['groups_instr_view'])) {
185
-                    foreach ($_POST['groups_instr_view'] as $onegroup_id) {
186
-                        $gpermHandler->addRight('instruction_view', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
187
-                    }
188
-                }
189
-                // Права на добавление
190
-                if (isset($_POST['groups_instr_submit'])) {
191
-                    foreach ($_POST['groups_instr_submit'] as $onegroup_id) {
192
-                        $gpermHandler->addRight('instruction_submit', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
193
-                    }
194
-                }
195
-                // Права на редактирование
196
-                if (isset($_POST['groups_instr_edit'])) {
197
-                    foreach ($_POST['groups_instr_edit'] as $onegroup_id) {
198
-                        $gpermHandler->addRight('instruction_edit', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
199
-                    }
200
-                }
201
-
202
-                //
203
-                redirect_header('cat.php', 3, _AM_INSTRUCTION_NEWCATADDED);
204
-            }
205
-            xoops_cp_header();
206
-            // Навигация
207
-            $adminObject->displayNavigation(basename(__FILE__));
208
-            // Выводим ошибки в шаблон
209
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInstructioncat->getHtmlErrors());
210
-        }
211
-        // Выводим шаблон
212
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_savecat.tpl');
213
-        // Выводим форму
214
-        $form = $objInstructioncat->getForm();
215
-        // Форма
216
-        echo $form->render();
217
-        // Текст внизу админки
218
-        include __DIR__ . '/admin_footer.php';
219
-
220
-        break;
221
-
222
-    // Удаление категории
223
-    case 'delcat':
224
-
225
-        // Находим число инструкций в данной категории
226
-        // Критерий выборки
227
-        $criteria = new \CriteriaCompo();
228
-        // Все инструкции в данной категории
229
-        $criteria->add(new \Criteria('cid', $cid, '='));
230
-        $numrows = $instructionHandler->getCount($criteria);
231
-        //
232
-        unset($criteria);
233
-        // Если есть хоть одна инструкция
234
-        if ($numrows) {
235
-            redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTEMPTY);
236
-        }
237
-
238
-        $objInscat = $categoryHandler->get($cid);
239
-        // Если нет такой категории
240
-        if (!is_object($objInscat)) {
241
-            redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
242
-        }
243
-
244
-        // Нельзя удалять пока есть доченрии категории
245
-        // Подключаем трей
246
-        include_once $GLOBALS['xoops']->path('class/tree.php');
247
-        $inscat_arr   = $categoryHandler->getall();
248
-        $mytree       = new \XoopsObjectTree($inscat_arr, 'cid', 'pid');
249
-        $ins_childcat = $mytree->getAllChild($cid);
250
-        // Если есть дочернии категории
251
-        if (count($ins_childcat)) {
252
-            redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATCHILDREN);
253
-        }
254
-
255
-        // Нажали ли мы на кнопку OK
256
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
257
-        // Если мы нажали на кнопку
258
-        if ($ok) {
259
-
260
-            // Проверка
261
-            if (!$GLOBALS['xoopsSecurity']->check()) {
262
-                redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
263
-            }
264
-            // Пытаемся удалить категорию
265
-            if ($categoryHandler->delete($objInscat)) {
266
-
267
-                // Удалить права доступа к категории
268
-                // =================================
269
-
270
-                // Редирект
271
-                redirect_header('cat.php', 3, _AM_INSTRUCTION_CATDELETED);
272
-                // Если не смогли удалить категорию
273
-            } else {
274
-                // Редирект
275
-                redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_DELCAT);
276
-            }
277
-        } else {
278
-
279
-            // Заголовок админки
280
-            xoops_cp_header();
281
-            // Навигация
282
-            $adminObject->displayNavigation(basename(__FILE__));
283
-
284
-            xoops_confirm(['ok' => 1, 'cid' => $cid, 'op' => 'delcat'], 'cat.php', sprintf(_AM_INSTRUCTION_FORMDELCAT, $objInscat->getVar('title')));
285
-
286
-            // Текст внизу админки
287
-            include __DIR__ . '/admin_footer.php';
288
-        }
289
-
290
-        break;
32
+	case 'main':
33
+
34
+		// Подключаем трей
35
+
36
+		//        include_once __DIR__  . '/../class/tree.php';
37
+		//include_once $GLOBALS['xoops']->path('modules/instruction/class/tree.php');
38
+
39
+		// Заголовок админки
40
+		xoops_cp_header();
41
+		// Навигация
42
+		$adminObject->displayNavigation(basename(__FILE__));
43
+
44
+		// Находим ID-категории => Число страниц
45
+		$cidinstrids = [];
46
+		$sql         = "SELECT `cid`, COUNT( `instrid` ) FROM {$instructionHandler->table} GROUP BY `cid`";
47
+		$result      = $GLOBALS['xoopsDB']->query($sql);
48
+		while (list($cid, $count) = $GLOBALS['xoopsDB']->fetchRow($result)) {
49
+			// Заполняем массив
50
+			$cidinstrids[$cid] = $count;
51
+		}
52
+
53
+		// Выбираем категории из БД
54
+		$criteria = new \CriteriaCompo();
55
+		$criteria->setSort('weight ASC, title');
56
+		$criteria->setOrder('ASC');
57
+		$ins_cat = $categoryHandler->getall($criteria);
58
+		unset($criteria);
59
+
60
+		// Инициализируем
61
+		$cattree = new instruction\Tree($ins_cat, 'cid', 'pid');
62
+		// Выводим списко категорий в шаблон
63
+		$GLOBALS['xoopsTpl']->assign('insListCat', $cattree->makeCatsAdmin('--', $cidinstrids));
64
+
65
+		// Создание новой категории
66
+		$objInstructioncat = $categoryHandler->create();
67
+		$form              = $objInstructioncat->getForm('cat.php');
68
+		// Форма
69
+		$GLOBALS['xoopsTpl']->assign('insFormCat', $form->render());
70
+		// Выводим шаблон
71
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_cat.tpl');
72
+
73
+		// Текст внизу админки
74
+		include __DIR__ . '/admin_footer.php';
75
+
76
+		break;
77
+
78
+	// Редактирование категории
79
+	case 'editcat':
80
+
81
+		// Заголовок админки
82
+		xoops_cp_header();
83
+		// Навигация
84
+		$adminObject->displayNavigation(basename(__FILE__));
85
+
86
+		$objInstructioncat = $categoryHandler->get($cid);
87
+		$form              = $objInstructioncat->getForm('cat.php');
88
+		// Форма
89
+		//$GLOBALS['xoopsTpl']->assign( 'insFormCat', $form->render() );
90
+		echo $form->render();
91
+		// Выводим шаблон
92
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editcat.tpl');
93
+
94
+		// Текст внизу админки
95
+		include __DIR__ . '/admin_footer.php';
96
+
97
+		break;
98
+
99
+	// Сохранение категорий
100
+	case 'savecat':
101
+
102
+		// Проверка
103
+		if (!$GLOBALS['xoopsSecurity']->check()) {
104
+			redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
105
+		}
106
+		// Если мы редактируем
107
+		if ($cid) {
108
+			$objInstructioncat = $categoryHandler->get($cid);
109
+		} else {
110
+			$objInstructioncat = $categoryHandler->create();
111
+			// Указываем дату создания
112
+			$objInstructioncat->setVar('datecreated', $time);
113
+		}
114
+
115
+		$err         = false;
116
+		$message_err = '';
117
+
118
+		// Дата обновления
119
+		$objInstructioncat->setVar('dateupdated', $time);
120
+		$objInstructioncat->setVar('pid', $pid);
121
+		$objInstructioncat->setVar('title', $_POST['title']);
122
+		$objInstructioncat->setVar('description', $_POST['description']);
123
+		$objInstructioncat->setVar('weight', $weight);
124
+		$objInstructioncat->setVar('metakeywords', $_POST['metakeywords']);
125
+		$objInstructioncat->setVar('metadescription', $_POST['metadescription']);
126
+
127
+		// Проверка веса
128
+		if (0 == $weight) {
129
+			$err         = true;
130
+			$message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
131
+		}
132
+		// Проверка категорий
133
+		if ($cid && ($cid == $pid)) {
134
+			$err         = true;
135
+			$message_err .= _AM_INSTRUCTION_ERR_PCAT . '<br>';
136
+		}
137
+		// Если были ошибки
138
+		if (true === $err) {
139
+			xoops_cp_header();
140
+			// Навигация
141
+			$adminObject->displayNavigation(basename(__FILE__));
142
+
143
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
144
+			// Выводим ошибки в шаблон
145
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
146
+			// Если небыло ошибок
147
+		} else {
148
+			// Вставляем данные в БД
149
+			if ($categoryHandler->insert($objInstructioncat)) {
150
+
151
+				// ID категории. Если редактируем - то не изменяется. Если создаём новую - то получаем ID созданной записи.
152
+				$new_cid = $cid ?: $objInstructioncat->getNewInstertId();
153
+
154
+				// ===============
155
+				// ==== Права ====
156
+				// ===============
157
+
158
+				$gpermHandler = xoops_getHandler('groupperm');
159
+
160
+				// Если мы редактируем категорию, то старые права нужно удалить
161
+				if ($cid) {
162
+					// Права на просмотр
163
+					$criteria = new\ CriteriaCompo();
164
+					$criteria->add(new \Criteria('gperm_itemid', $new_cid, '='));
165
+					$criteria->add(new \Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
166
+					$criteria->add(new \Criteria('gperm_name', 'instruction_view', '='));
167
+					$gpermHandler->deleteAll($criteria);
168
+					// Права на добавление
169
+					$criteria = new \CriteriaCompo();
170
+					$criteria->add(new \Criteria('gperm_itemid', $new_cid, '='));
171
+					$criteria->add(new \Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
172
+					$criteria->add(new \Criteria('gperm_name', 'instruction_submit', '='));
173
+					$gpermHandler->deleteAll($criteria);
174
+					// Права на редактирование
175
+					$criteria = new \CriteriaCompo();
176
+					$criteria->add(new \Criteria('gperm_itemid', $new_cid, '='));
177
+					$criteria->add(new \Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
178
+					$criteria->add(new \Criteria('gperm_name', 'instruction_edit', '='));
179
+					$gpermHandler->deleteAll($criteria);
180
+				}
181
+
182
+				// Добавляем права
183
+				// Права на просмотр
184
+				if (isset($_POST['groups_instr_view'])) {
185
+					foreach ($_POST['groups_instr_view'] as $onegroup_id) {
186
+						$gpermHandler->addRight('instruction_view', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
187
+					}
188
+				}
189
+				// Права на добавление
190
+				if (isset($_POST['groups_instr_submit'])) {
191
+					foreach ($_POST['groups_instr_submit'] as $onegroup_id) {
192
+						$gpermHandler->addRight('instruction_submit', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
193
+					}
194
+				}
195
+				// Права на редактирование
196
+				if (isset($_POST['groups_instr_edit'])) {
197
+					foreach ($_POST['groups_instr_edit'] as $onegroup_id) {
198
+						$gpermHandler->addRight('instruction_edit', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
199
+					}
200
+				}
201
+
202
+				//
203
+				redirect_header('cat.php', 3, _AM_INSTRUCTION_NEWCATADDED);
204
+			}
205
+			xoops_cp_header();
206
+			// Навигация
207
+			$adminObject->displayNavigation(basename(__FILE__));
208
+			// Выводим ошибки в шаблон
209
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInstructioncat->getHtmlErrors());
210
+		}
211
+		// Выводим шаблон
212
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_savecat.tpl');
213
+		// Выводим форму
214
+		$form = $objInstructioncat->getForm();
215
+		// Форма
216
+		echo $form->render();
217
+		// Текст внизу админки
218
+		include __DIR__ . '/admin_footer.php';
219
+
220
+		break;
221
+
222
+	// Удаление категории
223
+	case 'delcat':
224
+
225
+		// Находим число инструкций в данной категории
226
+		// Критерий выборки
227
+		$criteria = new \CriteriaCompo();
228
+		// Все инструкции в данной категории
229
+		$criteria->add(new \Criteria('cid', $cid, '='));
230
+		$numrows = $instructionHandler->getCount($criteria);
231
+		//
232
+		unset($criteria);
233
+		// Если есть хоть одна инструкция
234
+		if ($numrows) {
235
+			redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTEMPTY);
236
+		}
237
+
238
+		$objInscat = $categoryHandler->get($cid);
239
+		// Если нет такой категории
240
+		if (!is_object($objInscat)) {
241
+			redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
242
+		}
243
+
244
+		// Нельзя удалять пока есть доченрии категории
245
+		// Подключаем трей
246
+		include_once $GLOBALS['xoops']->path('class/tree.php');
247
+		$inscat_arr   = $categoryHandler->getall();
248
+		$mytree       = new \XoopsObjectTree($inscat_arr, 'cid', 'pid');
249
+		$ins_childcat = $mytree->getAllChild($cid);
250
+		// Если есть дочернии категории
251
+		if (count($ins_childcat)) {
252
+			redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATCHILDREN);
253
+		}
254
+
255
+		// Нажали ли мы на кнопку OK
256
+		$ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
257
+		// Если мы нажали на кнопку
258
+		if ($ok) {
259
+
260
+			// Проверка
261
+			if (!$GLOBALS['xoopsSecurity']->check()) {
262
+				redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
263
+			}
264
+			// Пытаемся удалить категорию
265
+			if ($categoryHandler->delete($objInscat)) {
266
+
267
+				// Удалить права доступа к категории
268
+				// =================================
269
+
270
+				// Редирект
271
+				redirect_header('cat.php', 3, _AM_INSTRUCTION_CATDELETED);
272
+				// Если не смогли удалить категорию
273
+			} else {
274
+				// Редирект
275
+				redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_DELCAT);
276
+			}
277
+		} else {
278
+
279
+			// Заголовок админки
280
+			xoops_cp_header();
281
+			// Навигация
282
+			$adminObject->displayNavigation(basename(__FILE__));
283
+
284
+			xoops_confirm(['ok' => 1, 'cid' => $cid, 'op' => 'delcat'], 'cat.php', sprintf(_AM_INSTRUCTION_FORMDELCAT, $objInscat->getVar('title')));
285
+
286
+			// Текст внизу админки
287
+			include __DIR__ . '/admin_footer.php';
288
+		}
289
+
290
+		break;
291 291
 
292 292
 }
Please login to merge, or discard this patch.
admin/ajax.php 1 patch
Indentation   +174 added lines, -174 removed lines patch added patch discarded remove patch
@@ -22,178 +22,178 @@
 block discarded – undo
22 22
 
23 23
 // Выбор
24 24
 switch ($op) {
25
-    // Сохранение страницы
26
-    case 'savepage':
27
-        // Выходной массив
28
-        $ret = [];
29
-
30
-        // Ошибки
31
-        $err         = false;
32
-        $message_err = '';
33
-
34
-        //
35
-        $title       = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'title', '', 'string');
36
-        $pid         = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'pid', 0, 'int');
37
-        $weight      = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'weight', 0, 'int');
38
-        $hometext    = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'hometext', '', 'string');
39
-        $footnote    = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'footnote', '', 'string');
40
-        $status      = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'status', 0, 'int');
41
-        $type        = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'type', 0, 'int');
42
-        $keywords    = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'keywords', '', 'string');
43
-        $description = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'description', '', 'string');
44
-        $dosmiley    = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
45
-        $doxcode     = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
46
-        $dobr        = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
47
-        $dohtml      = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
48
-        //$dohtml      = Xoopsmodules\instruction\Utility::cleanVars( $_POST, 'dohtml', 0, 'int' );
49
-        //$dosmiley    = Xoopsmodules\instruction\Utility::cleanVars( $_POST, 'dosmiley', 0, 'int' );
50
-        //$doxcode     = Xoopsmodules\instruction\Utility::cleanVars( $_POST, 'doxcode', 0, 'int' );
51
-        //$dobr        = Xoopsmodules\instruction\Utility::cleanVars( $_POST, 'dobr', 0, 'int' );
52
-        $pageid  = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'pageid', 0, 'int');
53
-        $instrid = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'instrid', 0, 'int');
54
-
55
-        // Проверка
56
-        if (!$GLOBALS['xoopsSecurity']->check()) {
57
-            $err         = true;
58
-            $err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
59
-            $message_err .= $err_txt . '<br>' . _AM_INSTR_TRY_AGAIN . '<br>';
60
-        }
61
-        // =========================
62
-        // Устанавливаем новый token
63
-        $token_name    = 'XOOPS_TOKEN';
64
-        $token_timeout = 0;
65
-        // $token_name . '_REQUEST' - название элемента формы
66
-        $ret['toket'] = $GLOBALS['xoopsSecurity']->createToken($token_timeout, $token_name);
67
-        // =========================
68
-
69
-        // Если мы редактируем
70
-        if ($pageid) {
71
-            $objInspage = $pageHandler->get($pageid);
72
-        } elseif ($instrid) {
73
-            $objInspage = $pageHandler->create();
74
-            // Если мы создаём страницу необходимо указать к какой инструкции
75
-            $objInspage->setVar('instrid', $instrid);
76
-            // Указываем дату создания
77
-            $objInspage->setVar('datecreated', $time);
78
-            // Указываем пользователя
79
-            $objInspage->setVar('uid', $uid);
80
-        } else {
81
-            // Устанавливаем сообщение
82
-            $ret['message'] = _AM_INSTRUCTION_BADREQUEST;
83
-            // Возвращаем ответ скрипту через JSON
84
-            echo json_encode($ret);
85
-            // Прерываем выполнение
86
-            exit();
87
-        }
88
-
89
-        // Родительская страница
90
-        $objInspage->setVar('pid', $pid);
91
-        // Дата обновления
92
-        $objInspage->setVar('dateupdated', $time);
93
-        // Название
94
-        $objInspage->setVar('title', $title);
95
-        // Вес
96
-        $objInspage->setVar('weight', $weight);
97
-        // Текст
98
-        $objInspage->setVar('hometext', $hometext);
99
-        // Сноска
100
-        $objInspage->setVar('footnote', $footnote);
101
-        // Статус
102
-        $objInspage->setVar('status', $status);
103
-        // Тип
104
-        $objInspage->setVar('type', $type);
105
-        // Мета-теги ключевых слов
106
-        $objInspage->setVar('keywords', $keywords);
107
-        // Мета-теги описания
108
-        $objInspage->setVar('description', $description);
109
-        //
110
-        $objInspage->setVar('dohtml', $dohtml);
111
-        $objInspage->setVar('dosmiley', $dosmiley);
112
-        $objInspage->setVar('doxcode', $doxcode);
113
-        $objInspage->setVar('dobr', $dobr);
114
-
115
-        // Проверка категорий
116
-        if (!$pageid && !$instrid) {
117
-            $err         = true;
118
-            $message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
119
-        }
120
-        // Проверка веса
121
-        if (0 == $weight) {
122
-            $err         = true;
123
-            $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
124
-        }
125
-        // Проверка родительской страницы
126
-        if ($pageid && ($pageid == $pid)) {
127
-            $err         = true;
128
-            $message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
129
-        }
130
-        // Проверка названия
131
-        if (!$title) {
132
-            $err         = true;
133
-            $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
134
-        }
135
-        // Проверка основного текста
136
-        if (!$hometext) {
137
-            $err         = true;
138
-            $message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
139
-        }
140
-
141
-        // Если были ошибки
142
-        if (true === $err) {
143
-            //
144
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
145
-            // Устанавливаем сообщение
146
-            $ret['message'] = $message_err;
147
-            // Возвращаем ответ скрипту через JSON
148
-            echo json_encode($ret);
149
-            // Прерываем выполнение
150
-            exit();
151
-            // Если небыло ошибок
152
-        } else {
153
-            // Вставляем данные в БД
154
-            if ($pageHandler->insert($objInspage)) {
155
-                // Находим ID созданной записи
156
-                $pageid_new = $pageid ?: $objInspage->getNewInstertId();
157
-                //
158
-                $ret['pageid'] = $pageid_new;
159
-                // Получаем ID инструкции
160
-                $instrid = $objInspage->getInstrid();
161
-                // Обновляем в инструкции число страниц и дату
162
-                $instructionHandler->updatePages($instrid);
163
-                // Если мы редактируем
164
-                if ($pageid) {
165
-                    // Устанавливаем сообщение
166
-                    $ret['message'] = '<div class="successMsg" style="text-align: left;">' . _AM_INSTRUCTION_PAGEMODIFY . '</div>';
167
-                    // Возвращаем ответ скрипту через JSON
168
-                    echo json_encode($ret);
169
-                    // Прерываем выполнение
170
-                    exit();
171
-
172
-                    // Если мы добавляем
173
-                } else {
174
-                    // Инкримент комментов
175
-                    $pageHandler->updateposts($uid, $status, 'add');
176
-
177
-                    // Устанавливаем сообщение
178
-                    $ret['message'] = '<div class="successMsg" style="text-align: left;">' . _AM_INSTRUCTION_PAGEADDED . '</div>';
179
-                    // Возвращаем ответ скрипту через JSON
180
-                    echo json_encode($ret);
181
-                    // Прерываем выполнение
182
-                    exit();
183
-                }
184
-                // Если не получилось вставить данные
185
-            } else {
186
-
187
-                //
188
-                $message_err = '<div class="errorMsg" style="text-align: left;">' . $objInspage->getHtmlErrors() . '</div>';
189
-                // Устанавливаем сообщение
190
-                $ret['message'] = $message_err;
191
-                // Возвращаем ответ скрипту через JSON
192
-                echo json_encode($ret);
193
-                // Прерываем выполнение
194
-                exit();
195
-            }
196
-        }
197
-
198
-        break;
25
+	// Сохранение страницы
26
+	case 'savepage':
27
+		// Выходной массив
28
+		$ret = [];
29
+
30
+		// Ошибки
31
+		$err         = false;
32
+		$message_err = '';
33
+
34
+		//
35
+		$title       = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'title', '', 'string');
36
+		$pid         = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'pid', 0, 'int');
37
+		$weight      = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'weight', 0, 'int');
38
+		$hometext    = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'hometext', '', 'string');
39
+		$footnote    = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'footnote', '', 'string');
40
+		$status      = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'status', 0, 'int');
41
+		$type        = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'type', 0, 'int');
42
+		$keywords    = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'keywords', '', 'string');
43
+		$description = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'description', '', 'string');
44
+		$dosmiley    = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
45
+		$doxcode     = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
46
+		$dobr        = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
47
+		$dohtml      = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
48
+		//$dohtml      = Xoopsmodules\instruction\Utility::cleanVars( $_POST, 'dohtml', 0, 'int' );
49
+		//$dosmiley    = Xoopsmodules\instruction\Utility::cleanVars( $_POST, 'dosmiley', 0, 'int' );
50
+		//$doxcode     = Xoopsmodules\instruction\Utility::cleanVars( $_POST, 'doxcode', 0, 'int' );
51
+		//$dobr        = Xoopsmodules\instruction\Utility::cleanVars( $_POST, 'dobr', 0, 'int' );
52
+		$pageid  = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'pageid', 0, 'int');
53
+		$instrid = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'instrid', 0, 'int');
54
+
55
+		// Проверка
56
+		if (!$GLOBALS['xoopsSecurity']->check()) {
57
+			$err         = true;
58
+			$err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
59
+			$message_err .= $err_txt . '<br>' . _AM_INSTR_TRY_AGAIN . '<br>';
60
+		}
61
+		// =========================
62
+		// Устанавливаем новый token
63
+		$token_name    = 'XOOPS_TOKEN';
64
+		$token_timeout = 0;
65
+		// $token_name . '_REQUEST' - название элемента формы
66
+		$ret['toket'] = $GLOBALS['xoopsSecurity']->createToken($token_timeout, $token_name);
67
+		// =========================
68
+
69
+		// Если мы редактируем
70
+		if ($pageid) {
71
+			$objInspage = $pageHandler->get($pageid);
72
+		} elseif ($instrid) {
73
+			$objInspage = $pageHandler->create();
74
+			// Если мы создаём страницу необходимо указать к какой инструкции
75
+			$objInspage->setVar('instrid', $instrid);
76
+			// Указываем дату создания
77
+			$objInspage->setVar('datecreated', $time);
78
+			// Указываем пользователя
79
+			$objInspage->setVar('uid', $uid);
80
+		} else {
81
+			// Устанавливаем сообщение
82
+			$ret['message'] = _AM_INSTRUCTION_BADREQUEST;
83
+			// Возвращаем ответ скрипту через JSON
84
+			echo json_encode($ret);
85
+			// Прерываем выполнение
86
+			exit();
87
+		}
88
+
89
+		// Родительская страница
90
+		$objInspage->setVar('pid', $pid);
91
+		// Дата обновления
92
+		$objInspage->setVar('dateupdated', $time);
93
+		// Название
94
+		$objInspage->setVar('title', $title);
95
+		// Вес
96
+		$objInspage->setVar('weight', $weight);
97
+		// Текст
98
+		$objInspage->setVar('hometext', $hometext);
99
+		// Сноска
100
+		$objInspage->setVar('footnote', $footnote);
101
+		// Статус
102
+		$objInspage->setVar('status', $status);
103
+		// Тип
104
+		$objInspage->setVar('type', $type);
105
+		// Мета-теги ключевых слов
106
+		$objInspage->setVar('keywords', $keywords);
107
+		// Мета-теги описания
108
+		$objInspage->setVar('description', $description);
109
+		//
110
+		$objInspage->setVar('dohtml', $dohtml);
111
+		$objInspage->setVar('dosmiley', $dosmiley);
112
+		$objInspage->setVar('doxcode', $doxcode);
113
+		$objInspage->setVar('dobr', $dobr);
114
+
115
+		// Проверка категорий
116
+		if (!$pageid && !$instrid) {
117
+			$err         = true;
118
+			$message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
119
+		}
120
+		// Проверка веса
121
+		if (0 == $weight) {
122
+			$err         = true;
123
+			$message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
124
+		}
125
+		// Проверка родительской страницы
126
+		if ($pageid && ($pageid == $pid)) {
127
+			$err         = true;
128
+			$message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
129
+		}
130
+		// Проверка названия
131
+		if (!$title) {
132
+			$err         = true;
133
+			$message_err .= _AM_INSTR_ERR_TITLE . '<br>';
134
+		}
135
+		// Проверка основного текста
136
+		if (!$hometext) {
137
+			$err         = true;
138
+			$message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
139
+		}
140
+
141
+		// Если были ошибки
142
+		if (true === $err) {
143
+			//
144
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
145
+			// Устанавливаем сообщение
146
+			$ret['message'] = $message_err;
147
+			// Возвращаем ответ скрипту через JSON
148
+			echo json_encode($ret);
149
+			// Прерываем выполнение
150
+			exit();
151
+			// Если небыло ошибок
152
+		} else {
153
+			// Вставляем данные в БД
154
+			if ($pageHandler->insert($objInspage)) {
155
+				// Находим ID созданной записи
156
+				$pageid_new = $pageid ?: $objInspage->getNewInstertId();
157
+				//
158
+				$ret['pageid'] = $pageid_new;
159
+				// Получаем ID инструкции
160
+				$instrid = $objInspage->getInstrid();
161
+				// Обновляем в инструкции число страниц и дату
162
+				$instructionHandler->updatePages($instrid);
163
+				// Если мы редактируем
164
+				if ($pageid) {
165
+					// Устанавливаем сообщение
166
+					$ret['message'] = '<div class="successMsg" style="text-align: left;">' . _AM_INSTRUCTION_PAGEMODIFY . '</div>';
167
+					// Возвращаем ответ скрипту через JSON
168
+					echo json_encode($ret);
169
+					// Прерываем выполнение
170
+					exit();
171
+
172
+					// Если мы добавляем
173
+				} else {
174
+					// Инкримент комментов
175
+					$pageHandler->updateposts($uid, $status, 'add');
176
+
177
+					// Устанавливаем сообщение
178
+					$ret['message'] = '<div class="successMsg" style="text-align: left;">' . _AM_INSTRUCTION_PAGEADDED . '</div>';
179
+					// Возвращаем ответ скрипту через JSON
180
+					echo json_encode($ret);
181
+					// Прерываем выполнение
182
+					exit();
183
+				}
184
+				// Если не получилось вставить данные
185
+			} else {
186
+
187
+				//
188
+				$message_err = '<div class="errorMsg" style="text-align: left;">' . $objInspage->getHtmlErrors() . '</div>';
189
+				// Устанавливаем сообщение
190
+				$ret['message'] = $message_err;
191
+				// Возвращаем ответ скрипту через JSON
192
+				echo json_encode($ret);
193
+				// Прерываем выполнение
194
+				exit();
195
+			}
196
+		}
197
+
198
+		break;
199 199
 }
Please login to merge, or discard this patch.
admin/instr.php 1 patch
Indentation   +561 added lines, -561 removed lines patch added patch discarded remove patch
@@ -42,566 +42,566 @@
 block discarded – undo
42 42
 // Выбор
43 43
 switch ($op) {
44 44
 
45
-    case 'main':
46
-
47
-        // Заголовок админки
48
-        xoops_cp_header();
49
-        // Меню
50
-        $adminObject->displayNavigation(basename(__FILE__));
51
-        $adminObject->addItemButton(_AM_INSTRUCTION_ADDINSTR, 'instr.php?op=editinstr', 'add');
52
-        $adminObject->displayButton('left', '');
53
-
54
-        //
55
-        $criteria = new \CriteriaCompo();
56
-
57
-        // Если была передана категория
58
-        if ($cid) {
59
-            // Добавляем в выборку ID категории
60
-            $criteria->add(new \Criteria('cid', $cid, '='));
61
-            // Получаем объект категории
62
-            $objInscat = $categoryHandler->get($cid);
63
-            // Если нет такой категории
64
-            if (!is_object($objInscat)) {
65
-                redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
66
-            }
67
-        }
68
-
69
-        // Число инструкций, удовлетворяющих данному условию
70
-        $numrows = $instructionHandler->getCount($criteria);
71
-
72
-        // Число выборки
73
-        $criteria->setLimit($limit);
74
-        // Начинасть с данного элемента
75
-        $criteria->setStart($start);
76
-        // Сортировать по
77
-        $criteria->setSort('instrid');
78
-        // Порядок сортировки
79
-        $criteria->setOrder('DESC');
80
-        // Находим все справки
81
-        $instr_arr = $instructionHandler->getall($criteria);
82
-        // Если записей больше чем $limit, то выводим пагинатор
83
-        if ($numrows > $limit) {
84
-            $pagenav = new \XoopsPageNav($numrows, $limit, $start, 'start', 'op=' . $op . '&amp;cid=' . $cid);
85
-            $pagenav = $pagenav->renderNav(4);
86
-        } else {
87
-            $pagenav = '';
88
-        }
89
-        // Выводим пагинатор в шаблон
90
-        $GLOBALS['xoopsTpl']->assign('insPagenav', $pagenav);
91
-
92
-        // Если есть записи
93
-        if ($numrows > 0) {
94
-            $class = 'odd';
95
-            foreach (array_keys($instr_arr) as $i) {
96
-
97
-                //
98
-                $class = ('even' === $class) ? 'odd' : 'even';
99
-                // ID
100
-                $insinstr_instrid = $instr_arr[$i]->getVar('instrid');
101
-                // Название
102
-                $insinstr_title = $instr_arr[$i]->getVar('title');
103
-                // Статус
104
-                $insinstr_status = $instr_arr[$i]->getVar('status');
105
-                // Количество страниц
106
-                $insinstr_pages = $instr_arr[$i]->getVar('pages');
107
-                // Категория
108
-                $insinstr_cat = $categoryHandler->get($instr_arr[$i]->getVar('cid'));
109
-
110
-                // Выводим в шаблон
111
-                $GLOBALS['xoopsTpl']->append('insListInstr', ['instrid' => $insinstr_instrid, 'title' => $insinstr_title, 'status' => $insinstr_status, 'pages' => $insinstr_pages, 'ctitle' => $insinstr_cat->getVar('title'), 'cid' => $insinstr_cat->getVar('cid'), 'class' => $class]);
112
-            }
113
-
114
-            //
115
-            $inshead = isset($objInscat) && is_object($objInscat) ? sprintf(_AM_INSTR_LISTINSTRINCAT, $objInscat->getVar('title')) : _AM_INSTR_LISTINSTRALL;
116
-            $GLOBALS['xoopsTpl']->assign('insHead', $inshead);
117
-            // Языковые константы
118
-            $GLOBALS['xoopsTpl']->assign('lang_title', _AM_INSTRUCTION_TITLE);
119
-            $GLOBALS['xoopsTpl']->assign('lang_cat', _AM_INSTRUCTION_CAT);
120
-            $GLOBALS['xoopsTpl']->assign('lang_pages', _AM_INSTRUCTION_PAGES);
121
-            $GLOBALS['xoopsTpl']->assign('lang_action', _AM_INSTRUCTION_ACTION);
122
-            $GLOBALS['xoopsTpl']->assign('lang_display', _AM_INSTRUCTION_DISPLAY);
123
-            $GLOBALS['xoopsTpl']->assign('lang_edit', _AM_INSTRUCTION_EDIT);
124
-            $GLOBALS['xoopsTpl']->assign('lang_del', _AM_INSTRUCTION_DEL);
125
-            $GLOBALS['xoopsTpl']->assign('lang_lock', _AM_INSTRUCTION_LOCK);
126
-            $GLOBALS['xoopsTpl']->assign('lang_unlock', _AM_INSTRUCTION_UNLOCK);
127
-            $GLOBALS['xoopsTpl']->assign('lang_addpage', _AM_INSTRUCTION_ADDPAGE);
128
-            $GLOBALS['xoopsTpl']->assign('lang_addinstr', _AM_INSTRUCTION_ADDINSTR);
129
-        }
130
-
131
-        // Выводим шаблон
132
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_instr.tpl');
133
-
134
-        // Текст внизу админки
135
-        include __DIR__ . '/admin_footer.php';
136
-
137
-        break;
138
-
139
-    // Редактирование категории
140
-    case 'editinstr':
141
-
142
-        // Заголовок админки
143
-        xoops_cp_header();
144
-        // Меню
145
-        $adminObject->displayNavigation(basename(__FILE__));
146
-
147
-        // Если мы редактируем инструкцию
148
-        if ($instrid) {
149
-            $objInsinstr = $instructionHandler->get($instrid);
150
-            // Создание новой страницы
151
-        } else {
152
-            $objInsinstr = $instructionHandler->create();
153
-        }
154
-
155
-        // Выводим шаблон
156
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editinstr.tpl');
157
-        $form = $objInsinstr->getForm('instr.php');
158
-        // Форма
159
-        echo $form->render();
160
-
161
-        // Текст внизу админки
162
-        include __DIR__ . '/admin_footer.php';
163
-
164
-        break;
165
-
166
-    // Сохранение инструкций
167
-    case 'saveinstr':
168
-
169
-        // Проверка
170
-        if (!$GLOBALS['xoopsSecurity']->check()) {
171
-            redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
172
-        }
173
-        // Если мы редактируем
174
-        if ($instrid) {
175
-            $objInsinstr = $instructionHandler->get($instrid);
176
-        } else {
177
-            $objInsinstr = $instructionHandler->create();
178
-            // Указываем дату создания
179
-            $objInsinstr->setVar('datecreated', $time);
180
-            // Указываем пользователя
181
-            $objInsinstr->setVar('uid', $uid);
182
-        }
183
-
184
-        $err         = false;
185
-        $message_err = '';
186
-        //
187
-        $instr_title       = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'title', '', 'string');
188
-        $instr_description = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'description', '', 'string');
189
-
190
-        // Дата обновления
191
-        $objInsinstr->setVar('dateupdated', $time);
192
-        //
193
-        $objInsinstr->setVar('cid', $cid);
194
-        $objInsinstr->setVar('title', $instr_title);
195
-        $objInsinstr->setVar('status', $_POST['status']);
196
-        $objInsinstr->setVar('description', $instr_description);
197
-        $objInsinstr->setVar('metakeywords', $_POST['metakeywords']);
198
-        $objInsinstr->setVar('metadescription', $_POST['metadescription']);
199
-
200
-        // Проверка категорий
201
-        if (!$cid) {
202
-            $err         = true;
203
-            $message_err .= _AM_INSTRUCTION_ERR_CAT . '<br>';
204
-        }
205
-        // Проверка названия
206
-        if (!$instr_title) {
207
-            $err         = true;
208
-            $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
209
-        }
210
-        // Проверка основного текста
211
-        if (!$instr_description) {
212
-            $err         = true;
213
-            $message_err .= _AM_INSTR_ERR_DESCRIPTION . '<br>';
214
-        }
215
-
216
-        // Если были ошибки
217
-        if (true === $err) {
218
-            xoops_cp_header();
219
-            // Меню страницы
220
-            $adminObject->displayNavigation(basename(__FILE__));
221
-
222
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
223
-            // Выводим ошибки в шаблон
224
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
225
-            // Если небыло ошибок
226
-        } else {
227
-            // Вставляем данные в БД
228
-            if ($instructionHandler->insert($objInsinstr)) {
229
-                // Получаем ID созданной записи
230
-                $instrid_new = $instrid ?: $objInsinstr->getNewInstertId();
231
-                // Обновление даты в категории
232
-                $categoryHandler->updateDateupdated($cid, $time);
233
-                // Тэги
234
-                if (xoops_getModuleOption('usetag', 'instruction')) {
235
-                    $tagHandler = xoops_getModuleHandler('tag', 'tag');
236
-                    $tagHandler->updateByItem($_POST['tag'], $instrid_new, $GLOBALS['xoopsModule']->getVar('dirname'), 0);
237
-                }
238
-
239
-                // Если мы редактируем
240
-                if ($instrid) {
241
-                    redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRMODIFY);
242
-                } else {
243
-                    redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRADDED);
244
-                }
245
-            }
246
-            xoops_cp_header();
247
-            // Меню страницы
248
-            $adminObject->displayNavigation(basename(__FILE__));
249
-
250
-            // Выводим ошибки в шаблон
251
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInstructioncat->getHtmlErrors());
252
-        }
253
-        // Выводим шаблон
254
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_saveinstr.tpl');
255
-        // Выводим форму
256
-        $form = $objInsinstr->getForm();
257
-        // Форма
258
-        echo $form->render();
259
-        // Текст внизу админки
260
-        include __DIR__ . '/admin_footer.php';
261
-
262
-        break;
263
-
264
-    // Просмотр категории
265
-    case 'viewinstr':
266
-
267
-        // Подключаем трей
268
-        include_once XOOPS_ROOT_PATH . '/modules/instruction/class/tree.php';
269
-
270
-        // Заголовок админки
271
-        xoops_cp_header();
272
-        // Меню
273
-        $adminObject->displayNavigation(basename(__FILE__));
274
-        // Кнопки
275
-        $adminObject->addItemButton(_AM_INSTRUCTION_ADDPAGE, 'instr.php?op=editpage&instrid=' . $instrid, 'add');
276
-        $adminObject->displayButton('left', '');
277
-
278
-        //
279
-        $objInsinstr = $instructionHandler->get($instrid);
280
-
281
-        // Находим все страницы в данной инструкции
282
-        $criteria = new \CriteriaCompo();
283
-        $criteria->add(new \Criteria('instrid', $instrid, '='));
284
-        $criteria->setSort('weight');
285
-        $criteria->setOrder('ASC');
286
-        $ins_page = $pageHandler->getall($criteria);
287
-        //
288
-        unset($criteria);
289
-
290
-        // Инициализируем
291
-        $instree = new instruction\Tree($ins_page, 'pageid', 'pid');
292
-        // Выводим список страниц в шаблон
293
-        $GLOBALS['xoopsTpl']->assign('insListPage', $instree->makePagesAdmin($objInsinstr, '--'));
294
-
295
-        // Выводим шаблон
296
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_viewinstr.tpl');
297
-
298
-        // Текст внизу админки
299
-        include __DIR__ . '/admin_footer.php';
300
-
301
-        break;
302
-
303
-    // Удаление категории
304
-    case 'delinstr':
305
-
306
-        // Проверка на instrid
307
-        // ==================
308
-        // Объект инструкций
309
-        $objInsinstr = $instructionHandler->get($instrid);
310
-
311
-        // Нажали ли мы на кнопку OK
312
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
313
-        //
314
-        if ($ok) {
315
-
316
-            // Проверка
317
-            if (!$GLOBALS['xoopsSecurity']->check()) {
318
-                redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
319
-            }
320
-            // Находим все страницы, пренадлежащие этой инструкции
321
-            $criteria = new \CriteriaCompo();
322
-            $criteria->add(new \Criteria('instrid', $instrid));
323
-            $ins_page = $pageHandler->getall($criteria);
324
-            //
325
-            unset($criteria);
326
-            // Перебираем все страницы в данной инструкции
327
-            foreach (array_keys($ins_page) as $i) {
328
-                // Декримент комментов
329
-                // Делает дикримент одного коммента, а не всех в цикле...
330
-                // Удаляем комментарии
331
-                xoops_comment_delete($GLOBALS['xoopsModule']->getVar('mid'), $ins_page[$i]->getVar('pageid'));
332
-                // Декримент страниц (Опционально)
333
-                // ==============================
334
-
335
-                // Удаляем страницу
336
-                // Сделать проверку на удалённость страницы
337
-                // ========================================
338
-                $pageHandler->delete($ins_page[$i]);
339
-            }
340
-            // Пытаемся удалить инструкцию
341
-            if ($instructionHandler->delete($objInsinstr)) {
342
-                // Редирект
343
-                redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRDELETED);
344
-            } else {
345
-                // Редирект
346
-                redirect_header('instr.php', 3, _AM_INSTRUCTION_ERR_DELINSTR);
347
-            }
348
-        } else {
349
-            xoops_cp_header();
350
-
351
-            $adminObject->displayNavigation(basename(__FILE__));
352
-            // Форма
353
-            xoops_confirm(['ok' => 1, 'instrid' => $instrid, 'op' => 'delinstr'], 'instr.php', sprintf(_AM_INSTRUCTION_FORMDELINSTR, $objInsinstr->getVar('title')));
354
-            // Текст внизу админки
355
-            include __DIR__ . '/admin_footer.php';
356
-        }
357
-
358
-        break;
359
-
360
-    // Добавление страницы
361
-    case 'editpage':
362
-
363
-        // Заголовок админки
364
-        xoops_cp_header();
365
-        // Скрипты
366
-        $xoTheme->addScript(XOOPS_URL . '/modules/instruction/assets/js/admin.js');
367
-        // Меню
368
-        $adminObject->displayNavigation(basename(__FILE__));
369
-
370
-        // Если мы редактируем страницу
371
-        if ($pageid) {
372
-            // Получаем объект страницы
373
-            $objInspage = $pageHandler->get($pageid);
374
-            // ID инструкции
375
-            $instrid = $objInspage->getVar('instrid');
376
-            // Создание новой страницы
377
-        } elseif ($instrid) {
378
-            // Создаём объект страницы
379
-            $objInspage = $pageHandler->create();
380
-            // Устанавливаем родительскую страницу
381
-            $objInspage->setVar('pid', $pid);
382
-        } else {
383
-            redirect_header('instr.php', 3, _AM_INSTRUCTION_BADREQUEST);
384
-        }
385
-        // Форма
386
-        $form = $objInspage->getForm('instr.php', $instrid);
387
-        // Форма
388
-        echo $form->render();
389
-        // Выводим шаблон
390
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editpage.tpl');
391
-
392
-        // Текст внизу админки
393
-        include __DIR__ . '/admin_footer.php';
394
-
395
-        break;
396
-
397
-    // Сохранение страницы
398
-    case 'savepage':
399
-        // Ошибки
400
-        $err         = false;
401
-        $message_err = '';
402
-
403
-        // Проверка сессии
404
-        if (!$GLOBALS['xoopsSecurity']->check()) {
405
-            $err         = true;
406
-            $err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
407
-            $message_err .= $err_txt . '<br>';
408
-        }
409
-
410
-        // Если мы редактируем
411
-        if ($pageid) {
412
-            $objInspage = $pageHandler->get($pageid);
413
-        } elseif ($instrid) {
414
-            $objInspage = $pageHandler->create();
415
-            // Если мы создаём страницу необходимо указать к какой инструкции
416
-            $objInspage->setVar('instrid', $instrid);
417
-            // Указываем дату создания
418
-            $objInspage->setVar('datecreated', $time);
419
-            // Указываем пользователя
420
-            $objInspage->setVar('uid', $uid);
421
-        } else {
422
-            redirect_header('instr.php', 3, _AM_INSTRUCTION_BADREQUEST);
423
-        }
424
-
425
-        //
426
-        $page_title    = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'title', '', 'string');
427
-        $page_hometext = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'hometext', '', 'string');
428
-
429
-        // Родительская страница
430
-        $objInspage->setVar('pid', $pid);
431
-        // Дата обновления
432
-        $objInspage->setVar('dateupdated', $time);
433
-        // Название страницы
434
-        $objInspage->setVar('title', $page_title);
435
-        // Вес страницы
436
-        $objInspage->setVar('weight', $weight);
437
-        // Основной текст
438
-        $objInspage->setVar('hometext', $page_hometext);
439
-        // Сноска
440
-        $objInspage->setVar('footnote', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'footnote', '', 'string'));
441
-        // Статус
442
-        $objInspage->setVar('status', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'status', 0, 'int'));
443
-        // Тип
444
-        $objInspage->setVar('type', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'type', 0, 'int'));
445
-        // Мета-теги описания
446
-        $objInspage->setVar('keywords', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'keywords', '', 'string'));
447
-        // Мета-теги ключевых слов
448
-        $objInspage->setVar('description', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'description', '', 'string'));
449
-        //
450
-        $dosmiley = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
451
-        $doxcode  = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
452
-        $dobr     = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
453
-        $dohtml   = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
454
-        //$doimage = ( isset( $_POST['doimage'] ) && intval( $_POST['doimage'] ) > 0 ) ? 1 : 0;
455
-        $objInspage->setVar('dohtml', $dohtml);
456
-        $objInspage->setVar('dosmiley', $dosmiley);
457
-        $objInspage->setVar('doxcode', $doxcode);
458
-        //$objInspage->setVar( 'doimage', $doimage );
459
-        $objInspage->setVar('dobr', $dobr);
460
-
461
-        //
462
-        if (!$pageid && !$instrid) {
463
-            $err         = true;
464
-            $message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
465
-        }
466
-        // Проверка веса
467
-        if (0 == $weight) {
468
-            $err         = true;
469
-            $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
470
-        }
471
-        // Проверка родительской страницы
472
-        if ($pageid && ($pageid == $pid)) {
473
-            $err         = true;
474
-            $message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
475
-        }
476
-        // Проверка названия
477
-        if (!$page_title) {
478
-            $err         = true;
479
-            $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
480
-        }
481
-        // Проверка основного текста
482
-        if (!$page_hometext) {
483
-            $err         = true;
484
-            $message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
485
-        }
486
-
487
-        // Если были ошибки
488
-        if (true === $err) {
489
-            xoops_cp_header();
490
-            // Меню страницы
491
-            $adminObject->displayNavigation(basename(__FILE__));
492
-
493
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
494
-            // Выводим ошибки в шаблон
495
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
496
-            // Если небыло ошибок
497
-        } else {
498
-            // Вставляем данные в БД
499
-            if ($pageHandler->insert($objInspage)) {
500
-                // Ссылка для редиректа
501
-                $redirect_url = 'instr.php?op=viewinstr&amp;instrid=' . $instrid . '#pageid_' . $pid;
502
-                // Получаем ID инструкции
503
-                $instrid = $objInspage->getInstrid();
504
-                // Обновляем в инструкции число страниц и дату
505
-                $instructionHandler->updatePages($instrid);
506
-                // Если мы редактируем
507
-                if ($pageid) {
508
-                    // Редирект
509
-                    redirect_header($redirect_url, 3, _AM_INSTRUCTION_PAGEMODIFY);
510
-                    // Если мы добавляем
511
-                } else {
512
-                    // Инкримент комментов
513
-                    $pageHandler->updateposts($uid, $_POST['status'], 'add');
514
-                    // Редирект
515
-                    redirect_header($redirect_url, 3, _AM_INSTRUCTION_PAGEADDED);
516
-                }
517
-            }
518
-            xoops_cp_header();
519
-            // Меню страницы
520
-            $adminObject->displayNavigation(basename(__FILE__));
521
-
522
-            // Выводим ошибки в шаблон
523
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInspage->getHtmlErrors());
524
-        }
525
-        // Скрипты
526
-        $xoTheme->addScript(XOOPS_URL . '/modules/instruction/assets/js/admin.js');
527
-        // Выводим шаблон
528
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_savepage.tpl');
529
-        // Выводим форму
530
-        $form = $objInspage->getForm('instr.php', $instrid);
531
-        // Форма
532
-        echo $form->render();
533
-        // Текст внизу админки
534
-        include __DIR__ . '/admin_footer.php';
535
-
536
-        break;
537
-
538
-    // Удаление страницы
539
-    case 'delpage':
540
-
541
-        // Проверка на pageid
542
-        // ==================
543
-
544
-        $objInspage = $pageHandler->get($pageid);
545
-        // Нажали ли мы на кнопку OK
546
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
547
-        // Если мы нажали на кнопку
548
-        if ($ok) {
549
-
550
-            // Проверка
551
-            if (!$GLOBALS['xoopsSecurity']->check()) {
552
-                redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
553
-            }
554
-            // ID инструкции
555
-            $page_instrid = $objInspage->getVar('instrid');
556
-            // Декримент комментов
557
-            $pageHandler->updateposts($objInspage->getVar('uid'), $objInspage->getVar('status'), 'delete');
558
-            // Пытаемся удалить страницу
559
-            if ($pageHandler->delete($objInspage)) {
560
-                // Обновляем в инструкции число страниц и дату
561
-                $instructionHandler->updatePages($page_instrid);
562
-                // Удаляем комментарии
563
-                xoops_comment_delete($GLOBALS['xoopsModule']->getVar('mid'), $pageid);
564
-                //
565
-                redirect_header('instr.php?op=viewinstr&amp;instrid=' . $page_instrid, 3, _AM_INSTRUCTION_PAGEDELETED);
566
-                // Если не смогли удалить страницу
567
-            } else {
568
-                redirect_header('instr.php?op=viewinstr&amp;instrid=' . $page_instrid, 3, _AM_INSTRUCTION_ERR_DELPAGE);
569
-            }
570
-        } else {
571
-
572
-            // Заголовок админки
573
-            xoops_cp_header();
574
-            // Меню
575
-            $adminObject->displayNavigation(basename(__FILE__));
576
-            // Форма
577
-            xoops_confirm(['ok' => 1, 'pageid' => $pageid, 'op' => 'delpage'], 'instr.php', sprintf(_AM_INSTRUCTION_FORMDELPAGE, $objInspage->getVar('title')));
578
-            // Текст внизу админки
579
-            include __DIR__ . '/admin_footer.php';
580
-        }
581
-
582
-        break;
583
-
584
-    // Удаление страницы
585
-    case 'updpage':
586
-
587
-        // Принимаем данные
588
-        $pageids = $_POST['pageids'];
589
-        $weights = $_POST['weights'];
590
-        // Перебираем все значения
591
-        foreach ($pageids as $key => $pageid) {
592
-
593
-            // Объявляем объект
594
-            $objInspage = $pageHandler->get($pageid);
595
-            // Устанавливаем вес
596
-            $objInspage->setVar('weight', $weights[$key]);
597
-            // Вставляем данные в БД
598
-            $pageHandler->insert($objInspage);
599
-            // Удаляем объект
600
-            unset($objInspage);
601
-        }
602
-        // Редирект
603
-        redirect_header('instr.php?op=viewinstr&instrid=' . $instrid, 3, _AM_INSTRUCTION_PAGESUPDATE);
604
-
605
-        break;
45
+	case 'main':
46
+
47
+		// Заголовок админки
48
+		xoops_cp_header();
49
+		// Меню
50
+		$adminObject->displayNavigation(basename(__FILE__));
51
+		$adminObject->addItemButton(_AM_INSTRUCTION_ADDINSTR, 'instr.php?op=editinstr', 'add');
52
+		$adminObject->displayButton('left', '');
53
+
54
+		//
55
+		$criteria = new \CriteriaCompo();
56
+
57
+		// Если была передана категория
58
+		if ($cid) {
59
+			// Добавляем в выборку ID категории
60
+			$criteria->add(new \Criteria('cid', $cid, '='));
61
+			// Получаем объект категории
62
+			$objInscat = $categoryHandler->get($cid);
63
+			// Если нет такой категории
64
+			if (!is_object($objInscat)) {
65
+				redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
66
+			}
67
+		}
68
+
69
+		// Число инструкций, удовлетворяющих данному условию
70
+		$numrows = $instructionHandler->getCount($criteria);
71
+
72
+		// Число выборки
73
+		$criteria->setLimit($limit);
74
+		// Начинасть с данного элемента
75
+		$criteria->setStart($start);
76
+		// Сортировать по
77
+		$criteria->setSort('instrid');
78
+		// Порядок сортировки
79
+		$criteria->setOrder('DESC');
80
+		// Находим все справки
81
+		$instr_arr = $instructionHandler->getall($criteria);
82
+		// Если записей больше чем $limit, то выводим пагинатор
83
+		if ($numrows > $limit) {
84
+			$pagenav = new \XoopsPageNav($numrows, $limit, $start, 'start', 'op=' . $op . '&amp;cid=' . $cid);
85
+			$pagenav = $pagenav->renderNav(4);
86
+		} else {
87
+			$pagenav = '';
88
+		}
89
+		// Выводим пагинатор в шаблон
90
+		$GLOBALS['xoopsTpl']->assign('insPagenav', $pagenav);
91
+
92
+		// Если есть записи
93
+		if ($numrows > 0) {
94
+			$class = 'odd';
95
+			foreach (array_keys($instr_arr) as $i) {
96
+
97
+				//
98
+				$class = ('even' === $class) ? 'odd' : 'even';
99
+				// ID
100
+				$insinstr_instrid = $instr_arr[$i]->getVar('instrid');
101
+				// Название
102
+				$insinstr_title = $instr_arr[$i]->getVar('title');
103
+				// Статус
104
+				$insinstr_status = $instr_arr[$i]->getVar('status');
105
+				// Количество страниц
106
+				$insinstr_pages = $instr_arr[$i]->getVar('pages');
107
+				// Категория
108
+				$insinstr_cat = $categoryHandler->get($instr_arr[$i]->getVar('cid'));
109
+
110
+				// Выводим в шаблон
111
+				$GLOBALS['xoopsTpl']->append('insListInstr', ['instrid' => $insinstr_instrid, 'title' => $insinstr_title, 'status' => $insinstr_status, 'pages' => $insinstr_pages, 'ctitle' => $insinstr_cat->getVar('title'), 'cid' => $insinstr_cat->getVar('cid'), 'class' => $class]);
112
+			}
113
+
114
+			//
115
+			$inshead = isset($objInscat) && is_object($objInscat) ? sprintf(_AM_INSTR_LISTINSTRINCAT, $objInscat->getVar('title')) : _AM_INSTR_LISTINSTRALL;
116
+			$GLOBALS['xoopsTpl']->assign('insHead', $inshead);
117
+			// Языковые константы
118
+			$GLOBALS['xoopsTpl']->assign('lang_title', _AM_INSTRUCTION_TITLE);
119
+			$GLOBALS['xoopsTpl']->assign('lang_cat', _AM_INSTRUCTION_CAT);
120
+			$GLOBALS['xoopsTpl']->assign('lang_pages', _AM_INSTRUCTION_PAGES);
121
+			$GLOBALS['xoopsTpl']->assign('lang_action', _AM_INSTRUCTION_ACTION);
122
+			$GLOBALS['xoopsTpl']->assign('lang_display', _AM_INSTRUCTION_DISPLAY);
123
+			$GLOBALS['xoopsTpl']->assign('lang_edit', _AM_INSTRUCTION_EDIT);
124
+			$GLOBALS['xoopsTpl']->assign('lang_del', _AM_INSTRUCTION_DEL);
125
+			$GLOBALS['xoopsTpl']->assign('lang_lock', _AM_INSTRUCTION_LOCK);
126
+			$GLOBALS['xoopsTpl']->assign('lang_unlock', _AM_INSTRUCTION_UNLOCK);
127
+			$GLOBALS['xoopsTpl']->assign('lang_addpage', _AM_INSTRUCTION_ADDPAGE);
128
+			$GLOBALS['xoopsTpl']->assign('lang_addinstr', _AM_INSTRUCTION_ADDINSTR);
129
+		}
130
+
131
+		// Выводим шаблон
132
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_instr.tpl');
133
+
134
+		// Текст внизу админки
135
+		include __DIR__ . '/admin_footer.php';
136
+
137
+		break;
138
+
139
+	// Редактирование категории
140
+	case 'editinstr':
141
+
142
+		// Заголовок админки
143
+		xoops_cp_header();
144
+		// Меню
145
+		$adminObject->displayNavigation(basename(__FILE__));
146
+
147
+		// Если мы редактируем инструкцию
148
+		if ($instrid) {
149
+			$objInsinstr = $instructionHandler->get($instrid);
150
+			// Создание новой страницы
151
+		} else {
152
+			$objInsinstr = $instructionHandler->create();
153
+		}
154
+
155
+		// Выводим шаблон
156
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editinstr.tpl');
157
+		$form = $objInsinstr->getForm('instr.php');
158
+		// Форма
159
+		echo $form->render();
160
+
161
+		// Текст внизу админки
162
+		include __DIR__ . '/admin_footer.php';
163
+
164
+		break;
165
+
166
+	// Сохранение инструкций
167
+	case 'saveinstr':
168
+
169
+		// Проверка
170
+		if (!$GLOBALS['xoopsSecurity']->check()) {
171
+			redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
172
+		}
173
+		// Если мы редактируем
174
+		if ($instrid) {
175
+			$objInsinstr = $instructionHandler->get($instrid);
176
+		} else {
177
+			$objInsinstr = $instructionHandler->create();
178
+			// Указываем дату создания
179
+			$objInsinstr->setVar('datecreated', $time);
180
+			// Указываем пользователя
181
+			$objInsinstr->setVar('uid', $uid);
182
+		}
183
+
184
+		$err         = false;
185
+		$message_err = '';
186
+		//
187
+		$instr_title       = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'title', '', 'string');
188
+		$instr_description = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'description', '', 'string');
189
+
190
+		// Дата обновления
191
+		$objInsinstr->setVar('dateupdated', $time);
192
+		//
193
+		$objInsinstr->setVar('cid', $cid);
194
+		$objInsinstr->setVar('title', $instr_title);
195
+		$objInsinstr->setVar('status', $_POST['status']);
196
+		$objInsinstr->setVar('description', $instr_description);
197
+		$objInsinstr->setVar('metakeywords', $_POST['metakeywords']);
198
+		$objInsinstr->setVar('metadescription', $_POST['metadescription']);
199
+
200
+		// Проверка категорий
201
+		if (!$cid) {
202
+			$err         = true;
203
+			$message_err .= _AM_INSTRUCTION_ERR_CAT . '<br>';
204
+		}
205
+		// Проверка названия
206
+		if (!$instr_title) {
207
+			$err         = true;
208
+			$message_err .= _AM_INSTR_ERR_TITLE . '<br>';
209
+		}
210
+		// Проверка основного текста
211
+		if (!$instr_description) {
212
+			$err         = true;
213
+			$message_err .= _AM_INSTR_ERR_DESCRIPTION . '<br>';
214
+		}
215
+
216
+		// Если были ошибки
217
+		if (true === $err) {
218
+			xoops_cp_header();
219
+			// Меню страницы
220
+			$adminObject->displayNavigation(basename(__FILE__));
221
+
222
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
223
+			// Выводим ошибки в шаблон
224
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
225
+			// Если небыло ошибок
226
+		} else {
227
+			// Вставляем данные в БД
228
+			if ($instructionHandler->insert($objInsinstr)) {
229
+				// Получаем ID созданной записи
230
+				$instrid_new = $instrid ?: $objInsinstr->getNewInstertId();
231
+				// Обновление даты в категории
232
+				$categoryHandler->updateDateupdated($cid, $time);
233
+				// Тэги
234
+				if (xoops_getModuleOption('usetag', 'instruction')) {
235
+					$tagHandler = xoops_getModuleHandler('tag', 'tag');
236
+					$tagHandler->updateByItem($_POST['tag'], $instrid_new, $GLOBALS['xoopsModule']->getVar('dirname'), 0);
237
+				}
238
+
239
+				// Если мы редактируем
240
+				if ($instrid) {
241
+					redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRMODIFY);
242
+				} else {
243
+					redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRADDED);
244
+				}
245
+			}
246
+			xoops_cp_header();
247
+			// Меню страницы
248
+			$adminObject->displayNavigation(basename(__FILE__));
249
+
250
+			// Выводим ошибки в шаблон
251
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInstructioncat->getHtmlErrors());
252
+		}
253
+		// Выводим шаблон
254
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_saveinstr.tpl');
255
+		// Выводим форму
256
+		$form = $objInsinstr->getForm();
257
+		// Форма
258
+		echo $form->render();
259
+		// Текст внизу админки
260
+		include __DIR__ . '/admin_footer.php';
261
+
262
+		break;
263
+
264
+	// Просмотр категории
265
+	case 'viewinstr':
266
+
267
+		// Подключаем трей
268
+		include_once XOOPS_ROOT_PATH . '/modules/instruction/class/tree.php';
269
+
270
+		// Заголовок админки
271
+		xoops_cp_header();
272
+		// Меню
273
+		$adminObject->displayNavigation(basename(__FILE__));
274
+		// Кнопки
275
+		$adminObject->addItemButton(_AM_INSTRUCTION_ADDPAGE, 'instr.php?op=editpage&instrid=' . $instrid, 'add');
276
+		$adminObject->displayButton('left', '');
277
+
278
+		//
279
+		$objInsinstr = $instructionHandler->get($instrid);
280
+
281
+		// Находим все страницы в данной инструкции
282
+		$criteria = new \CriteriaCompo();
283
+		$criteria->add(new \Criteria('instrid', $instrid, '='));
284
+		$criteria->setSort('weight');
285
+		$criteria->setOrder('ASC');
286
+		$ins_page = $pageHandler->getall($criteria);
287
+		//
288
+		unset($criteria);
289
+
290
+		// Инициализируем
291
+		$instree = new instruction\Tree($ins_page, 'pageid', 'pid');
292
+		// Выводим список страниц в шаблон
293
+		$GLOBALS['xoopsTpl']->assign('insListPage', $instree->makePagesAdmin($objInsinstr, '--'));
294
+
295
+		// Выводим шаблон
296
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_viewinstr.tpl');
297
+
298
+		// Текст внизу админки
299
+		include __DIR__ . '/admin_footer.php';
300
+
301
+		break;
302
+
303
+	// Удаление категории
304
+	case 'delinstr':
305
+
306
+		// Проверка на instrid
307
+		// ==================
308
+		// Объект инструкций
309
+		$objInsinstr = $instructionHandler->get($instrid);
310
+
311
+		// Нажали ли мы на кнопку OK
312
+		$ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
313
+		//
314
+		if ($ok) {
315
+
316
+			// Проверка
317
+			if (!$GLOBALS['xoopsSecurity']->check()) {
318
+				redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
319
+			}
320
+			// Находим все страницы, пренадлежащие этой инструкции
321
+			$criteria = new \CriteriaCompo();
322
+			$criteria->add(new \Criteria('instrid', $instrid));
323
+			$ins_page = $pageHandler->getall($criteria);
324
+			//
325
+			unset($criteria);
326
+			// Перебираем все страницы в данной инструкции
327
+			foreach (array_keys($ins_page) as $i) {
328
+				// Декримент комментов
329
+				// Делает дикримент одного коммента, а не всех в цикле...
330
+				// Удаляем комментарии
331
+				xoops_comment_delete($GLOBALS['xoopsModule']->getVar('mid'), $ins_page[$i]->getVar('pageid'));
332
+				// Декримент страниц (Опционально)
333
+				// ==============================
334
+
335
+				// Удаляем страницу
336
+				// Сделать проверку на удалённость страницы
337
+				// ========================================
338
+				$pageHandler->delete($ins_page[$i]);
339
+			}
340
+			// Пытаемся удалить инструкцию
341
+			if ($instructionHandler->delete($objInsinstr)) {
342
+				// Редирект
343
+				redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRDELETED);
344
+			} else {
345
+				// Редирект
346
+				redirect_header('instr.php', 3, _AM_INSTRUCTION_ERR_DELINSTR);
347
+			}
348
+		} else {
349
+			xoops_cp_header();
350
+
351
+			$adminObject->displayNavigation(basename(__FILE__));
352
+			// Форма
353
+			xoops_confirm(['ok' => 1, 'instrid' => $instrid, 'op' => 'delinstr'], 'instr.php', sprintf(_AM_INSTRUCTION_FORMDELINSTR, $objInsinstr->getVar('title')));
354
+			// Текст внизу админки
355
+			include __DIR__ . '/admin_footer.php';
356
+		}
357
+
358
+		break;
359
+
360
+	// Добавление страницы
361
+	case 'editpage':
362
+
363
+		// Заголовок админки
364
+		xoops_cp_header();
365
+		// Скрипты
366
+		$xoTheme->addScript(XOOPS_URL . '/modules/instruction/assets/js/admin.js');
367
+		// Меню
368
+		$adminObject->displayNavigation(basename(__FILE__));
369
+
370
+		// Если мы редактируем страницу
371
+		if ($pageid) {
372
+			// Получаем объект страницы
373
+			$objInspage = $pageHandler->get($pageid);
374
+			// ID инструкции
375
+			$instrid = $objInspage->getVar('instrid');
376
+			// Создание новой страницы
377
+		} elseif ($instrid) {
378
+			// Создаём объект страницы
379
+			$objInspage = $pageHandler->create();
380
+			// Устанавливаем родительскую страницу
381
+			$objInspage->setVar('pid', $pid);
382
+		} else {
383
+			redirect_header('instr.php', 3, _AM_INSTRUCTION_BADREQUEST);
384
+		}
385
+		// Форма
386
+		$form = $objInspage->getForm('instr.php', $instrid);
387
+		// Форма
388
+		echo $form->render();
389
+		// Выводим шаблон
390
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editpage.tpl');
391
+
392
+		// Текст внизу админки
393
+		include __DIR__ . '/admin_footer.php';
394
+
395
+		break;
396
+
397
+	// Сохранение страницы
398
+	case 'savepage':
399
+		// Ошибки
400
+		$err         = false;
401
+		$message_err = '';
402
+
403
+		// Проверка сессии
404
+		if (!$GLOBALS['xoopsSecurity']->check()) {
405
+			$err         = true;
406
+			$err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
407
+			$message_err .= $err_txt . '<br>';
408
+		}
409
+
410
+		// Если мы редактируем
411
+		if ($pageid) {
412
+			$objInspage = $pageHandler->get($pageid);
413
+		} elseif ($instrid) {
414
+			$objInspage = $pageHandler->create();
415
+			// Если мы создаём страницу необходимо указать к какой инструкции
416
+			$objInspage->setVar('instrid', $instrid);
417
+			// Указываем дату создания
418
+			$objInspage->setVar('datecreated', $time);
419
+			// Указываем пользователя
420
+			$objInspage->setVar('uid', $uid);
421
+		} else {
422
+			redirect_header('instr.php', 3, _AM_INSTRUCTION_BADREQUEST);
423
+		}
424
+
425
+		//
426
+		$page_title    = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'title', '', 'string');
427
+		$page_hometext = Xoopsmodules\instruction\Utility::cleanVars($_POST, 'hometext', '', 'string');
428
+
429
+		// Родительская страница
430
+		$objInspage->setVar('pid', $pid);
431
+		// Дата обновления
432
+		$objInspage->setVar('dateupdated', $time);
433
+		// Название страницы
434
+		$objInspage->setVar('title', $page_title);
435
+		// Вес страницы
436
+		$objInspage->setVar('weight', $weight);
437
+		// Основной текст
438
+		$objInspage->setVar('hometext', $page_hometext);
439
+		// Сноска
440
+		$objInspage->setVar('footnote', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'footnote', '', 'string'));
441
+		// Статус
442
+		$objInspage->setVar('status', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'status', 0, 'int'));
443
+		// Тип
444
+		$objInspage->setVar('type', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'type', 0, 'int'));
445
+		// Мета-теги описания
446
+		$objInspage->setVar('keywords', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'keywords', '', 'string'));
447
+		// Мета-теги ключевых слов
448
+		$objInspage->setVar('description', Xoopsmodules\instruction\Utility::cleanVars($_POST, 'description', '', 'string'));
449
+		//
450
+		$dosmiley = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
451
+		$doxcode  = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
452
+		$dobr     = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
453
+		$dohtml   = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
454
+		//$doimage = ( isset( $_POST['doimage'] ) && intval( $_POST['doimage'] ) > 0 ) ? 1 : 0;
455
+		$objInspage->setVar('dohtml', $dohtml);
456
+		$objInspage->setVar('dosmiley', $dosmiley);
457
+		$objInspage->setVar('doxcode', $doxcode);
458
+		//$objInspage->setVar( 'doimage', $doimage );
459
+		$objInspage->setVar('dobr', $dobr);
460
+
461
+		//
462
+		if (!$pageid && !$instrid) {
463
+			$err         = true;
464
+			$message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
465
+		}
466
+		// Проверка веса
467
+		if (0 == $weight) {
468
+			$err         = true;
469
+			$message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
470
+		}
471
+		// Проверка родительской страницы
472
+		if ($pageid && ($pageid == $pid)) {
473
+			$err         = true;
474
+			$message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
475
+		}
476
+		// Проверка названия
477
+		if (!$page_title) {
478
+			$err         = true;
479
+			$message_err .= _AM_INSTR_ERR_TITLE . '<br>';
480
+		}
481
+		// Проверка основного текста
482
+		if (!$page_hometext) {
483
+			$err         = true;
484
+			$message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
485
+		}
486
+
487
+		// Если были ошибки
488
+		if (true === $err) {
489
+			xoops_cp_header();
490
+			// Меню страницы
491
+			$adminObject->displayNavigation(basename(__FILE__));
492
+
493
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
494
+			// Выводим ошибки в шаблон
495
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
496
+			// Если небыло ошибок
497
+		} else {
498
+			// Вставляем данные в БД
499
+			if ($pageHandler->insert($objInspage)) {
500
+				// Ссылка для редиректа
501
+				$redirect_url = 'instr.php?op=viewinstr&amp;instrid=' . $instrid . '#pageid_' . $pid;
502
+				// Получаем ID инструкции
503
+				$instrid = $objInspage->getInstrid();
504
+				// Обновляем в инструкции число страниц и дату
505
+				$instructionHandler->updatePages($instrid);
506
+				// Если мы редактируем
507
+				if ($pageid) {
508
+					// Редирект
509
+					redirect_header($redirect_url, 3, _AM_INSTRUCTION_PAGEMODIFY);
510
+					// Если мы добавляем
511
+				} else {
512
+					// Инкримент комментов
513
+					$pageHandler->updateposts($uid, $_POST['status'], 'add');
514
+					// Редирект
515
+					redirect_header($redirect_url, 3, _AM_INSTRUCTION_PAGEADDED);
516
+				}
517
+			}
518
+			xoops_cp_header();
519
+			// Меню страницы
520
+			$adminObject->displayNavigation(basename(__FILE__));
521
+
522
+			// Выводим ошибки в шаблон
523
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInspage->getHtmlErrors());
524
+		}
525
+		// Скрипты
526
+		$xoTheme->addScript(XOOPS_URL . '/modules/instruction/assets/js/admin.js');
527
+		// Выводим шаблон
528
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_savepage.tpl');
529
+		// Выводим форму
530
+		$form = $objInspage->getForm('instr.php', $instrid);
531
+		// Форма
532
+		echo $form->render();
533
+		// Текст внизу админки
534
+		include __DIR__ . '/admin_footer.php';
535
+
536
+		break;
537
+
538
+	// Удаление страницы
539
+	case 'delpage':
540
+
541
+		// Проверка на pageid
542
+		// ==================
543
+
544
+		$objInspage = $pageHandler->get($pageid);
545
+		// Нажали ли мы на кнопку OK
546
+		$ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
547
+		// Если мы нажали на кнопку
548
+		if ($ok) {
549
+
550
+			// Проверка
551
+			if (!$GLOBALS['xoopsSecurity']->check()) {
552
+				redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
553
+			}
554
+			// ID инструкции
555
+			$page_instrid = $objInspage->getVar('instrid');
556
+			// Декримент комментов
557
+			$pageHandler->updateposts($objInspage->getVar('uid'), $objInspage->getVar('status'), 'delete');
558
+			// Пытаемся удалить страницу
559
+			if ($pageHandler->delete($objInspage)) {
560
+				// Обновляем в инструкции число страниц и дату
561
+				$instructionHandler->updatePages($page_instrid);
562
+				// Удаляем комментарии
563
+				xoops_comment_delete($GLOBALS['xoopsModule']->getVar('mid'), $pageid);
564
+				//
565
+				redirect_header('instr.php?op=viewinstr&amp;instrid=' . $page_instrid, 3, _AM_INSTRUCTION_PAGEDELETED);
566
+				// Если не смогли удалить страницу
567
+			} else {
568
+				redirect_header('instr.php?op=viewinstr&amp;instrid=' . $page_instrid, 3, _AM_INSTRUCTION_ERR_DELPAGE);
569
+			}
570
+		} else {
571
+
572
+			// Заголовок админки
573
+			xoops_cp_header();
574
+			// Меню
575
+			$adminObject->displayNavigation(basename(__FILE__));
576
+			// Форма
577
+			xoops_confirm(['ok' => 1, 'pageid' => $pageid, 'op' => 'delpage'], 'instr.php', sprintf(_AM_INSTRUCTION_FORMDELPAGE, $objInspage->getVar('title')));
578
+			// Текст внизу админки
579
+			include __DIR__ . '/admin_footer.php';
580
+		}
581
+
582
+		break;
583
+
584
+	// Удаление страницы
585
+	case 'updpage':
586
+
587
+		// Принимаем данные
588
+		$pageids = $_POST['pageids'];
589
+		$weights = $_POST['weights'];
590
+		// Перебираем все значения
591
+		foreach ($pageids as $key => $pageid) {
592
+
593
+			// Объявляем объект
594
+			$objInspage = $pageHandler->get($pageid);
595
+			// Устанавливаем вес
596
+			$objInspage->setVar('weight', $weights[$key]);
597
+			// Вставляем данные в БД
598
+			$pageHandler->insert($objInspage);
599
+			// Удаляем объект
600
+			unset($objInspage);
601
+		}
602
+		// Редирект
603
+		redirect_header('instr.php?op=viewinstr&instrid=' . $instrid, 3, _AM_INSTRUCTION_PAGESUPDATE);
604
+
605
+		break;
606 606
 
607 607
 }
Please login to merge, or discard this patch.