Completed
Push — master ( 5fe85d...a4e09c )
by Michael
01:40
created
submit.php 1 patch
Indentation   +191 added lines, -191 removed lines patch added patch discarded remove patch
@@ -36,195 +36,195 @@
 block discarded – undo
36 36
 
37 37
 switch ($op) {
38 38
 
39
-    case 'editpage':
40
-
41
-        // Задание тайтла
42
-        $xoopsOption['xoops_pagetitle'] = '';
43
-        // Шаблон
44
-        $GLOBALS['xoopsOption']['template_main'] = $moduleDirName . '_editpage.tpl';
45
-        // Заголовок
46
-        include_once $GLOBALS['xoops']->path('header.php');
47
-
48
-        // Если мы редактируем страницу
49
-        if ($pageid) {
50
-            // Получаем объект страницы
51
-            $objInspage = $inspageHandler->get($pageid);
52
-            // ID инструкции
53
-            $instrid = $objInspage->getVar('instrid');
54
-            // Объект инструкции
55
-            $objInsinstr = $insinstrHandler->get($instrid);
56
-            // Можно ли редактировать инструкцию в данной категории
57
-            if (!in_array($objInsinstr->getVar('cid'), $cat_edit)) {
58
-                redirect_header('index.php', 3, _MD_INSTRUCTION_NOPERM_EDITPAGE);
59
-            }
60
-            // Создание новой страницы
61
-        } elseif ($instrid) {
62
-
63
-            // Если нельзя добавлять не в одну категорию
64
-            //if( ! count( $cat_submit ) ) redirect_header( 'index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMIT_PAGE );
65
-            // Создаём объект страницы
66
-            $objInspage = $inspageHandler->create();
67
-            // Объект инструкции
68
-            $objInsinstr = $insinstrHandler->get($instrid);
69
-            // Можно ли добавлять инструкции в данной категории
70
-            if (!in_array($objInsinstr->getVar('cid'), $cat_submit)) {
71
-                redirect_header('index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMITPAGE);
72
-            }
73
-        } else {
74
-            redirect_header('index.php', 3, _MD_INSTRUCTION_BADREQUEST);
75
-        }
76
-
77
-        // Информация об инструкции
78
-
79
-        // Массив данных об инструкции
80
-        $instrs = [];
81
-        // ID инструкции
82
-        $instrs['instrid']     = $objInsinstr->getVar('instrid');
83
-        // Название страницы
84
-        $instrs['title']       = $objInsinstr->getVar('title');
85
-        // Описание
86
-        $instrs['description'] = $objInsinstr->getVar('description');
87
-
88
-        // Выводим в шаблон
89
-        $GLOBALS['xoopsTpl']->assign('insInstr', $instrs);
90
-
91
-        //
92
-
93
-        $form = $objInspage->getForm('submit.php', $instrid);
94
-        // Форма
95
-        $GLOBALS['xoopsTpl']->assign('insFormPage', $form->render());
96
-
97
-        // Подвал
98
-        include_once $GLOBALS['xoops']->path('footer.php');
99
-
100
-        break;
101
-    // Сохранение страницы
102
-    case 'savepage':
103
-
104
-        // Проверка
105
-        if (!$GLOBALS['xoopsSecurity']->check()) {
106
-            redirect_header('index.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
107
-        }
108
-
109
-        $err         = false;
110
-        $message_err = '';
111
-
112
-        // Если мы редактируем
113
-        if ($pageid) {
114
-            $objInspage  = $inspageHandler->get($pageid);
115
-            // Объект инструкции
116
-            $objInsinstr = $insinstrHandler->get($objInspage->getVar('instrid'));
117
-            // Можно ли редактировать инструкцию в данной категории
118
-            if (!in_array($objInsinstr->getVar('cid'), $cat_edit)) {
119
-                redirect_header('index.php', 3, _MD_INSTRUCTION_NOPERM_EDITPAGE);
120
-            }
121
-        } elseif ($instrid) {
122
-            $objInspage  = $inspageHandler->create();
123
-            // Объект инструкции
124
-            $objInsinstr = $insinstrHandler->get($instrid);
125
-            // Можно ли добавлять инструкции в данной категории
126
-            if (!in_array($objInsinstr->getVar('cid'), $cat_submit)) {
127
-                redirect_header('index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMITPAGE);
128
-            }
129
-
130
-            // Если мы создаём страницу необходимо указать к какой инструкции
131
-            $objInspage->setVar('instrid', $instrid);
132
-            // Указываем дату создания
133
-            $objInspage->setVar('datecreated', $time);
134
-            // Указываем пользователя
135
-            $objInspage->setVar('uid', $uid);
136
-        } else {
137
-            redirect_header('index.php', 3, _MD_INSTRUCTION_BADREQUEST);
138
-        }
139
-
140
-        // Родительская страница
141
-        $objInspage->setVar('pid', $pid);
142
-        // Дата обновления
143
-        $objInspage->setVar('dateupdated', $time);
144
-        //
145
-        $objInspage->setVar('title', $_POST['title']);
146
-        $objInspage->setVar('weight', $weight);
147
-        $objInspage->setVar('hometext', $_POST['hometext']);
148
-        // Сноска
149
-        $objInspage->setVar('footnote', $_POST['footnote']);
150
-        $objInspage->setVar('status', $_POST['status']);
151
-        $objInspage->setVar('keywords', $_POST['keywords']);
152
-        $objInspage->setVar('description', $_POST['description']);
153
-
154
-        // Проверка категорий
155
-        if (!$pageid && !$instrid) {
156
-            $err         = true;
157
-            $message_err .= _MD_INSTRUCTION_ERR_INSTR . '<br>';
158
-        }
159
-        // Проверка веса
160
-        if (0 == $weight) {
161
-            $err         = true;
162
-            $message_err .= _MD_INSTRUCTION_ERR_WEIGHT . '<br>';
163
-        }
164
-        // Проверка родительской страницы
165
-        if ($pageid && ($pageid == $pid)) {
166
-            $err         = true;
167
-            $message_err .= _MD_INSTRUCTION_ERR_PPAGE . '<br>';
168
-        }
169
-        // Если были ошибки
170
-        if (true === $err) {
171
-            // Задание тайтла
172
-            $xoopsOption['xoops_pagetitle'] = '';
173
-            // Шаблон
174
-            $GLOBALS['xoopsOption']['template_main'] = $moduleDirName . '_savepage.tpl';
175
-            // Заголовок
176
-            include_once $GLOBALS['xoops']->path('header.php');
177
-            // Сообщение об ошибке
178
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
179
-            // Выводим ошибки в шаблон
180
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
181
-            // Если небыло ошибок
182
-        } else {
183
-            // Вставляем данные в БД
184
-            if ($inspageHandler->insert($objInspage)) {
185
-                // Если мы редактируем
186
-                if ($pageid) {
187
-                    // Обновление даты
188
-                    $sql = sprintf('UPDATE %s SET `dateupdated` = %u WHERE `instrid` = %u', $GLOBALS['xoopsDB']->prefix($moduleDirName . '_instr'), $time, $instrid);
189
-                    $GLOBALS['xoopsDB']->query($sql);
190
-                    // Запись в лог
191
-                    xoops_loadLanguage('main', 'userslog');
192
-                    //userslog_insert( $objInsinstr->getVar('title') . ': ' . $objInspage->getVar('title'), _MD_USERSLOG_MODIFY_PAGE );
193
-                    //
194
-                    redirect_header('index.php', 3, _MD_INSTRUCTION_PAGEMODIFY);
195
-                    // Если мы добавляем
196
-                } else {
197
-                    // Инкримент комментов
198
-                    $inspageHandler->updateposts($uid, $_POST['status'], 'add');
199
-                    // Инкремент страниц и обновление даты
200
-                    $sql = sprintf('UPDATE %s SET `pages` = `pages` + 1, `dateupdated` = %u WHERE `instrid` = %u', $GLOBALS['xoopsDB']->prefix($moduleDirName . '_instr'), $time, $instrid);
201
-                    $GLOBALS['xoopsDB']->query($sql);
202
-                    // Запись в лог
203
-                    xoops_loadLanguage('main', 'userslog');
204
-                    //userslog_insert( $objInsinstr->getVar('title') . ': ' . $objInspage->getVar('title'), _MD_USERSLOG_SUBMIT_PAGE );
205
-                    //
206
-                    redirect_header('index.php', 3, _MD_INSTRUCTION_PAGEADDED);
207
-                }
208
-            }
209
-
210
-            // Задание тайтла
211
-            $xoopsOption['xoops_pagetitle'] = '';
212
-            // Шаблон
213
-            $GLOBALS['xoopsOption']['template_main'] = $moduleDirName . '_savepage.tpl';
214
-            // Заголовок
215
-            include_once $GLOBALS['xoops']->path('header.php');
216
-
217
-            // Выводим ошибки в шаблон
218
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInspage->getHtmlErrors());
219
-        }
220
-        // Получаем форму
221
-        $form = $objInspage->getForm('submit.php', $instrid);
222
-
223
-        // Форма
224
-        $GLOBALS['xoopsTpl']->assign('insFormPage', $form->render());
225
-
226
-        // Подвал
227
-        include_once $GLOBALS['xoops']->path('footer.php');
228
-
229
-        break;
39
+	case 'editpage':
40
+
41
+		// Задание тайтла
42
+		$xoopsOption['xoops_pagetitle'] = '';
43
+		// Шаблон
44
+		$GLOBALS['xoopsOption']['template_main'] = $moduleDirName . '_editpage.tpl';
45
+		// Заголовок
46
+		include_once $GLOBALS['xoops']->path('header.php');
47
+
48
+		// Если мы редактируем страницу
49
+		if ($pageid) {
50
+			// Получаем объект страницы
51
+			$objInspage = $inspageHandler->get($pageid);
52
+			// ID инструкции
53
+			$instrid = $objInspage->getVar('instrid');
54
+			// Объект инструкции
55
+			$objInsinstr = $insinstrHandler->get($instrid);
56
+			// Можно ли редактировать инструкцию в данной категории
57
+			if (!in_array($objInsinstr->getVar('cid'), $cat_edit)) {
58
+				redirect_header('index.php', 3, _MD_INSTRUCTION_NOPERM_EDITPAGE);
59
+			}
60
+			// Создание новой страницы
61
+		} elseif ($instrid) {
62
+
63
+			// Если нельзя добавлять не в одну категорию
64
+			//if( ! count( $cat_submit ) ) redirect_header( 'index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMIT_PAGE );
65
+			// Создаём объект страницы
66
+			$objInspage = $inspageHandler->create();
67
+			// Объект инструкции
68
+			$objInsinstr = $insinstrHandler->get($instrid);
69
+			// Можно ли добавлять инструкции в данной категории
70
+			if (!in_array($objInsinstr->getVar('cid'), $cat_submit)) {
71
+				redirect_header('index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMITPAGE);
72
+			}
73
+		} else {
74
+			redirect_header('index.php', 3, _MD_INSTRUCTION_BADREQUEST);
75
+		}
76
+
77
+		// Информация об инструкции
78
+
79
+		// Массив данных об инструкции
80
+		$instrs = [];
81
+		// ID инструкции
82
+		$instrs['instrid']     = $objInsinstr->getVar('instrid');
83
+		// Название страницы
84
+		$instrs['title']       = $objInsinstr->getVar('title');
85
+		// Описание
86
+		$instrs['description'] = $objInsinstr->getVar('description');
87
+
88
+		// Выводим в шаблон
89
+		$GLOBALS['xoopsTpl']->assign('insInstr', $instrs);
90
+
91
+		//
92
+
93
+		$form = $objInspage->getForm('submit.php', $instrid);
94
+		// Форма
95
+		$GLOBALS['xoopsTpl']->assign('insFormPage', $form->render());
96
+
97
+		// Подвал
98
+		include_once $GLOBALS['xoops']->path('footer.php');
99
+
100
+		break;
101
+	// Сохранение страницы
102
+	case 'savepage':
103
+
104
+		// Проверка
105
+		if (!$GLOBALS['xoopsSecurity']->check()) {
106
+			redirect_header('index.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
107
+		}
108
+
109
+		$err         = false;
110
+		$message_err = '';
111
+
112
+		// Если мы редактируем
113
+		if ($pageid) {
114
+			$objInspage  = $inspageHandler->get($pageid);
115
+			// Объект инструкции
116
+			$objInsinstr = $insinstrHandler->get($objInspage->getVar('instrid'));
117
+			// Можно ли редактировать инструкцию в данной категории
118
+			if (!in_array($objInsinstr->getVar('cid'), $cat_edit)) {
119
+				redirect_header('index.php', 3, _MD_INSTRUCTION_NOPERM_EDITPAGE);
120
+			}
121
+		} elseif ($instrid) {
122
+			$objInspage  = $inspageHandler->create();
123
+			// Объект инструкции
124
+			$objInsinstr = $insinstrHandler->get($instrid);
125
+			// Можно ли добавлять инструкции в данной категории
126
+			if (!in_array($objInsinstr->getVar('cid'), $cat_submit)) {
127
+				redirect_header('index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMITPAGE);
128
+			}
129
+
130
+			// Если мы создаём страницу необходимо указать к какой инструкции
131
+			$objInspage->setVar('instrid', $instrid);
132
+			// Указываем дату создания
133
+			$objInspage->setVar('datecreated', $time);
134
+			// Указываем пользователя
135
+			$objInspage->setVar('uid', $uid);
136
+		} else {
137
+			redirect_header('index.php', 3, _MD_INSTRUCTION_BADREQUEST);
138
+		}
139
+
140
+		// Родительская страница
141
+		$objInspage->setVar('pid', $pid);
142
+		// Дата обновления
143
+		$objInspage->setVar('dateupdated', $time);
144
+		//
145
+		$objInspage->setVar('title', $_POST['title']);
146
+		$objInspage->setVar('weight', $weight);
147
+		$objInspage->setVar('hometext', $_POST['hometext']);
148
+		// Сноска
149
+		$objInspage->setVar('footnote', $_POST['footnote']);
150
+		$objInspage->setVar('status', $_POST['status']);
151
+		$objInspage->setVar('keywords', $_POST['keywords']);
152
+		$objInspage->setVar('description', $_POST['description']);
153
+
154
+		// Проверка категорий
155
+		if (!$pageid && !$instrid) {
156
+			$err         = true;
157
+			$message_err .= _MD_INSTRUCTION_ERR_INSTR . '<br>';
158
+		}
159
+		// Проверка веса
160
+		if (0 == $weight) {
161
+			$err         = true;
162
+			$message_err .= _MD_INSTRUCTION_ERR_WEIGHT . '<br>';
163
+		}
164
+		// Проверка родительской страницы
165
+		if ($pageid && ($pageid == $pid)) {
166
+			$err         = true;
167
+			$message_err .= _MD_INSTRUCTION_ERR_PPAGE . '<br>';
168
+		}
169
+		// Если были ошибки
170
+		if (true === $err) {
171
+			// Задание тайтла
172
+			$xoopsOption['xoops_pagetitle'] = '';
173
+			// Шаблон
174
+			$GLOBALS['xoopsOption']['template_main'] = $moduleDirName . '_savepage.tpl';
175
+			// Заголовок
176
+			include_once $GLOBALS['xoops']->path('header.php');
177
+			// Сообщение об ошибке
178
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
179
+			// Выводим ошибки в шаблон
180
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
181
+			// Если небыло ошибок
182
+		} else {
183
+			// Вставляем данные в БД
184
+			if ($inspageHandler->insert($objInspage)) {
185
+				// Если мы редактируем
186
+				if ($pageid) {
187
+					// Обновление даты
188
+					$sql = sprintf('UPDATE %s SET `dateupdated` = %u WHERE `instrid` = %u', $GLOBALS['xoopsDB']->prefix($moduleDirName . '_instr'), $time, $instrid);
189
+					$GLOBALS['xoopsDB']->query($sql);
190
+					// Запись в лог
191
+					xoops_loadLanguage('main', 'userslog');
192
+					//userslog_insert( $objInsinstr->getVar('title') . ': ' . $objInspage->getVar('title'), _MD_USERSLOG_MODIFY_PAGE );
193
+					//
194
+					redirect_header('index.php', 3, _MD_INSTRUCTION_PAGEMODIFY);
195
+					// Если мы добавляем
196
+				} else {
197
+					// Инкримент комментов
198
+					$inspageHandler->updateposts($uid, $_POST['status'], 'add');
199
+					// Инкремент страниц и обновление даты
200
+					$sql = sprintf('UPDATE %s SET `pages` = `pages` + 1, `dateupdated` = %u WHERE `instrid` = %u', $GLOBALS['xoopsDB']->prefix($moduleDirName . '_instr'), $time, $instrid);
201
+					$GLOBALS['xoopsDB']->query($sql);
202
+					// Запись в лог
203
+					xoops_loadLanguage('main', 'userslog');
204
+					//userslog_insert( $objInsinstr->getVar('title') . ': ' . $objInspage->getVar('title'), _MD_USERSLOG_SUBMIT_PAGE );
205
+					//
206
+					redirect_header('index.php', 3, _MD_INSTRUCTION_PAGEADDED);
207
+				}
208
+			}
209
+
210
+			// Задание тайтла
211
+			$xoopsOption['xoops_pagetitle'] = '';
212
+			// Шаблон
213
+			$GLOBALS['xoopsOption']['template_main'] = $moduleDirName . '_savepage.tpl';
214
+			// Заголовок
215
+			include_once $GLOBALS['xoops']->path('header.php');
216
+
217
+			// Выводим ошибки в шаблон
218
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInspage->getHtmlErrors());
219
+		}
220
+		// Получаем форму
221
+		$form = $objInspage->getForm('submit.php', $instrid);
222
+
223
+		// Форма
224
+		$GLOBALS['xoopsTpl']->assign('insFormPage', $form->render());
225
+
226
+		// Подвал
227
+		include_once $GLOBALS['xoops']->path('footer.php');
228
+
229
+		break;
230 230
 }
Please login to merge, or discard this patch.
class/instruction.php 1 patch
Indentation   +145 added lines, -145 removed lines patch added patch discarded remove patch
@@ -8,153 +8,153 @@
 block discarded – undo
8 8
 
9 9
 class InstructionInstruction extends XoopsObject
10 10
 {
11
-    // constructor
12
-    public function __construct()
13
-    {
14
-        //		$this->XoopsObject();
15
-        $this->initVar('instrid', XOBJ_DTYPE_INT, null, false, 11);
16
-        $this->initVar('cid', XOBJ_DTYPE_INT, 0, false, 5);
17
-        $this->initVar('uid', XOBJ_DTYPE_INT, 0, false, 11);
18
-        $this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false);
19
-        $this->initVar('status', XOBJ_DTYPE_INT, 0, false, 1);
20
-        $this->initVar('pages', XOBJ_DTYPE_INT, 0, false, 11);
21
-        $this->initVar('description', XOBJ_DTYPE_TXTAREA, null, false);
22
-        $this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
23
-        $this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
24
-        $this->initVar('metakeywords', XOBJ_DTYPE_TXTBOX, '', false);
25
-        $this->initVar('metadescription', XOBJ_DTYPE_TXTBOX, '', false);
26
-
27
-        // Нет в таблице
28
-        $this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false);
29
-        $this->initVar('dobr', XOBJ_DTYPE_INT, 0, false);
30
-    }
31
-
32
-    public function InstructionInstruction()
33
-    {
34
-        $this->__construct();
35
-    }
36
-
37
-    public function get_new_enreg()
38
-    {
39
-        $new_enreg = $GLOBALS['xoopsDB']->getInsertId();
40
-        return $new_enreg;
41
-    }
42
-
43
-    // Получаем форму
44
-    public function getForm($action = false)
45
-    {
46
-        global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
47
-        // Если нет $action
48
-        if (false === $action) {
49
-            $action = xoops_getenv('REQUEST_URI');
50
-        }
51
-        // Подключаем формы
52
-        include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
53
-
54
-        // Название формы
55
-        $title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDINSTR) : sprintf(_AM_INSTRUCTION_FORMEDITINSTR);
56
-
57
-        // Форма
58
-        $form = new XoopsThemeForm($title, 'forminstr', $action, 'post', true);
59
-        //$form->setExtra('enctype="multipart/form-data"');
60
-        // Название инструкции
61
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
62
-        // Категория
63
-        $instructioncatHandler = xoops_getModuleHandler('category', 'instruction');
64
-        $criteria              = new CriteriaCompo();
65
-        $criteria->setSort('weight ASC, title');
66
-        $criteria->setOrder('ASC');
67
-        $instructioncat_arr = $instructioncatHandler->getall($criteria);
68
-        unset($criteria);
69
-        // Подключаем трей
70
-        include_once $GLOBALS['xoops']->path('class/tree.php');
71
-        $mytree = new XoopsObjectTree($instructioncat_arr, 'cid', 'pid');
72
-
73
-        // $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_CATC, $mytree->makeSelBox('cid', 'title', '--', $this->getVar('cid'), true)));
74
-        $moduleDirName = basename(__DIR__);
75
-        if (false !== ($moduleHelper = Xmf\Module\Helper::getHelper($moduleDirName))) {
76
-        } else {
77
-            $moduleHelper = Xmf\Module\Helper::getHelper('system');
78
-        }
79
-        $module = $moduleHelper->getModule();
80
-
81
-        if (InstructionUtility::checkVerXoops($module, '2.5.9')) {
82
-            $mytree_select = $mytree->makeSelectElement('cid', 'title', '--', $this->getVar('cid'), true, 0, '', _AM_INSTRUCTION_CATC);
83
-            $form->addElement($mytree_select);
84
-        } else {
85
-            $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_CATC, $mytree->makeSelBox('cid', 'title', '--', $this->getVar('cid'), true)));
86
-        }
87
-
88
-        // Описание
89
-        $form->addElement(InstructionUtility::getWysiwygForm(_AM_INSTRUCTION_DESCRIPTIONC, 'description', $this->getVar('description', 'e')), true);
90
-        // Статус
91
-        $form->addElement(new XoopsFormRadioYN(_AM_INSTRUCTION_ACTIVEC, 'status', $this->getVar('status')), false);
92
-
93
-        // Теги
94
-        if (is_dir('../../tag') || is_dir('../tag')) {
95
-            $dir_tag_ok = true;
96
-        } else {
97
-            $dir_tag_ok = false;
98
-        }
99
-        // Если влючена поддержка тегов и есть модуль tag
100
-        if (xoops_getModuleOption('usetag', 'instruction') && $dir_tag_ok) {
101
-            $itemIdForTag = $this->isNew() ? 0 : $this->getVar('instrid');
102
-            // Подключаем форму тегов
103
-            include_once $GLOBALS['xoops']->path('modules/tag/include/formtag.php');
104
-            // Добавляем элемент в форму
105
-            $form->addElement(new XoopsFormTag('tag', 60, 255, $itemIdForTag, 0));
106
-        }
107
-
108
-        // Мета-теги ключевых слов
109
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'metakeywords', 50, 255, $this->getVar('metakeywords')), false);
110
-        // Мета-теги описания
111
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'metadescription', 50, 255, $this->getVar('metadescription')), false);
112
-
113
-        // Если мы редактируем категорию
114
-        if (!$this->isNew()) {
115
-            $form->addElement(new XoopsFormHidden('instrid', $this->getVar('instrid')));
116
-        }
117
-        //
118
-        $form->addElement(new XoopsFormHidden('op', 'saveinstr'));
119
-        // Кнопка
120
-        $form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
121
-        return $form;
122
-    }
11
+	// constructor
12
+	public function __construct()
13
+	{
14
+		//		$this->XoopsObject();
15
+		$this->initVar('instrid', XOBJ_DTYPE_INT, null, false, 11);
16
+		$this->initVar('cid', XOBJ_DTYPE_INT, 0, false, 5);
17
+		$this->initVar('uid', XOBJ_DTYPE_INT, 0, false, 11);
18
+		$this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false);
19
+		$this->initVar('status', XOBJ_DTYPE_INT, 0, false, 1);
20
+		$this->initVar('pages', XOBJ_DTYPE_INT, 0, false, 11);
21
+		$this->initVar('description', XOBJ_DTYPE_TXTAREA, null, false);
22
+		$this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
23
+		$this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
24
+		$this->initVar('metakeywords', XOBJ_DTYPE_TXTBOX, '', false);
25
+		$this->initVar('metadescription', XOBJ_DTYPE_TXTBOX, '', false);
26
+
27
+		// Нет в таблице
28
+		$this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false);
29
+		$this->initVar('dobr', XOBJ_DTYPE_INT, 0, false);
30
+	}
31
+
32
+	public function InstructionInstruction()
33
+	{
34
+		$this->__construct();
35
+	}
36
+
37
+	public function get_new_enreg()
38
+	{
39
+		$new_enreg = $GLOBALS['xoopsDB']->getInsertId();
40
+		return $new_enreg;
41
+	}
42
+
43
+	// Получаем форму
44
+	public function getForm($action = false)
45
+	{
46
+		global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
47
+		// Если нет $action
48
+		if (false === $action) {
49
+			$action = xoops_getenv('REQUEST_URI');
50
+		}
51
+		// Подключаем формы
52
+		include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
53
+
54
+		// Название формы
55
+		$title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDINSTR) : sprintf(_AM_INSTRUCTION_FORMEDITINSTR);
56
+
57
+		// Форма
58
+		$form = new XoopsThemeForm($title, 'forminstr', $action, 'post', true);
59
+		//$form->setExtra('enctype="multipart/form-data"');
60
+		// Название инструкции
61
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
62
+		// Категория
63
+		$instructioncatHandler = xoops_getModuleHandler('category', 'instruction');
64
+		$criteria              = new CriteriaCompo();
65
+		$criteria->setSort('weight ASC, title');
66
+		$criteria->setOrder('ASC');
67
+		$instructioncat_arr = $instructioncatHandler->getall($criteria);
68
+		unset($criteria);
69
+		// Подключаем трей
70
+		include_once $GLOBALS['xoops']->path('class/tree.php');
71
+		$mytree = new XoopsObjectTree($instructioncat_arr, 'cid', 'pid');
72
+
73
+		// $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_CATC, $mytree->makeSelBox('cid', 'title', '--', $this->getVar('cid'), true)));
74
+		$moduleDirName = basename(__DIR__);
75
+		if (false !== ($moduleHelper = Xmf\Module\Helper::getHelper($moduleDirName))) {
76
+		} else {
77
+			$moduleHelper = Xmf\Module\Helper::getHelper('system');
78
+		}
79
+		$module = $moduleHelper->getModule();
80
+
81
+		if (InstructionUtility::checkVerXoops($module, '2.5.9')) {
82
+			$mytree_select = $mytree->makeSelectElement('cid', 'title', '--', $this->getVar('cid'), true, 0, '', _AM_INSTRUCTION_CATC);
83
+			$form->addElement($mytree_select);
84
+		} else {
85
+			$form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_CATC, $mytree->makeSelBox('cid', 'title', '--', $this->getVar('cid'), true)));
86
+		}
87
+
88
+		// Описание
89
+		$form->addElement(InstructionUtility::getWysiwygForm(_AM_INSTRUCTION_DESCRIPTIONC, 'description', $this->getVar('description', 'e')), true);
90
+		// Статус
91
+		$form->addElement(new XoopsFormRadioYN(_AM_INSTRUCTION_ACTIVEC, 'status', $this->getVar('status')), false);
92
+
93
+		// Теги
94
+		if (is_dir('../../tag') || is_dir('../tag')) {
95
+			$dir_tag_ok = true;
96
+		} else {
97
+			$dir_tag_ok = false;
98
+		}
99
+		// Если влючена поддержка тегов и есть модуль tag
100
+		if (xoops_getModuleOption('usetag', 'instruction') && $dir_tag_ok) {
101
+			$itemIdForTag = $this->isNew() ? 0 : $this->getVar('instrid');
102
+			// Подключаем форму тегов
103
+			include_once $GLOBALS['xoops']->path('modules/tag/include/formtag.php');
104
+			// Добавляем элемент в форму
105
+			$form->addElement(new XoopsFormTag('tag', 60, 255, $itemIdForTag, 0));
106
+		}
107
+
108
+		// Мета-теги ключевых слов
109
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'metakeywords', 50, 255, $this->getVar('metakeywords')), false);
110
+		// Мета-теги описания
111
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'metadescription', 50, 255, $this->getVar('metadescription')), false);
112
+
113
+		// Если мы редактируем категорию
114
+		if (!$this->isNew()) {
115
+			$form->addElement(new XoopsFormHidden('instrid', $this->getVar('instrid')));
116
+		}
117
+		//
118
+		$form->addElement(new XoopsFormHidden('op', 'saveinstr'));
119
+		// Кнопка
120
+		$form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
121
+		return $form;
122
+	}
123 123
 }
124 124
 
125 125
 class InstructionInstructionHandler extends XoopsPersistableObjectHandler
126 126
 {
127
-    public function __construct($db)
128
-    {
129
-        parent::__construct($db, 'instruction_instr', 'InstructionInstruction', 'instrid', 'title');
130
-    }
131
-
132
-    // Обновление даты обновления инструкций
133
-    public function updateDateupdated($instrid = 0, $time = null)
134
-    {
135
-        // Если не передали время
136
-        $time = null === $time ? time() : (int)$time;
137
-        //
138
-        $sql = sprintf('UPDATE `%s` SET `dateupdated` = %u WHERE `instrid` = %u', $this->table, $time, (int)$instrid);
139
-        //
140
-        return $this->db->query($sql);
141
-    }
142
-
143
-    // Обновление числа страниц
144
-    public function updatePages($instrid = 0)
145
-    {
146
-        $inspageHandler = xoops_getModuleHandler('page', 'instruction');
147
-        // Находим число активных страниц
148
-        $criteria = new CriteriaCompo();
149
-        $criteria->add(new Criteria('instrid', $instrid, '='));
150
-        $criteria->add(new Criteria('status ', '0', '>'));
151
-        // Число страниц
152
-        $pages = $inspageHandler->getCount($criteria);
153
-        unset($criteria);
154
-
155
-        // Сохраняем это число
156
-        $sql = sprintf('UPDATE `%s` SET `pages` = %u, `dateupdated` = %u WHERE `instrid` = %u', $this->table, $pages, time(), $instrid);
157
-        //
158
-        return $this->db->query($sql);
159
-    }
127
+	public function __construct($db)
128
+	{
129
+		parent::__construct($db, 'instruction_instr', 'InstructionInstruction', 'instrid', 'title');
130
+	}
131
+
132
+	// Обновление даты обновления инструкций
133
+	public function updateDateupdated($instrid = 0, $time = null)
134
+	{
135
+		// Если не передали время
136
+		$time = null === $time ? time() : (int)$time;
137
+		//
138
+		$sql = sprintf('UPDATE `%s` SET `dateupdated` = %u WHERE `instrid` = %u', $this->table, $time, (int)$instrid);
139
+		//
140
+		return $this->db->query($sql);
141
+	}
142
+
143
+	// Обновление числа страниц
144
+	public function updatePages($instrid = 0)
145
+	{
146
+		$inspageHandler = xoops_getModuleHandler('page', 'instruction');
147
+		// Находим число активных страниц
148
+		$criteria = new CriteriaCompo();
149
+		$criteria->add(new Criteria('instrid', $instrid, '='));
150
+		$criteria->add(new Criteria('status ', '0', '>'));
151
+		// Число страниц
152
+		$pages = $inspageHandler->getCount($criteria);
153
+		unset($criteria);
154
+
155
+		// Сохраняем это число
156
+		$sql = sprintf('UPDATE `%s` SET `pages` = %u, `dateupdated` = %u WHERE `instrid` = %u', $this->table, $pages, time(), $instrid);
157
+		//
158
+		return $this->db->query($sql);
159
+	}
160 160
 }
Please login to merge, or discard this patch.
class/page.php 1 patch
Indentation   +214 added lines, -214 removed lines patch added patch discarded remove patch
@@ -8,222 +8,222 @@
 block discarded – undo
8 8
 
9 9
 class InstructionPage extends XoopsObject
10 10
 {
11
-    // constructor
12
-    public function __construct()
13
-    {
14
-        //	$this->XoopsObject();
15
-        $this->initVar('pageid', XOBJ_DTYPE_INT, null, false, 11);
16
-        $this->initVar('pid', XOBJ_DTYPE_INT, 0, false, 11);
17
-        $this->initVar('instrid', XOBJ_DTYPE_INT, 0, false, 11);
18
-        $this->initVar('uid', XOBJ_DTYPE_INT, 0, false, 11);
19
-        $this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false, 255);
20
-        $this->initVar('status', XOBJ_DTYPE_INT, 1, false, 1);
21
-        $this->initVar('type', XOBJ_DTYPE_INT, 1, false, 1);
22
-        $this->initVar('hometext', XOBJ_DTYPE_TXTAREA, null, false);
23
-        $this->initVar('footnote', XOBJ_DTYPE_TXTAREA, '', false);
24
-        $this->initVar('weight', XOBJ_DTYPE_INT, 0, false, 11);
25
-        $this->initVar('keywords', XOBJ_DTYPE_TXTBOX, '', false, 255);
26
-        $this->initVar('description', XOBJ_DTYPE_TXTBOX, '', false, 255);
27
-        $this->initVar('comments', XOBJ_DTYPE_INT, 0, false, 11);
28
-        $this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
29
-        $this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
30
-        $this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false, 1);
31
-        $this->initVar('dosmiley', XOBJ_DTYPE_INT, 0, false, 1);
32
-        $this->initVar('doxcode', XOBJ_DTYPE_INT, 1, false, 1);
33
-        $this->initVar('dobr', XOBJ_DTYPE_INT, 0, false, 1);
34
-    }
35
-
36
-    public function InstructionPage()
37
-    {
38
-        $this->__construct();
39
-    }
40
-
41
-    public function get_new_enreg()
42
-    {
43
-        $new_enreg = $GLOBALS['xoopsDB']->getInsertId();
44
-        return $new_enreg;
45
-    }
46
-
47
-    // Получаем форму
48
-    public function getForm($action = false, $instrid = 0)
49
-    {
50
-        // Если нет $action
51
-        if (false === $action) {
52
-            $action = xoops_getenv('REQUEST_URI');
53
-        }
54
-
55
-        // Подключаем формы
56
-        include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
57
-        // Подключаем типы страниц
58
-        $pagetypes = include $GLOBALS['xoops']->path('modules/instruction/include/pagetypes.inc.php');
59
-
60
-        // Название формы
61
-        $title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDPAGE) : sprintf(_AM_INSTRUCTION_FORMEDITPAGE);
62
-
63
-        // Форма
64
-        $form = new XoopsThemeForm($title, 'instr_form_page', $action, 'post', true);
65
-        // Название
66
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
67
-
68
-        // Родительская страница
69
-        $inspageHandler = xoops_getModuleHandler('page', 'instruction');
70
-        $criteria       = new CriteriaCompo();
71
-        // ID инструкции в которой данная страница
72
-        $instrid_page = $this->isNew() ? $instrid : $this->getVar('instrid');
73
-        // Находим все страницы данной инструкции
74
-        $criteria->add(new Criteria('instrid', $instrid_page, '='));
75
-        // Если мы редактируем, то убрать текущую страницу из списка выбора родительской
76
-        if (!$this->isNew()) {
77
-            $criteria->add(new Criteria('pageid', $this->getVar('pageid'), '<>'));
78
-        }
79
-        $criteria->setSort('weight');
80
-        $criteria->setOrder('ASC');
81
-        $inspage_arr = $inspageHandler->getall($criteria);
82
-        unset($criteria);
83
-        // Подключаем трей
84
-        include_once $GLOBALS['xoops']->path('class/tree.php');
85
-        $mytree = new XoopsObjectTree($inspage_arr, 'pageid', 'pid');
86
-
87
-        // $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PPAGEC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
88
-        $moduleDirName = basename(__DIR__);
89
-        if (false !== ($moduleHelper = Xmf\Module\Helper::getHelper($moduleDirName))) {
90
-        } else {
91
-            $moduleHelper = Xmf\Module\Helper::getHelper('system');
92
-        }
93
-        $module = $moduleHelper->getModule();
94
-
95
-        if (InstructionUtility::checkVerXoops($module, '2.5.9')) {
96
-            $mytree_select = $mytree->makeSelectElement('pid', 'title', '--', $this->getVar('pid'), true, 0, '', _AM_INSTRUCTION_PPAGEC);
97
-            $form->addElement($mytree_select);
98
-        } else {
99
-            $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PPAGEC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
100
-        }
101
-
102
-        // Вес
103
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_WEIGHTC, 'weight', 5, 5, $this->getVar('weight')), true);
104
-        // Основной текст
105
-        $form->addElement(InstructionUtility::getWysiwygForm(_AM_INSTRUCTION_HOMETEXTC, 'hometext', $this->getVar('hometext', 'e')), true);
106
-        // Сноска
107
-        $form_footnote = new XoopsFormTextArea(_AM_INSTRUCTION_FOOTNOTEC, 'footnote', $this->getVar('footnote', 'e'));
108
-        $form_footnote->setDescription(_AM_INSTRUCTION_FOOTNOTE_DSC);
109
-        $form->addElement($form_footnote, false);
110
-        unset($form_footnote);
111
-        // Статус
112
-        $form->addElement(new XoopsFormRadioYN(_AM_INSTRUCTION_ACTIVEC, 'status', $this->getVar('status')), false);
113
-        // Тип страницы
114
-        $form_type = new XoopsFormSelect(_AM_INSTR_PAGETYPEC, 'type', $this->getVar('type'));
115
-        $form_type->setDescription(_AM_INSTR_PAGETYPEC_DESC);
116
-        $form_type->addOptionArray($pagetypes);
117
-        $form->addElement($form_type, false);
118
-        // Мета-теги ключевых слов
119
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'keywords', 50, 255, $this->getVar('keywords')), false);
120
-        // Мета-теги описания
121
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'description', 50, 255, $this->getVar('description')), false);
122
-
123
-        // Настройки
124
-        $option_tray = new XoopsFormElementTray(_OPTIONS, '<br>');
125
-        // HTML
126
-        $html_checkbox = new XoopsFormCheckBox('', 'dohtml', $this->getVar('dohtml'));
127
-        $html_checkbox->addOption(1, _AM_INSTR_DOHTML);
128
-        $option_tray->addElement($html_checkbox);
129
-        // Смайлы
130
-        $smiley_checkbox = new XoopsFormCheckBox('', 'dosmiley', $this->getVar('dosmiley'));
131
-        $smiley_checkbox->addOption(1, _AM_INSTR_DOSMILEY);
132
-        $option_tray->addElement($smiley_checkbox);
133
-        // ББ коды
134
-        $xcode_checkbox = new XoopsFormCheckBox('', 'doxcode', $this->getVar('doxcode'));
135
-        $xcode_checkbox->addOption(1, _AM_INSTR_DOXCODE);
136
-        $option_tray->addElement($xcode_checkbox);
137
-        //
138
-        $br_checkbox = new XoopsFormCheckBox('', 'dobr', $this->getVar('dobr'));
139
-        $br_checkbox->addOption(1, _AM_INSTR_DOAUTOWRAP);
140
-        $option_tray->addElement($br_checkbox);
141
-        //
142
-        $form->addElement($option_tray);
143
-
144
-        // Если мы редактируем страницу
145
-        if (!$this->isNew()) {
146
-            $form->addElement(new XoopsFormHidden('pageid', $this->getVar('pageid')));
147
-        } else {
148
-            $form->addElement(new XoopsFormHidden('pageid', 0));
149
-        }
150
-        // ID инструкции
151
-        if ($instrid) {
152
-            $form->addElement(new XoopsFormHidden('instrid', $instrid));
153
-        } else {
154
-            $form->addElement(new XoopsFormHidden('instrid', 0));
155
-        }
156
-        //
157
-        $form->addElement(new XoopsFormHidden('op', 'savepage'));
158
-        // Кнопка
159
-        $button_tray = new XoopsFormElementTray('', '');
160
-        $button_tray->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
161
-        $save_btn = new XoopsFormButton('', 'cancel', _AM_INSTR_SAVEFORM);
162
-        $save_btn->setExtra('onclick="instrSavePage();"');
163
-        $button_tray->addElement($save_btn);
164
-        $form->addElement($button_tray);
165
-
166
-        return $form;
167
-    }
168
-
169
-    //
170
-    public function getInstrid()
171
-    {
172
-        // Возвращаем ID инструкции
173
-        return $this->getVar('instrid');
174
-    }
11
+	// constructor
12
+	public function __construct()
13
+	{
14
+		//	$this->XoopsObject();
15
+		$this->initVar('pageid', XOBJ_DTYPE_INT, null, false, 11);
16
+		$this->initVar('pid', XOBJ_DTYPE_INT, 0, false, 11);
17
+		$this->initVar('instrid', XOBJ_DTYPE_INT, 0, false, 11);
18
+		$this->initVar('uid', XOBJ_DTYPE_INT, 0, false, 11);
19
+		$this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false, 255);
20
+		$this->initVar('status', XOBJ_DTYPE_INT, 1, false, 1);
21
+		$this->initVar('type', XOBJ_DTYPE_INT, 1, false, 1);
22
+		$this->initVar('hometext', XOBJ_DTYPE_TXTAREA, null, false);
23
+		$this->initVar('footnote', XOBJ_DTYPE_TXTAREA, '', false);
24
+		$this->initVar('weight', XOBJ_DTYPE_INT, 0, false, 11);
25
+		$this->initVar('keywords', XOBJ_DTYPE_TXTBOX, '', false, 255);
26
+		$this->initVar('description', XOBJ_DTYPE_TXTBOX, '', false, 255);
27
+		$this->initVar('comments', XOBJ_DTYPE_INT, 0, false, 11);
28
+		$this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
29
+		$this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
30
+		$this->initVar('dohtml', XOBJ_DTYPE_INT, 1, false, 1);
31
+		$this->initVar('dosmiley', XOBJ_DTYPE_INT, 0, false, 1);
32
+		$this->initVar('doxcode', XOBJ_DTYPE_INT, 1, false, 1);
33
+		$this->initVar('dobr', XOBJ_DTYPE_INT, 0, false, 1);
34
+	}
35
+
36
+	public function InstructionPage()
37
+	{
38
+		$this->__construct();
39
+	}
40
+
41
+	public function get_new_enreg()
42
+	{
43
+		$new_enreg = $GLOBALS['xoopsDB']->getInsertId();
44
+		return $new_enreg;
45
+	}
46
+
47
+	// Получаем форму
48
+	public function getForm($action = false, $instrid = 0)
49
+	{
50
+		// Если нет $action
51
+		if (false === $action) {
52
+			$action = xoops_getenv('REQUEST_URI');
53
+		}
54
+
55
+		// Подключаем формы
56
+		include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
57
+		// Подключаем типы страниц
58
+		$pagetypes = include $GLOBALS['xoops']->path('modules/instruction/include/pagetypes.inc.php');
59
+
60
+		// Название формы
61
+		$title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDPAGE) : sprintf(_AM_INSTRUCTION_FORMEDITPAGE);
62
+
63
+		// Форма
64
+		$form = new XoopsThemeForm($title, 'instr_form_page', $action, 'post', true);
65
+		// Название
66
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
67
+
68
+		// Родительская страница
69
+		$inspageHandler = xoops_getModuleHandler('page', 'instruction');
70
+		$criteria       = new CriteriaCompo();
71
+		// ID инструкции в которой данная страница
72
+		$instrid_page = $this->isNew() ? $instrid : $this->getVar('instrid');
73
+		// Находим все страницы данной инструкции
74
+		$criteria->add(new Criteria('instrid', $instrid_page, '='));
75
+		// Если мы редактируем, то убрать текущую страницу из списка выбора родительской
76
+		if (!$this->isNew()) {
77
+			$criteria->add(new Criteria('pageid', $this->getVar('pageid'), '<>'));
78
+		}
79
+		$criteria->setSort('weight');
80
+		$criteria->setOrder('ASC');
81
+		$inspage_arr = $inspageHandler->getall($criteria);
82
+		unset($criteria);
83
+		// Подключаем трей
84
+		include_once $GLOBALS['xoops']->path('class/tree.php');
85
+		$mytree = new XoopsObjectTree($inspage_arr, 'pageid', 'pid');
86
+
87
+		// $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PPAGEC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
88
+		$moduleDirName = basename(__DIR__);
89
+		if (false !== ($moduleHelper = Xmf\Module\Helper::getHelper($moduleDirName))) {
90
+		} else {
91
+			$moduleHelper = Xmf\Module\Helper::getHelper('system');
92
+		}
93
+		$module = $moduleHelper->getModule();
94
+
95
+		if (InstructionUtility::checkVerXoops($module, '2.5.9')) {
96
+			$mytree_select = $mytree->makeSelectElement('pid', 'title', '--', $this->getVar('pid'), true, 0, '', _AM_INSTRUCTION_PPAGEC);
97
+			$form->addElement($mytree_select);
98
+		} else {
99
+			$form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PPAGEC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
100
+		}
101
+
102
+		// Вес
103
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_WEIGHTC, 'weight', 5, 5, $this->getVar('weight')), true);
104
+		// Основной текст
105
+		$form->addElement(InstructionUtility::getWysiwygForm(_AM_INSTRUCTION_HOMETEXTC, 'hometext', $this->getVar('hometext', 'e')), true);
106
+		// Сноска
107
+		$form_footnote = new XoopsFormTextArea(_AM_INSTRUCTION_FOOTNOTEC, 'footnote', $this->getVar('footnote', 'e'));
108
+		$form_footnote->setDescription(_AM_INSTRUCTION_FOOTNOTE_DSC);
109
+		$form->addElement($form_footnote, false);
110
+		unset($form_footnote);
111
+		// Статус
112
+		$form->addElement(new XoopsFormRadioYN(_AM_INSTRUCTION_ACTIVEC, 'status', $this->getVar('status')), false);
113
+		// Тип страницы
114
+		$form_type = new XoopsFormSelect(_AM_INSTR_PAGETYPEC, 'type', $this->getVar('type'));
115
+		$form_type->setDescription(_AM_INSTR_PAGETYPEC_DESC);
116
+		$form_type->addOptionArray($pagetypes);
117
+		$form->addElement($form_type, false);
118
+		// Мета-теги ключевых слов
119
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'keywords', 50, 255, $this->getVar('keywords')), false);
120
+		// Мета-теги описания
121
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'description', 50, 255, $this->getVar('description')), false);
122
+
123
+		// Настройки
124
+		$option_tray = new XoopsFormElementTray(_OPTIONS, '<br>');
125
+		// HTML
126
+		$html_checkbox = new XoopsFormCheckBox('', 'dohtml', $this->getVar('dohtml'));
127
+		$html_checkbox->addOption(1, _AM_INSTR_DOHTML);
128
+		$option_tray->addElement($html_checkbox);
129
+		// Смайлы
130
+		$smiley_checkbox = new XoopsFormCheckBox('', 'dosmiley', $this->getVar('dosmiley'));
131
+		$smiley_checkbox->addOption(1, _AM_INSTR_DOSMILEY);
132
+		$option_tray->addElement($smiley_checkbox);
133
+		// ББ коды
134
+		$xcode_checkbox = new XoopsFormCheckBox('', 'doxcode', $this->getVar('doxcode'));
135
+		$xcode_checkbox->addOption(1, _AM_INSTR_DOXCODE);
136
+		$option_tray->addElement($xcode_checkbox);
137
+		//
138
+		$br_checkbox = new XoopsFormCheckBox('', 'dobr', $this->getVar('dobr'));
139
+		$br_checkbox->addOption(1, _AM_INSTR_DOAUTOWRAP);
140
+		$option_tray->addElement($br_checkbox);
141
+		//
142
+		$form->addElement($option_tray);
143
+
144
+		// Если мы редактируем страницу
145
+		if (!$this->isNew()) {
146
+			$form->addElement(new XoopsFormHidden('pageid', $this->getVar('pageid')));
147
+		} else {
148
+			$form->addElement(new XoopsFormHidden('pageid', 0));
149
+		}
150
+		// ID инструкции
151
+		if ($instrid) {
152
+			$form->addElement(new XoopsFormHidden('instrid', $instrid));
153
+		} else {
154
+			$form->addElement(new XoopsFormHidden('instrid', 0));
155
+		}
156
+		//
157
+		$form->addElement(new XoopsFormHidden('op', 'savepage'));
158
+		// Кнопка
159
+		$button_tray = new XoopsFormElementTray('', '');
160
+		$button_tray->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
161
+		$save_btn = new XoopsFormButton('', 'cancel', _AM_INSTR_SAVEFORM);
162
+		$save_btn->setExtra('onclick="instrSavePage();"');
163
+		$button_tray->addElement($save_btn);
164
+		$form->addElement($button_tray);
165
+
166
+		return $form;
167
+	}
168
+
169
+	//
170
+	public function getInstrid()
171
+	{
172
+		// Возвращаем ID инструкции
173
+		return $this->getVar('instrid');
174
+	}
175 175
 }
176 176
 
177 177
 class InstructionPageHandler extends XoopsPersistableObjectHandler
178 178
 {
179
-    public function __construct($db)
180
-    {
181
-        parent::__construct($db, 'instruction_page', 'InstructionPage', 'pageid', 'title');
182
-    }
183
-
184
-    /**
185
-     * Generate function for update user post
186
-     *
187
-     * @ Update user post count after send approve content
188
-     * @ Update user post count after change status content
189
-     * @ Update user post count after delete content
190
-     */
191
-    public function updateposts($uid, $status, $action)
192
-    {
193
-        //
194
-        switch ($action) {
195
-            // Добавление страницы
196
-            case 'add':
197
-                if ($uid && $status) {
198
-                    $user          = new xoopsUser($uid);
199
-                    $memberHandler = xoops_getHandler('member');
200
-                    // Добавялем +1 к комментам
201
-                    $memberHandler->updateUserByField($user, 'posts', $user->getVar('posts') + 1);
202
-                }
203
-                break;
204
-            // Удаление страницы
205
-            case 'delete':
206
-                if ($uid && $status) {
207
-                    $user          = new xoopsUser($uid);
208
-                    $memberHandler = xoops_getHandler('member');
209
-                    // Декримент комментов
210
-                    //$user->setVar( 'posts', $user->getVar( 'posts' ) - 1 );
211
-                    // Сохраняем
212
-                    $memberHandler->updateUserByField($user, 'posts', $user->getVar('posts') - 1);
213
-                }
214
-                break;
215
-
216
-            case 'status':
217
-                if ($uid) {
218
-                    $user          = new xoopsUser($uid);
219
-                    $memberHandler = xoops_getHandler('member');
220
-                    if ($status) {
221
-                        $memberHandler->updateUserByField($user, 'posts', $user->getVar('posts') - 1);
222
-                    } else {
223
-                        $memberHandler->updateUserByField($user, 'posts', $user->getVar('posts') + 1);
224
-                    }
225
-                }
226
-                break;
227
-        }
228
-    }
179
+	public function __construct($db)
180
+	{
181
+		parent::__construct($db, 'instruction_page', 'InstructionPage', 'pageid', 'title');
182
+	}
183
+
184
+	/**
185
+	 * Generate function for update user post
186
+	 *
187
+	 * @ Update user post count after send approve content
188
+	 * @ Update user post count after change status content
189
+	 * @ Update user post count after delete content
190
+	 */
191
+	public function updateposts($uid, $status, $action)
192
+	{
193
+		//
194
+		switch ($action) {
195
+			// Добавление страницы
196
+			case 'add':
197
+				if ($uid && $status) {
198
+					$user          = new xoopsUser($uid);
199
+					$memberHandler = xoops_getHandler('member');
200
+					// Добавялем +1 к комментам
201
+					$memberHandler->updateUserByField($user, 'posts', $user->getVar('posts') + 1);
202
+				}
203
+				break;
204
+			// Удаление страницы
205
+			case 'delete':
206
+				if ($uid && $status) {
207
+					$user          = new xoopsUser($uid);
208
+					$memberHandler = xoops_getHandler('member');
209
+					// Декримент комментов
210
+					//$user->setVar( 'posts', $user->getVar( 'posts' ) - 1 );
211
+					// Сохраняем
212
+					$memberHandler->updateUserByField($user, 'posts', $user->getVar('posts') - 1);
213
+				}
214
+				break;
215
+
216
+			case 'status':
217
+				if ($uid) {
218
+					$user          = new xoopsUser($uid);
219
+					$memberHandler = xoops_getHandler('member');
220
+					if ($status) {
221
+						$memberHandler->updateUserByField($user, 'posts', $user->getVar('posts') - 1);
222
+					} else {
223
+						$memberHandler->updateUserByField($user, 'posts', $user->getVar('posts') + 1);
224
+					}
225
+				}
226
+				break;
227
+		}
228
+	}
229 229
 }
Please login to merge, or discard this patch.
class/category.php 1 patch
Indentation   +169 added lines, -169 removed lines patch added patch discarded remove patch
@@ -11,56 +11,56 @@  discard block
 block discarded – undo
11 11
 
12 12
 class InstructionCategory extends XoopsObject
13 13
 {
14
-    // constructor
15
-    public function __construct()
16
-    {
17
-        //		$this->XoopsObject();
18
-        $this->initVar('cid', XOBJ_DTYPE_INT, null, false, 5);
19
-        $this->initVar('pid', XOBJ_DTYPE_INT, 0, false, 5);
20
-        $this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false);
21
-        $this->initVar('imgurl', XOBJ_DTYPE_TXTBOX, '', false);
22
-        $this->initVar('description', XOBJ_DTYPE_TXTAREA, null, false);
23
-        $this->initVar('weight', XOBJ_DTYPE_INT, 0, false, 11);
24
-        $this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
25
-        $this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
26
-        $this->initVar('metakeywords', XOBJ_DTYPE_TXTBOX, '', false);
27
-        $this->initVar('metadescription', XOBJ_DTYPE_TXTBOX, '', false);
28
-    }
29
-
30
-    public function InstructionCategory()
31
-    {
32
-        $this->__construct();
33
-    }
34
-
35
-    public function get_new_enreg()
36
-    {
37
-        $new_enreg = $GLOBALS['xoopsDB']->getInsertId();
38
-        return $new_enreg;
39
-    }
40
-
41
-    // Получаем форму
42
-    public function getForm($action = false)
43
-    {
44
-        //global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
45
-        // Если нет $action
46
-        if (false === $action) {
47
-            $action = xoops_getenv('REQUEST_URI');
48
-        }
49
-        // Подключаем формы
50
-        include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
51
-
52
-        // Название формы
53
-        $title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDCAT) : sprintf(_AM_INSTRUCTION_FORMEDITCAT);
54
-
55
-        // Форма
56
-        $form = new XoopsThemeForm($title, 'formcat', $action, 'post', true);
57
-        //$form->setExtra('enctype="multipart/form-data"');
58
-        // Название категории
59
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
60
-        // Редактор
61
-        $form->addElement(new XoopsFormTextArea(_AM_INSTRUCTION_DSCC, 'description', $this->getVar('description', 'e')), true);
62
-        //image
63
-        /*
14
+	// constructor
15
+	public function __construct()
16
+	{
17
+		//		$this->XoopsObject();
18
+		$this->initVar('cid', XOBJ_DTYPE_INT, null, false, 5);
19
+		$this->initVar('pid', XOBJ_DTYPE_INT, 0, false, 5);
20
+		$this->initVar('title', XOBJ_DTYPE_TXTBOX, '', false);
21
+		$this->initVar('imgurl', XOBJ_DTYPE_TXTBOX, '', false);
22
+		$this->initVar('description', XOBJ_DTYPE_TXTAREA, null, false);
23
+		$this->initVar('weight', XOBJ_DTYPE_INT, 0, false, 11);
24
+		$this->initVar('datecreated', XOBJ_DTYPE_INT, 0, false, 10);
25
+		$this->initVar('dateupdated', XOBJ_DTYPE_INT, 0, false, 10);
26
+		$this->initVar('metakeywords', XOBJ_DTYPE_TXTBOX, '', false);
27
+		$this->initVar('metadescription', XOBJ_DTYPE_TXTBOX, '', false);
28
+	}
29
+
30
+	public function InstructionCategory()
31
+	{
32
+		$this->__construct();
33
+	}
34
+
35
+	public function get_new_enreg()
36
+	{
37
+		$new_enreg = $GLOBALS['xoopsDB']->getInsertId();
38
+		return $new_enreg;
39
+	}
40
+
41
+	// Получаем форму
42
+	public function getForm($action = false)
43
+	{
44
+		//global $xoopsDB, $xoopsModule, $xoopsModuleConfig;
45
+		// Если нет $action
46
+		if (false === $action) {
47
+			$action = xoops_getenv('REQUEST_URI');
48
+		}
49
+		// Подключаем формы
50
+		include_once $GLOBALS['xoops']->path('class/xoopsformloader.php');
51
+
52
+		// Название формы
53
+		$title = $this->isNew() ? sprintf(_AM_INSTRUCTION_FORMADDCAT) : sprintf(_AM_INSTRUCTION_FORMEDITCAT);
54
+
55
+		// Форма
56
+		$form = new XoopsThemeForm($title, 'formcat', $action, 'post', true);
57
+		//$form->setExtra('enctype="multipart/form-data"');
58
+		// Название категории
59
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_TITLEC, 'title', 50, 255, $this->getVar('title')), true);
60
+		// Редактор
61
+		$form->addElement(new XoopsFormTextArea(_AM_INSTRUCTION_DSCC, 'description', $this->getVar('description', 'e')), true);
62
+		//image
63
+		/*
64 64
         $downloadscat_img = $this->getVar('imgurl') ? $this->getVar('imgurl') : 'blank.gif';
65 65
         $uploadirectory='/uploads/tdmdownloads/images/cats';
66 66
         $imgtray = new XoopsFormElementTray(_AM_TDMDOWNLOADS_FORMIMG,'<br>');
@@ -79,127 +79,127 @@  discard block
 block discarded – undo
79 79
         $imgtray->addElement($fileseltray);
80 80
         $form->addElement($imgtray);
81 81
         */
82
-        // Родительская категория
83
-        $instructioncatHandler = xoops_getModuleHandler('category', 'instruction');
84
-        $criteria              = new CriteriaCompo();
85
-        // Если мы редактируем, то убрать текущую категорию из списка выбора родительской
86
-        if (!$this->isNew()) {
87
-            $criteria->add(new Criteria('cid', $this->getVar('cid'), '<>'));
88
-        }
89
-        $criteria->setSort('weight ASC, title');
90
-        $criteria->setOrder('ASC');
91
-        $instructioncat_arr = $instructioncatHandler->getall($criteria);
92
-        unset($criteria);
93
-        // Подключаем трей
94
-        include_once $GLOBALS['xoops']->path('class/tree.php');
95
-        $mytree = new XoopsObjectTree($instructioncat_arr, 'cid', 'pid');
96
-
97
-        // $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PCATC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
98
-        $moduleDirName = basename(__DIR__);
99
-        if (false !== ($moduleHelper = Xmf\Module\Helper::getHelper($moduleDirName))) {
100
-        } else {
101
-            $moduleHelper = Xmf\Module\Helper::getHelper('system');
102
-        }
103
-        $module = $moduleHelper->getModule();
104
-
105
-        if (InstructionUtility::checkVerXoops($module, '2.5.9')) {
106
-            $mytree_select = $mytree->makeSelectElement('pid', 'title', '--', $this->getVar('pid'), true, 0, '', _AM_INSTRUCTION_PCATC);
107
-            $form->addElement($mytree_select);
108
-        } else {
109
-            $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PCATC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
110
-        }
111
-
112
-        // Вес
113
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_WEIGHTC, 'weight', 5, 5, $this->getVar('weight')), true);
114
-        // Мета-теги ключевых слов
115
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'metakeywords', 50, 255, $this->getVar('metakeywords')), false);
116
-        // Мета-теги описания
117
-        $form->addElement(new XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'metadescription', 50, 255, $this->getVar('metadescription')), false);
118
-
119
-        // ==========================================================
120
-        // ==========================================================
121
-
122
-        // Права
123
-        $memberHandler = xoops_getHandler('member');
124
-        $group_list    = $memberHandler->getGroupList();
125
-        $gpermHandler  = xoops_getHandler('groupperm');
126
-        $full_list     = array_keys($group_list);
127
-
128
-        // Права на просмотр
129
-        $groups_ids = [];
130
-        // Если мы редактируем
131
-        if (!$this->isNew()) {
132
-            $groups_ids        = $gpermHandler->getGroupIds('instruction_view', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
133
-            $groups_ids        = array_values($groups_ids);
134
-            $groups_instr_view = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_VIEW, 'groups_instr_view', $groups_ids);
135
-        } else {
136
-            $groups_instr_view = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_VIEW, 'groups_instr_view', $full_list);
137
-        }
138
-        $groups_instr_view->addOptionArray($group_list);
139
-        $form->addElement($groups_instr_view);
140
-
141
-        // Права на отправку
142
-        $groups_ids = [];
143
-        if (!$this->isNew()) {
144
-            $groups_ids          = $gpermHandler->getGroupIds('instruction_submit', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
145
-            $groups_ids          = array_values($groups_ids);
146
-            $groups_instr_submit = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_SUBMIT, 'groups_instr_submit', $groups_ids);
147
-        } else {
148
-            $groups_instr_submit = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_SUBMIT, 'groups_instr_submit', $full_list);
149
-        }
150
-        $groups_instr_submit->addOptionArray($group_list);
151
-        $form->addElement($groups_instr_submit);
152
-
153
-        // Права на редактирование
154
-        $groups_ids = [];
155
-        if (!$this->isNew()) {
156
-            $groups_ids        = $gpermHandler->getGroupIds('instruction_edit', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
157
-            $groups_ids        = array_values($groups_ids);
158
-            $groups_instr_edit = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_EDIT, 'groups_instr_edit', $groups_ids);
159
-        } else {
160
-            $groups_instr_edit = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_EDIT, 'groups_instr_edit', $full_list);
161
-        }
162
-        $groups_instr_edit->addOptionArray($group_list);
163
-        $form->addElement($groups_instr_edit);
164
-
165
-        // ==========================================================
166
-        // ==========================================================
167
-
168
-        // Если мы редактируем категорию
169
-        if (!$this->isNew()) {
170
-            $form->addElement(new XoopsFormHidden('cid', $this->getVar('cid')));
171
-            //$form->addElement( new XoopsFormHidden( 'catmodify', true));
172
-        }
173
-        //
174
-        $form->addElement(new XoopsFormHidden('op', 'savecat'));
175
-        // Кнопка
176
-        $button_tray = new XoopsFormElementTray('', '');
177
-        $submit_btn  = new XoopsFormButton('', 'submit', _SUBMIT, 'submit');
178
-        $button_tray->addElement($submit_btn);
179
-        $cancel_btn = new XoopsFormButton('', 'cancel', _CANCEL, 'cancel');
180
-        $cancel_btn->setExtra('onclick="javascript:history.go(-1);"');
181
-        $button_tray->addElement($cancel_btn);
182
-        $form->addElement($button_tray);
183
-
184
-        return $form;
185
-    }
82
+		// Родительская категория
83
+		$instructioncatHandler = xoops_getModuleHandler('category', 'instruction');
84
+		$criteria              = new CriteriaCompo();
85
+		// Если мы редактируем, то убрать текущую категорию из списка выбора родительской
86
+		if (!$this->isNew()) {
87
+			$criteria->add(new Criteria('cid', $this->getVar('cid'), '<>'));
88
+		}
89
+		$criteria->setSort('weight ASC, title');
90
+		$criteria->setOrder('ASC');
91
+		$instructioncat_arr = $instructioncatHandler->getall($criteria);
92
+		unset($criteria);
93
+		// Подключаем трей
94
+		include_once $GLOBALS['xoops']->path('class/tree.php');
95
+		$mytree = new XoopsObjectTree($instructioncat_arr, 'cid', 'pid');
96
+
97
+		// $form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PCATC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
98
+		$moduleDirName = basename(__DIR__);
99
+		if (false !== ($moduleHelper = Xmf\Module\Helper::getHelper($moduleDirName))) {
100
+		} else {
101
+			$moduleHelper = Xmf\Module\Helper::getHelper('system');
102
+		}
103
+		$module = $moduleHelper->getModule();
104
+
105
+		if (InstructionUtility::checkVerXoops($module, '2.5.9')) {
106
+			$mytree_select = $mytree->makeSelectElement('pid', 'title', '--', $this->getVar('pid'), true, 0, '', _AM_INSTRUCTION_PCATC);
107
+			$form->addElement($mytree_select);
108
+		} else {
109
+			$form->addElement(new XoopsFormLabel(_AM_INSTRUCTION_PCATC, $mytree->makeSelBox('pid', 'title', '--', $this->getVar('pid'), true)));
110
+		}
111
+
112
+		// Вес
113
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_WEIGHTC, 'weight', 5, 5, $this->getVar('weight')), true);
114
+		// Мета-теги ключевых слов
115
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_METAKEYWORDSC, 'metakeywords', 50, 255, $this->getVar('metakeywords')), false);
116
+		// Мета-теги описания
117
+		$form->addElement(new XoopsFormText(_AM_INSTRUCTION_METADESCRIPTIONC, 'metadescription', 50, 255, $this->getVar('metadescription')), false);
118
+
119
+		// ==========================================================
120
+		// ==========================================================
121
+
122
+		// Права
123
+		$memberHandler = xoops_getHandler('member');
124
+		$group_list    = $memberHandler->getGroupList();
125
+		$gpermHandler  = xoops_getHandler('groupperm');
126
+		$full_list     = array_keys($group_list);
127
+
128
+		// Права на просмотр
129
+		$groups_ids = [];
130
+		// Если мы редактируем
131
+		if (!$this->isNew()) {
132
+			$groups_ids        = $gpermHandler->getGroupIds('instruction_view', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
133
+			$groups_ids        = array_values($groups_ids);
134
+			$groups_instr_view = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_VIEW, 'groups_instr_view', $groups_ids);
135
+		} else {
136
+			$groups_instr_view = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_VIEW, 'groups_instr_view', $full_list);
137
+		}
138
+		$groups_instr_view->addOptionArray($group_list);
139
+		$form->addElement($groups_instr_view);
140
+
141
+		// Права на отправку
142
+		$groups_ids = [];
143
+		if (!$this->isNew()) {
144
+			$groups_ids          = $gpermHandler->getGroupIds('instruction_submit', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
145
+			$groups_ids          = array_values($groups_ids);
146
+			$groups_instr_submit = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_SUBMIT, 'groups_instr_submit', $groups_ids);
147
+		} else {
148
+			$groups_instr_submit = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_SUBMIT, 'groups_instr_submit', $full_list);
149
+		}
150
+		$groups_instr_submit->addOptionArray($group_list);
151
+		$form->addElement($groups_instr_submit);
152
+
153
+		// Права на редактирование
154
+		$groups_ids = [];
155
+		if (!$this->isNew()) {
156
+			$groups_ids        = $gpermHandler->getGroupIds('instruction_edit', $this->getVar('cid'), $GLOBALS['xoopsModule']->getVar('mid'));
157
+			$groups_ids        = array_values($groups_ids);
158
+			$groups_instr_edit = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_EDIT, 'groups_instr_edit', $groups_ids);
159
+		} else {
160
+			$groups_instr_edit = new XoopsFormCheckBox(_AM_INSTRUCTION_PERM_EDIT, 'groups_instr_edit', $full_list);
161
+		}
162
+		$groups_instr_edit->addOptionArray($group_list);
163
+		$form->addElement($groups_instr_edit);
164
+
165
+		// ==========================================================
166
+		// ==========================================================
167
+
168
+		// Если мы редактируем категорию
169
+		if (!$this->isNew()) {
170
+			$form->addElement(new XoopsFormHidden('cid', $this->getVar('cid')));
171
+			//$form->addElement( new XoopsFormHidden( 'catmodify', true));
172
+		}
173
+		//
174
+		$form->addElement(new XoopsFormHidden('op', 'savecat'));
175
+		// Кнопка
176
+		$button_tray = new XoopsFormElementTray('', '');
177
+		$submit_btn  = new XoopsFormButton('', 'submit', _SUBMIT, 'submit');
178
+		$button_tray->addElement($submit_btn);
179
+		$cancel_btn = new XoopsFormButton('', 'cancel', _CANCEL, 'cancel');
180
+		$cancel_btn->setExtra('onclick="javascript:history.go(-1);"');
181
+		$button_tray->addElement($cancel_btn);
182
+		$form->addElement($button_tray);
183
+
184
+		return $form;
185
+	}
186 186
 }
187 187
 
188 188
 class InstructionCategoryHandler extends XoopsPersistableObjectHandler
189 189
 {
190
-    public function __construct($db)
191
-    {
192
-        parent::__construct($db, 'instruction_cat', 'InstructionCategory', 'cid', 'title');
193
-    }
194
-
195
-    // Обновление даты обновления категории
196
-    public function updateDateupdated($cid = 0, $time = null)
197
-    {
198
-        // Если не передали время
199
-        $time = null === $time ? time() : (int)$time;
200
-        //
201
-        $sql = sprintf('UPDATE `%s` SET `dateupdated` = %u WHERE `cid` = %u', $this->table, $time, (int)$cid);
202
-        //
203
-        return $this->db->query($sql);
204
-    }
190
+	public function __construct($db)
191
+	{
192
+		parent::__construct($db, 'instruction_cat', 'InstructionCategory', 'cid', 'title');
193
+	}
194
+
195
+	// Обновление даты обновления категории
196
+	public function updateDateupdated($cid = 0, $time = null)
197
+	{
198
+		// Если не передали время
199
+		$time = null === $time ? time() : (int)$time;
200
+		//
201
+		$sql = sprintf('UPDATE `%s` SET `dateupdated` = %u WHERE `cid` = %u', $this->table, $time, (int)$cid);
202
+		//
203
+		return $this->db->query($sql);
204
+	}
205 205
 }
Please login to merge, or discard this patch.
xoops_version.php 1 patch
Indentation   +169 added lines, -169 removed lines patch added patch discarded remove patch
@@ -10,62 +10,62 @@  discard block
 block discarded – undo
10 10
 $xoops_url     = parse_url(XOOPS_URL);
11 11
 
12 12
 $modversion = [
13
-    'version'             => 1.07,
14
-    'module_status'       => 'RC1',
15
-    'release_date'        => '2017/10/04',
16
-    'name'                => _MI_INSTRUCTION_NAME,
17
-    'description'         => _MI_INSTRUCTION_DESC,
18
-    'credits'             => 'radio-hobby.org, www.shmel.org',
19
-    'author'              => 'andrey3761, Mamba, Aerograf',
20
-    'nickname'            => '',
21
-    'help'                => 'page=help',
22
-    'license'             => 'GNU GPL 2.0',
23
-    'license_url'         => 'www.gnu.org/licenses/gpl-2.0.html/',
24
-    'official'            => 0,
25
-    'image'               => 'assets/images/logoModule.png',
26
-    'dirname'             => $moduleDirName,
27
-    'modicons16'          => 'assets/images/icons/16',
28
-    'modicons32'          => 'assets/images/icons/32',
29
-    // О модуле
30
-    'module_website_url'  => 'radio-hobby.org',
31
-    'module_website_name' => 'radio-hobby.org',
13
+	'version'             => 1.07,
14
+	'module_status'       => 'RC1',
15
+	'release_date'        => '2017/10/04',
16
+	'name'                => _MI_INSTRUCTION_NAME,
17
+	'description'         => _MI_INSTRUCTION_DESC,
18
+	'credits'             => 'radio-hobby.org, www.shmel.org',
19
+	'author'              => 'andrey3761, Mamba, Aerograf',
20
+	'nickname'            => '',
21
+	'help'                => 'page=help',
22
+	'license'             => 'GNU GPL 2.0',
23
+	'license_url'         => 'www.gnu.org/licenses/gpl-2.0.html/',
24
+	'official'            => 0,
25
+	'image'               => 'assets/images/logoModule.png',
26
+	'dirname'             => $moduleDirName,
27
+	'modicons16'          => 'assets/images/icons/16',
28
+	'modicons32'          => 'assets/images/icons/32',
29
+	// О модуле
30
+	'module_website_url'  => 'radio-hobby.org',
31
+	'module_website_name' => 'radio-hobby.org',
32 32
 
33
-    'author_website_url'  => 'radio-hobby.org',
34
-    'author_website_name' => 'andrey3761',
35
-    'module_website_url'  => 'www.xoops.org',
36
-    'module_website_name' => 'Support site',
37
-    'min_php'             => '5.5',
38
-    'min_xoops'           => '2.5.8',
39
-    'min_admin'           => '1.1',
40
-    'min_db'              => ['mysql' => '5.5'],
41
-    // Файл базы данных
42
-    'sqlfile'             => ['mysql' => 'sql/mysql.sql'],
43
-    // Таблицы
44
-    'tables'              => [
45
-        $moduleDirName . '_cat',
46
-        $moduleDirName . '_instr',
47
-        $moduleDirName . '_page'
48
-    ],
49
-    // Имеет админку
50
-    'hasAdmin'            => 1,
51
-    'adminindex'          => 'admin/index.php',
52
-    'adminmenu'           => 'admin/menu.php',
53
-    'system_menu'         => 1,
54
-    // Меню
55
-    'hasMain'             => 1,
56
-    // Search
57
-    'hasSearch'           => 1,
58
-    'search'              => [
59
-        'file' => 'include/search.inc.php',
60
-        'func' => $moduleDirName . '_search',
61
-    ],
33
+	'author_website_url'  => 'radio-hobby.org',
34
+	'author_website_name' => 'andrey3761',
35
+	'module_website_url'  => 'www.xoops.org',
36
+	'module_website_name' => 'Support site',
37
+	'min_php'             => '5.5',
38
+	'min_xoops'           => '2.5.8',
39
+	'min_admin'           => '1.1',
40
+	'min_db'              => ['mysql' => '5.5'],
41
+	// Файл базы данных
42
+	'sqlfile'             => ['mysql' => 'sql/mysql.sql'],
43
+	// Таблицы
44
+	'tables'              => [
45
+		$moduleDirName . '_cat',
46
+		$moduleDirName . '_instr',
47
+		$moduleDirName . '_page'
48
+	],
49
+	// Имеет админку
50
+	'hasAdmin'            => 1,
51
+	'adminindex'          => 'admin/index.php',
52
+	'adminmenu'           => 'admin/menu.php',
53
+	'system_menu'         => 1,
54
+	// Меню
55
+	'hasMain'             => 1,
56
+	// Search
57
+	'hasSearch'           => 1,
58
+	'search'              => [
59
+		'file' => 'include/search.inc.php',
60
+		'func' => $moduleDirName . '_search',
61
+	],
62 62
 ];
63 63
 //  Help files
64 64
 $modversion['helpsection'] = [
65
-    ['name' => _MI_INSTRUCTION_HELP_OVERVIEW, 'link' => 'page=help'],
66
-    ['name' => _MI_INSTRUCTION_DISCLAIMER, 'link' => 'page=disclaimer'],
67
-    ['name' => _MI_INSTRUCTION_LICENSE, 'link' => 'page=license'],
68
-    ['name' => _MI_INSTRUCTION_SUPPORT, 'link' => 'page=support'],
65
+	['name' => _MI_INSTRUCTION_HELP_OVERVIEW, 'link' => 'page=help'],
66
+	['name' => _MI_INSTRUCTION_DISCLAIMER, 'link' => 'page=disclaimer'],
67
+	['name' => _MI_INSTRUCTION_LICENSE, 'link' => 'page=license'],
68
+	['name' => _MI_INSTRUCTION_SUPPORT, 'link' => 'page=support'],
69 69
 ];
70 70
 
71 71
 // Comments
@@ -78,144 +78,144 @@  discard block
 block discarded – undo
78 78
 
79 79
 // Templates
80 80
 $modversion['templates'] = [
81
-    [
82
-        'file'        => 'admin/' . $moduleDirName . '_admin_index.tpl',
83
-        'description' => ''
84
-    ],
85
-    [
86
-        'file'        => 'admin/' . $moduleDirName . '_admin_cat.tpl',
87
-        'description' => ''
88
-    ],
89
-    [
90
-        'file'        => 'admin/' . $moduleDirName . '_admin_editcat.tpl',
91
-        'description' => ''
92
-    ],
93
-    [
94
-        'file'        => 'admin/' . $moduleDirName . '_admin_savecat.tpl',
95
-        'description' => ''
96
-    ],
97
-    [
98
-        'file'        => 'admin/' . $moduleDirName . '_admin_viewcat.tpl',
99
-        'description' => ''
100
-    ],
101
-    [
102
-        'file'        => 'admin/' . $moduleDirName . '_admin_instr.tpl',
103
-        'description' => ''
104
-    ],
105
-    [
106
-        'file'        => 'admin/' . $moduleDirName . '_admin_editinstr.tpl',
107
-        'description' => ''
108
-    ],
109
-    [
110
-        'file'        => 'admin/' . $moduleDirName . '_admin_saveinstr.tpl',
111
-        'description' => ''
112
-    ],
113
-    [
114
-        'file'        => 'admin/' . $moduleDirName . '_admin_viewinstr.tpl',
115
-        'description' => ''
116
-    ],
117
-    [
118
-        'file'        => 'admin/' . $moduleDirName . '_admin_editpage.tpl',
119
-        'description' => ''
120
-    ],
121
-    [
122
-        'file'        => 'admin/' . $moduleDirName . '_admin_savepage.tpl',
123
-        'description' => ''
124
-    ],
125
-    [
126
-        'file'        => 'admin/' . $moduleDirName . '_admin_perm.tpl',
127
-        'description' => ''
128
-    ],
129
-    [
130
-        'file'        => 'admin/' . $moduleDirName . '_admin_about.tpl',
131
-        'description' => ''
132
-    ],
133
-    [
134
-        'file'        => $moduleDirName . '_page.tpl',
135
-        'description' => ''
136
-    ],
137
-    [
138
-        'file'        => $moduleDirName . '_instr.tpl',
139
-        'description' => ''
140
-    ],
141
-    [
142
-        'file'        => $moduleDirName . '_index.tpl',
143
-        'description' => ''
144
-    ],
145
-    [
146
-        'file'        => $moduleDirName . '_editpage.tpl',
147
-        'description' => ''
148
-    ],
149
-    [
150
-        'file'        => $moduleDirName . '_savepage.tpl',
151
-        'description' => ''
152
-    ],
81
+	[
82
+		'file'        => 'admin/' . $moduleDirName . '_admin_index.tpl',
83
+		'description' => ''
84
+	],
85
+	[
86
+		'file'        => 'admin/' . $moduleDirName . '_admin_cat.tpl',
87
+		'description' => ''
88
+	],
89
+	[
90
+		'file'        => 'admin/' . $moduleDirName . '_admin_editcat.tpl',
91
+		'description' => ''
92
+	],
93
+	[
94
+		'file'        => 'admin/' . $moduleDirName . '_admin_savecat.tpl',
95
+		'description' => ''
96
+	],
97
+	[
98
+		'file'        => 'admin/' . $moduleDirName . '_admin_viewcat.tpl',
99
+		'description' => ''
100
+	],
101
+	[
102
+		'file'        => 'admin/' . $moduleDirName . '_admin_instr.tpl',
103
+		'description' => ''
104
+	],
105
+	[
106
+		'file'        => 'admin/' . $moduleDirName . '_admin_editinstr.tpl',
107
+		'description' => ''
108
+	],
109
+	[
110
+		'file'        => 'admin/' . $moduleDirName . '_admin_saveinstr.tpl',
111
+		'description' => ''
112
+	],
113
+	[
114
+		'file'        => 'admin/' . $moduleDirName . '_admin_viewinstr.tpl',
115
+		'description' => ''
116
+	],
117
+	[
118
+		'file'        => 'admin/' . $moduleDirName . '_admin_editpage.tpl',
119
+		'description' => ''
120
+	],
121
+	[
122
+		'file'        => 'admin/' . $moduleDirName . '_admin_savepage.tpl',
123
+		'description' => ''
124
+	],
125
+	[
126
+		'file'        => 'admin/' . $moduleDirName . '_admin_perm.tpl',
127
+		'description' => ''
128
+	],
129
+	[
130
+		'file'        => 'admin/' . $moduleDirName . '_admin_about.tpl',
131
+		'description' => ''
132
+	],
133
+	[
134
+		'file'        => $moduleDirName . '_page.tpl',
135
+		'description' => ''
136
+	],
137
+	[
138
+		'file'        => $moduleDirName . '_instr.tpl',
139
+		'description' => ''
140
+	],
141
+	[
142
+		'file'        => $moduleDirName . '_index.tpl',
143
+		'description' => ''
144
+	],
145
+	[
146
+		'file'        => $moduleDirName . '_editpage.tpl',
147
+		'description' => ''
148
+	],
149
+	[
150
+		'file'        => $moduleDirName . '_savepage.tpl',
151
+		'description' => ''
152
+	],
153 153
 ];
154 154
 // Конфигурация
155 155
 $modversion['config'][] = [
156
-    'name'        => 'form_options',
157
-    'title'       => '_MI_INSTRUCTION_FORM_OPTIONS',
158
-    'description' => '_MI_INSTRUCTION_FORM_OPTIONS_DESC',
159
-    'formtype'    => 'select',
160
-    'valuetype'   => 'text',
161
-    'default'     => 'dhtml',
162
-    'options'     => array_flip($editorHandler->getList())
156
+	'name'        => 'form_options',
157
+	'title'       => '_MI_INSTRUCTION_FORM_OPTIONS',
158
+	'description' => '_MI_INSTRUCTION_FORM_OPTIONS_DESC',
159
+	'formtype'    => 'select',
160
+	'valuetype'   => 'text',
161
+	'default'     => 'dhtml',
162
+	'options'     => array_flip($editorHandler->getList())
163 163
 ];
164 164
 $modversion['config'][] = [
165
-    'name'        => 'perpageadmin',
166
-    'title'       => '_MI_INSTRUCTION_PERPAGEADMIN',
167
-    'description' => '_MI_INSTRUCTION_PERPAGEADMINDSC',
168
-    'formtype'    => 'textbox',
169
-    'valuetype'   => 'int',
170
-    'default'     => 20
165
+	'name'        => 'perpageadmin',
166
+	'title'       => '_MI_INSTRUCTION_PERPAGEADMIN',
167
+	'description' => '_MI_INSTRUCTION_PERPAGEADMINDSC',
168
+	'formtype'    => 'textbox',
169
+	'valuetype'   => 'int',
170
+	'default'     => 20
171 171
 ];
172 172
 $modversion['config'][] = [
173
-    'name'        => 'perpagemain',
174
-    'title'       => '_MI_INSTRUCTION_PERPAGEMAIN',
175
-    'description' => '_MI_INSTRUCTION_PERPAGEMAINDSC',
176
-    'formtype'    => 'textbox',
177
-    'valuetype'   => 'int',
178
-    'default'     => 20
173
+	'name'        => 'perpagemain',
174
+	'title'       => '_MI_INSTRUCTION_PERPAGEMAIN',
175
+	'description' => '_MI_INSTRUCTION_PERPAGEMAINDSC',
176
+	'formtype'    => 'textbox',
177
+	'valuetype'   => 'int',
178
+	'default'     => 20
179 179
 ];
180 180
 // Теги
181 181
 $modversion['config'][] = [
182
-    'name'        => 'usetag',
183
-    'title'       => '_MI_INSTRUCTION_USETAG',
184
-    'description' => '_MI_INSTRUCTION_USETAGDSC',
185
-    'formtype'    => 'yesno',
186
-    'valuetype'   => 'int',
187
-    'default'     => 0
182
+	'name'        => 'usetag',
183
+	'title'       => '_MI_INSTRUCTION_USETAG',
184
+	'description' => '_MI_INSTRUCTION_USETAGDSC',
185
+	'formtype'    => 'yesno',
186
+	'valuetype'   => 'int',
187
+	'default'     => 0
188 188
 ];
189 189
 // Оценки
190 190
 $modversion['config'][] = [
191
-    'name'        => 'userat',
192
-    'title'       => '_MI_INSTRUCTION_USERAT',
193
-    'description' => '_MI_INSTRUCTION_USERATDSC',
194
-    'formtype'    => 'yesno',
195
-    'valuetype'   => 'int',
196
-    'default'     => 0
191
+	'name'        => 'userat',
192
+	'title'       => '_MI_INSTRUCTION_USERAT',
193
+	'description' => '_MI_INSTRUCTION_USERATDSC',
194
+	'formtype'    => 'yesno',
195
+	'valuetype'   => 'int',
196
+	'default'     => 0
197 197
 ];
198 198
 
199 199
 // Блоки
200 200
 // Блок последних страниц
201 201
 $modversion['blocks'][] = [
202
-    'file'        => 'instr_lastpage.php',
203
-    'name'        => _MI_INSTR_BLOCK_LASTPAGE,
204
-    'description' => _MI_INSTR_BLOCK_LASTPAGE_DESC,
205
-    'show_func'   => 'b_instr_lastpage_show',
206
-    'edit_func'   => 'b_instr_lastpage_edit',
207
-    'options'     => '10|20',
208
-    'template'    => $moduleDirName . '_block_lastpage.tpl'
202
+	'file'        => 'instr_lastpage.php',
203
+	'name'        => _MI_INSTR_BLOCK_LASTPAGE,
204
+	'description' => _MI_INSTR_BLOCK_LASTPAGE_DESC,
205
+	'show_func'   => 'b_instr_lastpage_show',
206
+	'edit_func'   => 'b_instr_lastpage_edit',
207
+	'options'     => '10|20',
208
+	'template'    => $moduleDirName . '_block_lastpage.tpl'
209 209
 ];
210 210
 // Блок последних инструкций
211 211
 $modversion['blocks'][] = [
212
-    'file'        => 'instr_lastinstr.php',
213
-    'name'        => _MI_INSTR_BLOCK_LASTINSTR,
214
-    'description' => _MI_INSTR_BLOCK_LASTINSTR_DESC,
215
-    'show_func'   => 'b_instr_lastinstr_show',
216
-    'edit_func'   => 'b_instr_lastinstr_edit',
217
-    'options'     => '10|20',
218
-    'template'    => $moduleDirName . '_block_lastinstr.tpl'
212
+	'file'        => 'instr_lastinstr.php',
213
+	'name'        => _MI_INSTR_BLOCK_LASTINSTR,
214
+	'description' => _MI_INSTR_BLOCK_LASTINSTR_DESC,
215
+	'show_func'   => 'b_instr_lastinstr_show',
216
+	'edit_func'   => 'b_instr_lastinstr_edit',
217
+	'options'     => '10|20',
218
+	'template'    => $moduleDirName . '_block_lastinstr.tpl'
219 219
 ];
220 220
 
221 221
 // Notification
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
@@ -27,264 +27,264 @@
 block discarded – undo
27 27
 // Выбор
28 28
 switch ($op) {
29 29
 
30
-    case 'main':
31
-
32
-        // Подключаем трей
33
-
34
-        include_once __DIR__  . '/../class/tree.php';
35
-        //include_once $GLOBALS['xoops']->path('modules/instruction/class/tree.php');
36
-
37
-        // Заголовок админки
38
-        xoops_cp_header();
39
-        // Навигация
40
-        $adminObject->displayNavigation(basename(__FILE__));
41
-
42
-        // Находим ID-категории => Число страниц
43
-        $cidinstrids = [];
44
-        $sql         = "SELECT `cid`, COUNT( `instrid` ) FROM {$insinstrHandler->table} GROUP BY `cid`";
45
-        $result      = $GLOBALS['xoopsDB']->query($sql);
46
-        while (list($cid, $count) = $GLOBALS['xoopsDB']->fetchRow($result)) {
47
-            // Заполняем массив
48
-            $cidinstrids[$cid] = $count;
49
-        }
50
-
51
-        // Выбираем категории из БД
52
-        $criteria = new CriteriaCompo();
53
-        $criteria->setSort('weight ASC, title');
54
-        $criteria->setOrder('ASC');
55
-        $ins_cat  = $instructioncatHandler->getall($criteria);
56
-        unset($criteria);
57
-
58
-        // Инициализируем
59
-        $cattree = new InstructionTree($ins_cat, 'cid', 'pid');
60
-        // Выводим списко категорий в шаблон
61
-        $GLOBALS['xoopsTpl']->assign('insListCat', $cattree->makeCatsAdmin('--', $cidinstrids));
62
-
63
-        // Создание новой категории
64
-        $objInstructioncat = $instructioncatHandler->create();
65
-        $form              = $objInstructioncat->getForm('cat.php');
66
-        // Форма
67
-        $GLOBALS['xoopsTpl']->assign('insFormCat', $form->render());
68
-        // Выводим шаблон
69
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_cat.tpl');
70
-
71
-        // Текст внизу админки
72
-        include __DIR__ . '/admin_footer.php';
73
-
74
-        break;
75
-
76
-    // Редактирование категории
77
-    case 'editcat':
78
-
79
-        // Заголовок админки
80
-        xoops_cp_header();
81
-        // Навигация
82
-        $adminObject->displayNavigation(basename(__FILE__));
83
-
84
-        $objInstructioncat = $instructioncatHandler->get($cid);
85
-        $form              = $objInstructioncat->getForm('cat.php');
86
-        // Форма
87
-        //$GLOBALS['xoopsTpl']->assign( 'insFormCat', $form->render() );
88
-        echo $form->render();
89
-        // Выводим шаблон
90
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editcat.tpl');
91
-
92
-        // Текст внизу админки
93
-        include __DIR__ . '/admin_footer.php';
94
-
95
-        break;
96
-
97
-    // Сохранение категорий
98
-    case 'savecat':
99
-
100
-        // Проверка
101
-        if (!$GLOBALS['xoopsSecurity']->check()) {
102
-            redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
103
-        }
104
-        // Если мы редактируем
105
-        if ($cid) {
106
-            $objInstructioncat = $instructioncatHandler->get($cid);
107
-        } else {
108
-            $objInstructioncat = $instructioncatHandler->create();
109
-            // Указываем дату создания
110
-            $objInstructioncat->setVar('datecreated', $time);
111
-        }
112
-
113
-        $err         = false;
114
-        $message_err = '';
115
-
116
-        // Дата обновления
117
-        $objInstructioncat->setVar('dateupdated', $time);
118
-        $objInstructioncat->setVar('pid', $pid);
119
-        $objInstructioncat->setVar('title', $_POST['title']);
120
-        $objInstructioncat->setVar('description', $_POST['description']);
121
-        $objInstructioncat->setVar('weight', $weight);
122
-        $objInstructioncat->setVar('metakeywords', $_POST['metakeywords']);
123
-        $objInstructioncat->setVar('metadescription', $_POST['metadescription']);
124
-
125
-        // Проверка веса
126
-        if (0 == $weight) {
127
-            $err         = true;
128
-            $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
129
-        }
130
-        // Проверка категорий
131
-        if ($cid && ($cid == $pid)) {
132
-            $err         = true;
133
-            $message_err .= _AM_INSTRUCTION_ERR_PCAT . '<br>';
134
-        }
135
-        // Если были ошибки
136
-        if (true === $err) {
137
-            xoops_cp_header();
138
-            // Навигация
139
-            $adminObject->displayNavigation(basename(__FILE__));
140
-
141
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
142
-            // Выводим ошибки в шаблон
143
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
144
-            // Если небыло ошибок
145
-        } else {
146
-            // Вставляем данные в БД
147
-            if ($instructioncatHandler->insert($objInstructioncat)) {
148
-
149
-                // ID категории. Если редактируем - то не изменяется. Если создаём новую - то получаем ID созданной записи.
150
-                $new_cid = $cid ?: $objInstructioncat->get_new_enreg();
151
-
152
-                // ===============
153
-                // ==== Права ====
154
-                // ===============
155
-
156
-                $gpermHandler = xoops_getHandler('groupperm');
157
-
158
-                // Если мы редактируем категорию, то старые права нужно удалить
159
-                if ($cid) {
160
-                    // Права на просмотр
161
-                    $criteria = new CriteriaCompo();
162
-                    $criteria->add(new Criteria('gperm_itemid', $new_cid, '='));
163
-                    $criteria->add(new Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
164
-                    $criteria->add(new Criteria('gperm_name', 'instruction_view', '='));
165
-                    $gpermHandler->deleteAll($criteria);
166
-                    // Права на добавление
167
-                    $criteria = new CriteriaCompo();
168
-                    $criteria->add(new Criteria('gperm_itemid', $new_cid, '='));
169
-                    $criteria->add(new Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
170
-                    $criteria->add(new Criteria('gperm_name', 'instruction_submit', '='));
171
-                    $gpermHandler->deleteAll($criteria);
172
-                    // Права на редактирование
173
-                    $criteria = new CriteriaCompo();
174
-                    $criteria->add(new Criteria('gperm_itemid', $new_cid, '='));
175
-                    $criteria->add(new Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
176
-                    $criteria->add(new Criteria('gperm_name', 'instruction_edit', '='));
177
-                    $gpermHandler->deleteAll($criteria);
178
-                }
179
-
180
-                // Добавляем права
181
-                // Права на просмотр
182
-                if (isset($_POST['groups_instr_view'])) {
183
-                    foreach ($_POST['groups_instr_view'] as $onegroup_id) {
184
-                        $gpermHandler->addRight('instruction_view', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
185
-                    }
186
-                }
187
-                // Права на добавление
188
-                if (isset($_POST['groups_instr_submit'])) {
189
-                    foreach ($_POST['groups_instr_submit'] as $onegroup_id) {
190
-                        $gpermHandler->addRight('instruction_submit', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
191
-                    }
192
-                }
193
-                // Права на редактирование
194
-                if (isset($_POST['groups_instr_edit'])) {
195
-                    foreach ($_POST['groups_instr_edit'] as $onegroup_id) {
196
-                        $gpermHandler->addRight('instruction_edit', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
197
-                    }
198
-                }
199
-
200
-                //
201
-                redirect_header('cat.php', 3, _AM_INSTRUCTION_NEWCATADDED);
202
-            }
203
-            xoops_cp_header();
204
-            // Навигация
205
-            $adminObject->displayNavigation(basename(__FILE__));
206
-            // Выводим ошибки в шаблон
207
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInstructioncat->getHtmlErrors());
208
-        }
209
-        // Выводим шаблон
210
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_savecat.tpl');
211
-        // Выводим форму
212
-        $form = $objInstructioncat->getForm();
213
-        // Форма
214
-        echo $form->render();
215
-        // Текст внизу админки
216
-        include __DIR__ . '/admin_footer.php';
217
-
218
-        break;
219
-
220
-    // Удаление категории
221
-    case 'delcat':
222
-
223
-        // Находим число инструкций в данной категории
224
-        // Критерий выборки
225
-        $criteria = new CriteriaCompo();
226
-        // Все инструкции в данной категории
227
-        $criteria->add(new Criteria('cid', $cid, '='));
228
-        $numrows = $insinstrHandler->getCount($criteria);
229
-        //
230
-        unset($criteria);
231
-        // Если есть хоть одна инструкция
232
-        if ($numrows) {
233
-            redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTEMPTY);
234
-        }
235
-
236
-        $objInscat = $instructioncatHandler->get($cid);
237
-        // Если нет такой категории
238
-        if (!is_object($objInscat)) {
239
-            redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
240
-        }
241
-
242
-        // Нельзя удалять пока есть доченрии категории
243
-        // Подключаем трей
244
-        include_once $GLOBALS['xoops']->path('class/tree.php');
245
-        $inscat_arr   = $instructioncatHandler->getall();
246
-        $mytree       = new XoopsObjectTree($inscat_arr, 'cid', 'pid');
247
-        $ins_childcat = $mytree->getAllChild($cid);
248
-        // Если есть дочернии категории
249
-        if (count($ins_childcat)) {
250
-            redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATCHILDREN);
251
-        }
252
-
253
-        // Нажали ли мы на кнопку OK
254
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
255
-        // Если мы нажали на кнопку
256
-        if ($ok) {
257
-
258
-            // Проверка
259
-            if (!$GLOBALS['xoopsSecurity']->check()) {
260
-                redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
261
-            }
262
-            // Пытаемся удалить категорию
263
-            if ($instructioncatHandler->delete($objInscat)) {
264
-
265
-                // Удалить права доступа к категории
266
-                // =================================
267
-
268
-                // Редирект
269
-                redirect_header('cat.php', 3, _AM_INSTRUCTION_CATDELETED);
270
-                // Если не смогли удалить категорию
271
-            } else {
272
-                // Редирект
273
-                redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_DELCAT);
274
-            }
275
-        } else {
276
-
277
-            // Заголовок админки
278
-            xoops_cp_header();
279
-            // Навигация
280
-            $adminObject->displayNavigation(basename(__FILE__));
281
-
282
-            xoops_confirm(['ok' => 1, 'cid' => $cid, 'op' => 'delcat'], 'cat.php', sprintf(_AM_INSTRUCTION_FORMDELCAT, $objInscat->getVar('title')));
283
-
284
-            // Текст внизу админки
285
-            include __DIR__ . '/admin_footer.php';
286
-        }
287
-
288
-        break;
30
+	case 'main':
31
+
32
+		// Подключаем трей
33
+
34
+		include_once __DIR__  . '/../class/tree.php';
35
+		//include_once $GLOBALS['xoops']->path('modules/instruction/class/tree.php');
36
+
37
+		// Заголовок админки
38
+		xoops_cp_header();
39
+		// Навигация
40
+		$adminObject->displayNavigation(basename(__FILE__));
41
+
42
+		// Находим ID-категории => Число страниц
43
+		$cidinstrids = [];
44
+		$sql         = "SELECT `cid`, COUNT( `instrid` ) FROM {$insinstrHandler->table} GROUP BY `cid`";
45
+		$result      = $GLOBALS['xoopsDB']->query($sql);
46
+		while (list($cid, $count) = $GLOBALS['xoopsDB']->fetchRow($result)) {
47
+			// Заполняем массив
48
+			$cidinstrids[$cid] = $count;
49
+		}
50
+
51
+		// Выбираем категории из БД
52
+		$criteria = new CriteriaCompo();
53
+		$criteria->setSort('weight ASC, title');
54
+		$criteria->setOrder('ASC');
55
+		$ins_cat  = $instructioncatHandler->getall($criteria);
56
+		unset($criteria);
57
+
58
+		// Инициализируем
59
+		$cattree = new InstructionTree($ins_cat, 'cid', 'pid');
60
+		// Выводим списко категорий в шаблон
61
+		$GLOBALS['xoopsTpl']->assign('insListCat', $cattree->makeCatsAdmin('--', $cidinstrids));
62
+
63
+		// Создание новой категории
64
+		$objInstructioncat = $instructioncatHandler->create();
65
+		$form              = $objInstructioncat->getForm('cat.php');
66
+		// Форма
67
+		$GLOBALS['xoopsTpl']->assign('insFormCat', $form->render());
68
+		// Выводим шаблон
69
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_cat.tpl');
70
+
71
+		// Текст внизу админки
72
+		include __DIR__ . '/admin_footer.php';
73
+
74
+		break;
75
+
76
+	// Редактирование категории
77
+	case 'editcat':
78
+
79
+		// Заголовок админки
80
+		xoops_cp_header();
81
+		// Навигация
82
+		$adminObject->displayNavigation(basename(__FILE__));
83
+
84
+		$objInstructioncat = $instructioncatHandler->get($cid);
85
+		$form              = $objInstructioncat->getForm('cat.php');
86
+		// Форма
87
+		//$GLOBALS['xoopsTpl']->assign( 'insFormCat', $form->render() );
88
+		echo $form->render();
89
+		// Выводим шаблон
90
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editcat.tpl');
91
+
92
+		// Текст внизу админки
93
+		include __DIR__ . '/admin_footer.php';
94
+
95
+		break;
96
+
97
+	// Сохранение категорий
98
+	case 'savecat':
99
+
100
+		// Проверка
101
+		if (!$GLOBALS['xoopsSecurity']->check()) {
102
+			redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
103
+		}
104
+		// Если мы редактируем
105
+		if ($cid) {
106
+			$objInstructioncat = $instructioncatHandler->get($cid);
107
+		} else {
108
+			$objInstructioncat = $instructioncatHandler->create();
109
+			// Указываем дату создания
110
+			$objInstructioncat->setVar('datecreated', $time);
111
+		}
112
+
113
+		$err         = false;
114
+		$message_err = '';
115
+
116
+		// Дата обновления
117
+		$objInstructioncat->setVar('dateupdated', $time);
118
+		$objInstructioncat->setVar('pid', $pid);
119
+		$objInstructioncat->setVar('title', $_POST['title']);
120
+		$objInstructioncat->setVar('description', $_POST['description']);
121
+		$objInstructioncat->setVar('weight', $weight);
122
+		$objInstructioncat->setVar('metakeywords', $_POST['metakeywords']);
123
+		$objInstructioncat->setVar('metadescription', $_POST['metadescription']);
124
+
125
+		// Проверка веса
126
+		if (0 == $weight) {
127
+			$err         = true;
128
+			$message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
129
+		}
130
+		// Проверка категорий
131
+		if ($cid && ($cid == $pid)) {
132
+			$err         = true;
133
+			$message_err .= _AM_INSTRUCTION_ERR_PCAT . '<br>';
134
+		}
135
+		// Если были ошибки
136
+		if (true === $err) {
137
+			xoops_cp_header();
138
+			// Навигация
139
+			$adminObject->displayNavigation(basename(__FILE__));
140
+
141
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
142
+			// Выводим ошибки в шаблон
143
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
144
+			// Если небыло ошибок
145
+		} else {
146
+			// Вставляем данные в БД
147
+			if ($instructioncatHandler->insert($objInstructioncat)) {
148
+
149
+				// ID категории. Если редактируем - то не изменяется. Если создаём новую - то получаем ID созданной записи.
150
+				$new_cid = $cid ?: $objInstructioncat->get_new_enreg();
151
+
152
+				// ===============
153
+				// ==== Права ====
154
+				// ===============
155
+
156
+				$gpermHandler = xoops_getHandler('groupperm');
157
+
158
+				// Если мы редактируем категорию, то старые права нужно удалить
159
+				if ($cid) {
160
+					// Права на просмотр
161
+					$criteria = new CriteriaCompo();
162
+					$criteria->add(new Criteria('gperm_itemid', $new_cid, '='));
163
+					$criteria->add(new Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
164
+					$criteria->add(new Criteria('gperm_name', 'instruction_view', '='));
165
+					$gpermHandler->deleteAll($criteria);
166
+					// Права на добавление
167
+					$criteria = new CriteriaCompo();
168
+					$criteria->add(new Criteria('gperm_itemid', $new_cid, '='));
169
+					$criteria->add(new Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
170
+					$criteria->add(new Criteria('gperm_name', 'instruction_submit', '='));
171
+					$gpermHandler->deleteAll($criteria);
172
+					// Права на редактирование
173
+					$criteria = new CriteriaCompo();
174
+					$criteria->add(new Criteria('gperm_itemid', $new_cid, '='));
175
+					$criteria->add(new Criteria('gperm_modid', $GLOBALS['xoopsModule']->getVar('mid'), '='));
176
+					$criteria->add(new Criteria('gperm_name', 'instruction_edit', '='));
177
+					$gpermHandler->deleteAll($criteria);
178
+				}
179
+
180
+				// Добавляем права
181
+				// Права на просмотр
182
+				if (isset($_POST['groups_instr_view'])) {
183
+					foreach ($_POST['groups_instr_view'] as $onegroup_id) {
184
+						$gpermHandler->addRight('instruction_view', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
185
+					}
186
+				}
187
+				// Права на добавление
188
+				if (isset($_POST['groups_instr_submit'])) {
189
+					foreach ($_POST['groups_instr_submit'] as $onegroup_id) {
190
+						$gpermHandler->addRight('instruction_submit', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
191
+					}
192
+				}
193
+				// Права на редактирование
194
+				if (isset($_POST['groups_instr_edit'])) {
195
+					foreach ($_POST['groups_instr_edit'] as $onegroup_id) {
196
+						$gpermHandler->addRight('instruction_edit', $new_cid, $onegroup_id, $GLOBALS['xoopsModule']->getVar('mid'));
197
+					}
198
+				}
199
+
200
+				//
201
+				redirect_header('cat.php', 3, _AM_INSTRUCTION_NEWCATADDED);
202
+			}
203
+			xoops_cp_header();
204
+			// Навигация
205
+			$adminObject->displayNavigation(basename(__FILE__));
206
+			// Выводим ошибки в шаблон
207
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInstructioncat->getHtmlErrors());
208
+		}
209
+		// Выводим шаблон
210
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_savecat.tpl');
211
+		// Выводим форму
212
+		$form = $objInstructioncat->getForm();
213
+		// Форма
214
+		echo $form->render();
215
+		// Текст внизу админки
216
+		include __DIR__ . '/admin_footer.php';
217
+
218
+		break;
219
+
220
+	// Удаление категории
221
+	case 'delcat':
222
+
223
+		// Находим число инструкций в данной категории
224
+		// Критерий выборки
225
+		$criteria = new CriteriaCompo();
226
+		// Все инструкции в данной категории
227
+		$criteria->add(new Criteria('cid', $cid, '='));
228
+		$numrows = $insinstrHandler->getCount($criteria);
229
+		//
230
+		unset($criteria);
231
+		// Если есть хоть одна инструкция
232
+		if ($numrows) {
233
+			redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTEMPTY);
234
+		}
235
+
236
+		$objInscat = $instructioncatHandler->get($cid);
237
+		// Если нет такой категории
238
+		if (!is_object($objInscat)) {
239
+			redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
240
+		}
241
+
242
+		// Нельзя удалять пока есть доченрии категории
243
+		// Подключаем трей
244
+		include_once $GLOBALS['xoops']->path('class/tree.php');
245
+		$inscat_arr   = $instructioncatHandler->getall();
246
+		$mytree       = new XoopsObjectTree($inscat_arr, 'cid', 'pid');
247
+		$ins_childcat = $mytree->getAllChild($cid);
248
+		// Если есть дочернии категории
249
+		if (count($ins_childcat)) {
250
+			redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATCHILDREN);
251
+		}
252
+
253
+		// Нажали ли мы на кнопку OK
254
+		$ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
255
+		// Если мы нажали на кнопку
256
+		if ($ok) {
257
+
258
+			// Проверка
259
+			if (!$GLOBALS['xoopsSecurity']->check()) {
260
+				redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
261
+			}
262
+			// Пытаемся удалить категорию
263
+			if ($instructioncatHandler->delete($objInscat)) {
264
+
265
+				// Удалить права доступа к категории
266
+				// =================================
267
+
268
+				// Редирект
269
+				redirect_header('cat.php', 3, _AM_INSTRUCTION_CATDELETED);
270
+				// Если не смогли удалить категорию
271
+			} else {
272
+				// Редирект
273
+				redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_DELCAT);
274
+			}
275
+		} else {
276
+
277
+			// Заголовок админки
278
+			xoops_cp_header();
279
+			// Навигация
280
+			$adminObject->displayNavigation(basename(__FILE__));
281
+
282
+			xoops_confirm(['ok' => 1, 'cid' => $cid, 'op' => 'delcat'], 'cat.php', sprintf(_AM_INSTRUCTION_FORMDELCAT, $objInscat->getVar('title')));
283
+
284
+			// Текст внизу админки
285
+			include __DIR__ . '/admin_footer.php';
286
+		}
287
+
288
+		break;
289 289
 
290 290
 }
Please login to merge, or discard this patch.
admin/index.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -10,13 +10,13 @@  discard block
 block discarded – undo
10 10
 /** @var InstructionUtility $utilityClass */
11 11
 $utilityClass = ucfirst($moduleDirName) . 'Utility';
12 12
 if (!class_exists($utilityClass)) {
13
-    xoops_load('utility', $moduleDirName);
13
+	xoops_load('utility', $moduleDirName);
14 14
 }
15 15
 
16 16
 $configurator = include __DIR__ . '/../include/config.php';
17 17
 foreach (array_keys($configurator->uploadFolders) as $i) {
18
-    $utilityClass::createFolder($configurator->uploadFolders[$i]);
19
-    $adminObject->addConfigBoxLine($configurator->uploadFolders[$i], 'folder');
18
+	$utilityClass::createFolder($configurator->uploadFolders[$i]);
19
+	$adminObject->addConfigBoxLine($configurator->uploadFolders[$i], 'folder');
20 20
 }
21 21
 
22 22
 $insinstrHandler = xoops_getModuleHandler('instruction', 'instruction');
@@ -29,11 +29,11 @@  discard block
 block discarded – undo
29 29
 $numrows_page  = $inspageHandler->getCount($criteria);
30 30
 $adminObject->addInfoBox(_AM_INSTRUCTION_TOTAL);
31 31
 $adminObject->addInfoBoxLine('<infolabel>' . '<a href="cat.php">' . _AM_INSTRUCTION_TOTAL_CAT . '</a>' . '&nbsp;&mdash;&nbsp;<span class="green">'
32
-                                                          . $numrows_cat . '</span></infolabel>', '', '');
32
+														  . $numrows_cat . '</span></infolabel>', '', '');
33 33
 $adminObject->addInfoBoxLine('<infolabel>' . '<a href="instr.php">' . _AM_INSTRUCTION_TOTAL_INSTR . '</a>' . '&nbsp;&mdash;&nbsp;<span class="green">'
34
-                                                          . $numrows_instr . '</span></infolabel>', '', '');
34
+														  . $numrows_instr . '</span></infolabel>', '', '');
35 35
 $adminObject->addInfoBoxLine('<infolabel>' . '<a href="instr.php">' . _AM_INSTRUCTION_TOTAL_PAGE . '</a>' . '&nbsp;&mdash;&nbsp;<span class="green">'
36
-                                                          . $numrows_page . '</span></infolabel>', '', '');
36
+														  . $numrows_page . '</span></infolabel>', '', '');
37 37
 
38 38
 $adminObject->displayNavigation(basename(__FILE__));
39 39
 $adminObject->displayIndex();
Please login to merge, or discard this patch.
admin/admin_footer.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -1,10 +1,10 @@
 block discarded – undo
1 1
 <?php
2 2
 // Автор: andrey3761
3 3
 echo "<div style='text-align:center;'><a href='http://xoops.ws' target='_blank'><img src="
4
-      . XOOPS_URL
5
-      . '/modules/instruction/assets/images/xoops.ws.gif'
6
-      . ' alt="XOOPS.WebSite" title="XOOPS.WebSite"></a></div>';
4
+	  . XOOPS_URL
5
+	  . '/modules/instruction/assets/images/xoops.ws.gif'
6
+	  . ' alt="XOOPS.WebSite" title="XOOPS.WebSite"></a></div>';
7 7
 echo "<div class='center smallsmall italic pad5'><strong>"
8
-      . $xoopsModule->getVar('name')
9
-      . "</strong> is maintained by the <a class='tooltip' rel='external' href='https://xoops.org/' title='Visit XOOPS Community'>XOOPS Community</a></div>";
8
+	  . $xoopsModule->getVar('name')
9
+	  . "</strong> is maintained by the <a class='tooltip' rel='external' href='https://xoops.org/' title='Visit XOOPS Community'>XOOPS Community</a></div>";
10 10
 xoops_cp_footer();
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
@@ -40,566 +40,566 @@
 block discarded – undo
40 40
 // Выбор
41 41
 switch ($op) {
42 42
 
43
-    case 'main':
44
-
45
-        // Заголовок админки
46
-        xoops_cp_header();
47
-        // Меню
48
-        $adminObject->displayNavigation(basename(__FILE__));
49
-        $adminObject->addItemButton(_AM_INSTRUCTION_ADDINSTR, 'instr.php?op=editinstr', 'add');
50
-        $adminObject->displayButton('left', '');
51
-
52
-        //
53
-        $criteria = new CriteriaCompo();
54
-
55
-        // Если была передана категория
56
-        if ($cid) {
57
-            // Добавляем в выборку ID категории
58
-            $criteria->add(new Criteria('cid', $cid, '='));
59
-            // Получаем объект категории
60
-            $objInscat = $inscatHandler->get($cid);
61
-            // Если нет такой категории
62
-            if (!is_object($objInscat)) {
63
-                redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
64
-            }
65
-        }
66
-
67
-        // Число инструкций, удовлетворяющих данному условию
68
-        $numrows = $insinstrHandler->getCount($criteria);
69
-
70
-        // Число выборки
71
-        $criteria->setLimit($limit);
72
-        // Начинасть с данного элемента
73
-        $criteria->setStart($start);
74
-        // Сортировать по
75
-        $criteria->setSort('instrid');
76
-        // Порядок сортировки
77
-        $criteria->setOrder('DESC');
78
-        // Находим все справки
79
-        $instr_arr = $insinstrHandler->getall($criteria);
80
-        // Если записей больше чем $limit, то выводим пагинатор
81
-        if ($numrows > $limit) {
82
-            $pagenav = new XoopsPageNav($numrows, $limit, $start, 'start', 'op=' . $op . '&amp;cid=' . $cid);
83
-            $pagenav = $pagenav->renderNav(4);
84
-        } else {
85
-            $pagenav = '';
86
-        }
87
-        // Выводим пагинатор в шаблон
88
-        $GLOBALS['xoopsTpl']->assign('insPagenav', $pagenav);
89
-
90
-        // Если есть записи
91
-        if ($numrows > 0) {
92
-            $class = 'odd';
93
-            foreach (array_keys($instr_arr) as $i) {
94
-
95
-                //
96
-                $class = ('even' === $class) ? 'odd' : 'even';
97
-                // ID
98
-                $insinstr_instrid = $instr_arr[$i]->getVar('instrid');
99
-                // Название
100
-                $insinstr_title   = $instr_arr[$i]->getVar('title');
101
-                // Статус
102
-                $insinstr_status  = $instr_arr[$i]->getVar('status');
103
-                // Количество страниц
104
-                $insinstr_pages   = $instr_arr[$i]->getVar('pages');
105
-                // Категория
106
-                $insinstr_cat     = $inscatHandler->get($instr_arr[$i]->getVar('cid'));
107
-
108
-                // Выводим в шаблон
109
-                $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]);
110
-            }
111
-
112
-            //
113
-            $inshead = isset($objInscat) && is_object($objInscat) ? sprintf(_AM_INSTR_LISTINSTRINCAT, $objInscat->getVar('title')) : _AM_INSTR_LISTINSTRALL;
114
-            $GLOBALS['xoopsTpl']->assign('insHead', $inshead);
115
-            // Языковые константы
116
-            $GLOBALS['xoopsTpl']->assign('lang_title', _AM_INSTRUCTION_TITLE);
117
-            $GLOBALS['xoopsTpl']->assign('lang_cat', _AM_INSTRUCTION_CAT);
118
-            $GLOBALS['xoopsTpl']->assign('lang_pages', _AM_INSTRUCTION_PAGES);
119
-            $GLOBALS['xoopsTpl']->assign('lang_action', _AM_INSTRUCTION_ACTION);
120
-            $GLOBALS['xoopsTpl']->assign('lang_display', _AM_INSTRUCTION_DISPLAY);
121
-            $GLOBALS['xoopsTpl']->assign('lang_edit', _AM_INSTRUCTION_EDIT);
122
-            $GLOBALS['xoopsTpl']->assign('lang_del', _AM_INSTRUCTION_DEL);
123
-            $GLOBALS['xoopsTpl']->assign('lang_lock', _AM_INSTRUCTION_LOCK);
124
-            $GLOBALS['xoopsTpl']->assign('lang_unlock', _AM_INSTRUCTION_UNLOCK);
125
-            $GLOBALS['xoopsTpl']->assign('lang_addpage', _AM_INSTRUCTION_ADDPAGE);
126
-            $GLOBALS['xoopsTpl']->assign('lang_addinstr', _AM_INSTRUCTION_ADDINSTR);
127
-        }
128
-
129
-        // Выводим шаблон
130
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_instr.tpl');
131
-
132
-        // Текст внизу админки
133
-        include __DIR__ . '/admin_footer.php';
134
-
135
-        break;
136
-
137
-    // Редактирование категории
138
-    case 'editinstr':
139
-
140
-        // Заголовок админки
141
-        xoops_cp_header();
142
-        // Меню
143
-        $adminObject->displayNavigation(basename(__FILE__));
144
-
145
-        // Если мы редактируем инструкцию
146
-        if ($instrid) {
147
-            $objInsinstr = $insinstrHandler->get($instrid);
148
-            // Создание новой страницы
149
-        } else {
150
-            $objInsinstr = $insinstrHandler->create();
151
-        }
152
-
153
-        // Выводим шаблон
154
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editinstr.tpl');
155
-        $form = $objInsinstr->getForm('instr.php');
156
-        // Форма
157
-        echo $form->render();
158
-
159
-        // Текст внизу админки
160
-        include __DIR__ . '/admin_footer.php';
161
-
162
-        break;
163
-
164
-    // Сохранение инструкций
165
-    case 'saveinstr':
166
-
167
-        // Проверка
168
-        if (!$GLOBALS['xoopsSecurity']->check()) {
169
-            redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
170
-        }
171
-        // Если мы редактируем
172
-        if ($instrid) {
173
-            $objInsinstr = $insinstrHandler->get($instrid);
174
-        } else {
175
-            $objInsinstr = $insinstrHandler->create();
176
-            // Указываем дату создания
177
-            $objInsinstr->setVar('datecreated', $time);
178
-            // Указываем пользователя
179
-            $objInsinstr->setVar('uid', $uid);
180
-        }
181
-
182
-        $err         = false;
183
-        $message_err = '';
184
-        //
185
-        $instr_title       = InstructionUtility::cleanVars($_POST, 'title', '', 'string');
186
-        $instr_description = InstructionUtility::cleanVars($_POST, 'description', '', 'string');
187
-
188
-        // Дата обновления
189
-        $objInsinstr->setVar('dateupdated', $time);
190
-        //
191
-        $objInsinstr->setVar('cid', $cid);
192
-        $objInsinstr->setVar('title', $instr_title);
193
-        $objInsinstr->setVar('status', $_POST['status']);
194
-        $objInsinstr->setVar('description', $instr_description);
195
-        $objInsinstr->setVar('metakeywords', $_POST['metakeywords']);
196
-        $objInsinstr->setVar('metadescription', $_POST['metadescription']);
197
-
198
-        // Проверка категорий
199
-        if (!$cid) {
200
-            $err         = true;
201
-            $message_err .= _AM_INSTRUCTION_ERR_CAT . '<br>';
202
-        }
203
-        // Проверка названия
204
-        if (!$instr_title) {
205
-            $err         = true;
206
-            $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
207
-        }
208
-        // Проверка основного текста
209
-        if (!$instr_description) {
210
-            $err         = true;
211
-            $message_err .= _AM_INSTR_ERR_DESCRIPTION . '<br>';
212
-        }
213
-
214
-        // Если были ошибки
215
-        if (true === $err) {
216
-            xoops_cp_header();
217
-            // Меню страницы
218
-            $adminObject->displayNavigation(basename(__FILE__));
219
-
220
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
221
-            // Выводим ошибки в шаблон
222
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
223
-            // Если небыло ошибок
224
-        } else {
225
-            // Вставляем данные в БД
226
-            if ($insinstrHandler->insert($objInsinstr)) {
227
-                // Получаем ID созданной записи
228
-                $instrid_new = $instrid ?: $objInsinstr->get_new_enreg();
229
-                // Обновление даты в категории
230
-                $inscatHandler->updateDateupdated($cid, $time);
231
-                // Тэги
232
-                if (xoops_getModuleOption('usetag', 'instruction')) {
233
-                    $tagHandler = xoops_getModuleHandler('tag', 'tag');
234
-                    $tagHandler->updateByItem($_POST['tag'], $instrid_new, $GLOBALS['xoopsModule']->getVar('dirname'), 0);
235
-                }
236
-
237
-                // Если мы редактируем
238
-                if ($instrid) {
239
-                    redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRMODIFY);
240
-                } else {
241
-                    redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRADDED);
242
-                }
243
-            }
244
-            xoops_cp_header();
245
-            // Меню страницы
246
-            $adminObject->displayNavigation(basename(__FILE__));
247
-
248
-            // Выводим ошибки в шаблон
249
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInstructioncat->getHtmlErrors());
250
-        }
251
-        // Выводим шаблон
252
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_saveinstr.tpl');
253
-        // Выводим форму
254
-        $form = $objInsinstr->getForm();
255
-        // Форма
256
-        echo $form->render();
257
-        // Текст внизу админки
258
-        include __DIR__ . '/admin_footer.php';
259
-
260
-        break;
261
-
262
-    // Просмотр категории
263
-    case 'viewinstr':
264
-
265
-        // Подключаем трей
266
-        include_once XOOPS_ROOT_PATH . '/modules/instruction/class/tree.php';
267
-
268
-        // Заголовок админки
269
-        xoops_cp_header();
270
-        // Меню
271
-        $adminObject->displayNavigation(basename(__FILE__));
272
-        // Кнопки
273
-        $adminObject->addItemButton(_AM_INSTRUCTION_ADDPAGE, 'instr.php?op=editpage&instrid=' . $instrid, 'add');
274
-        $adminObject->displayButton('left', '');
275
-
276
-        //
277
-        $objInsinstr = $insinstrHandler->get($instrid);
278
-
279
-        // Находим все страницы в данной инструкции
280
-        $criteria = new CriteriaCompo();
281
-        $criteria->add(new Criteria('instrid', $instrid, '='));
282
-        $criteria->setSort('weight');
283
-        $criteria->setOrder('ASC');
284
-        $ins_page = $inspageHandler->getall($criteria);
285
-        //
286
-        unset($criteria);
287
-
288
-        // Инициализируем
289
-        $instree = new InstructionTree($ins_page, 'pageid', 'pid');
290
-        // Выводим список страниц в шаблон
291
-        $GLOBALS['xoopsTpl']->assign('insListPage', $instree->makePagesAdmin($objInsinstr, '--'));
292
-
293
-        // Выводим шаблон
294
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_viewinstr.tpl');
295
-
296
-        // Текст внизу админки
297
-        include __DIR__ . '/admin_footer.php';
298
-
299
-        break;
300
-
301
-    // Удаление категории
302
-    case 'delinstr':
303
-
304
-        // Проверка на instrid
305
-        // ==================
306
-        // Объект инструкций
307
-        $objInsinstr = $insinstrHandler->get($instrid);
308
-
309
-        // Нажали ли мы на кнопку OK
310
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
311
-        //
312
-        if ($ok) {
313
-
314
-            // Проверка
315
-            if (!$GLOBALS['xoopsSecurity']->check()) {
316
-                redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
317
-            }
318
-            // Находим все страницы, пренадлежащие этой инструкции
319
-            $criteria = new CriteriaCompo();
320
-            $criteria->add(new Criteria('instrid', $instrid));
321
-            $ins_page = $inspageHandler->getall($criteria);
322
-            //
323
-            unset($criteria);
324
-            // Перебираем все страницы в данной инструкции
325
-            foreach (array_keys($ins_page) as $i) {
326
-                // Декримент комментов
327
-                // Делает дикримент одного коммента, а не всех в цикле...
328
-                // Удаляем комментарии
329
-                xoops_comment_delete($GLOBALS['xoopsModule']->getVar('mid'), $ins_page[$i]->getVar('pageid'));
330
-                // Декримент страниц (Опционально)
331
-                // ==============================
332
-
333
-                // Удаляем страницу
334
-                // Сделать проверку на удалённость страницы
335
-                // ========================================
336
-                $inspageHandler->delete($ins_page[$i]);
337
-            }
338
-            // Пытаемся удалить инструкцию
339
-            if ($insinstrHandler->delete($objInsinstr)) {
340
-                // Редирект
341
-                redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRDELETED);
342
-            } else {
343
-                // Редирект
344
-                redirect_header('instr.php', 3, _AM_INSTRUCTION_ERR_DELINSTR);
345
-            }
346
-        } else {
347
-            xoops_cp_header();
348
-
349
-            $adminObject->displayNavigation(basename(__FILE__));
350
-            // Форма
351
-            xoops_confirm(['ok' => 1, 'instrid' => $instrid, 'op' => 'delinstr'], 'instr.php', sprintf(_AM_INSTRUCTION_FORMDELINSTR, $objInsinstr->getVar('title')));
352
-            // Текст внизу админки
353
-            include __DIR__ . '/admin_footer.php';
354
-        }
355
-
356
-        break;
357
-
358
-    // Добавление страницы
359
-    case 'editpage':
360
-
361
-        // Заголовок админки
362
-        xoops_cp_header();
363
-        // Скрипты
364
-        $xoTheme->addScript(XOOPS_URL . '/modules/instruction/assets/js/admin.js');
365
-        // Меню
366
-        $adminObject->displayNavigation(basename(__FILE__));
367
-
368
-        // Если мы редактируем страницу
369
-        if ($pageid) {
370
-            // Получаем объект страницы
371
-            $objInspage = $inspageHandler->get($pageid);
372
-            // ID инструкции
373
-            $instrid = $objInspage->getVar('instrid');
374
-            // Создание новой страницы
375
-        } elseif ($instrid) {
376
-            // Создаём объект страницы
377
-            $objInspage = $inspageHandler->create();
378
-            // Устанавливаем родительскую страницу
379
-            $objInspage->setVar('pid', $pid);
380
-        } else {
381
-            redirect_header('instr.php', 3, _AM_INSTRUCTION_BADREQUEST);
382
-        }
383
-        // Форма
384
-        $form = $objInspage->getForm('instr.php', $instrid);
385
-        // Форма
386
-        echo $form->render();
387
-        // Выводим шаблон
388
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editpage.tpl');
389
-
390
-        // Текст внизу админки
391
-        include __DIR__ . '/admin_footer.php';
392
-
393
-        break;
394
-
395
-    // Сохранение страницы
396
-    case 'savepage':
397
-        // Ошибки
398
-        $err         = false;
399
-        $message_err = '';
400
-
401
-        // Проверка сессии
402
-        if (!$GLOBALS['xoopsSecurity']->check()) {
403
-            $err         = true;
404
-            $err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
405
-            $message_err .= $err_txt . '<br>';
406
-        }
407
-
408
-        // Если мы редактируем
409
-        if ($pageid) {
410
-            $objInspage = $inspageHandler->get($pageid);
411
-        } elseif ($instrid) {
412
-            $objInspage = $inspageHandler->create();
413
-            // Если мы создаём страницу необходимо указать к какой инструкции
414
-            $objInspage->setVar('instrid', $instrid);
415
-            // Указываем дату создания
416
-            $objInspage->setVar('datecreated', $time);
417
-            // Указываем пользователя
418
-            $objInspage->setVar('uid', $uid);
419
-        } else {
420
-            redirect_header('instr.php', 3, _AM_INSTRUCTION_BADREQUEST);
421
-        }
422
-
423
-        //
424
-        $page_title    = InstructionUtility::cleanVars($_POST, 'title', '', 'string');
425
-        $page_hometext = InstructionUtility::cleanVars($_POST, 'hometext', '', 'string');
426
-
427
-        // Родительская страница
428
-        $objInspage->setVar('pid', $pid);
429
-        // Дата обновления
430
-        $objInspage->setVar('dateupdated', $time);
431
-        // Название страницы
432
-        $objInspage->setVar('title', $page_title);
433
-        // Вес страницы
434
-        $objInspage->setVar('weight', $weight);
435
-        // Основной текст
436
-        $objInspage->setVar('hometext', $page_hometext);
437
-        // Сноска
438
-        $objInspage->setVar('footnote', InstructionUtility::cleanVars($_POST, 'footnote', '', 'string'));
439
-        // Статус
440
-        $objInspage->setVar('status', InstructionUtility::cleanVars($_POST, 'status', 0, 'int'));
441
-        // Тип
442
-        $objInspage->setVar('type', InstructionUtility::cleanVars($_POST, 'type', 0, 'int'));
443
-        // Мета-теги описания
444
-        $objInspage->setVar('keywords', InstructionUtility::cleanVars($_POST, 'keywords', '', 'string'));
445
-        // Мета-теги ключевых слов
446
-        $objInspage->setVar('description', InstructionUtility::cleanVars($_POST, 'description', '', 'string'));
447
-        //
448
-        $dosmiley = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
449
-        $doxcode  = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
450
-        $dobr     = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
451
-        $dohtml   = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
452
-        //$doimage = ( isset( $_POST['doimage'] ) && intval( $_POST['doimage'] ) > 0 ) ? 1 : 0;
453
-        $objInspage->setVar('dohtml', $dohtml);
454
-        $objInspage->setVar('dosmiley', $dosmiley);
455
-        $objInspage->setVar('doxcode', $doxcode);
456
-        //$objInspage->setVar( 'doimage', $doimage );
457
-        $objInspage->setVar('dobr', $dobr);
458
-
459
-        //
460
-        if (!$pageid && !$instrid) {
461
-            $err         = true;
462
-            $message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
463
-        }
464
-        // Проверка веса
465
-        if (0 == $weight) {
466
-            $err         = true;
467
-            $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
468
-        }
469
-        // Проверка родительской страницы
470
-        if ($pageid && ($pageid == $pid)) {
471
-            $err         = true;
472
-            $message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
473
-        }
474
-        // Проверка названия
475
-        if (!$page_title) {
476
-            $err         = true;
477
-            $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
478
-        }
479
-        // Проверка основного текста
480
-        if (!$page_hometext) {
481
-            $err         = true;
482
-            $message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
483
-        }
484
-
485
-        // Если были ошибки
486
-        if (true === $err) {
487
-            xoops_cp_header();
488
-            // Меню страницы
489
-            $adminObject->displayNavigation(basename(__FILE__));
490
-
491
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
492
-            // Выводим ошибки в шаблон
493
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
494
-            // Если небыло ошибок
495
-        } else {
496
-            // Вставляем данные в БД
497
-            if ($inspageHandler->insert($objInspage)) {
498
-                // Ссылка для редиректа
499
-                $redirect_url = 'instr.php?op=viewinstr&amp;instrid=' . $instrid . '#pageid_' . $pid;
500
-                // Получаем ID инструкции
501
-                $instrid = $objInspage->getInstrid();
502
-                // Обновляем в инструкции число страниц и дату
503
-                $insinstrHandler->updatePages($instrid);
504
-                // Если мы редактируем
505
-                if ($pageid) {
506
-                    // Редирект
507
-                    redirect_header($redirect_url, 3, _AM_INSTRUCTION_PAGEMODIFY);
508
-                    // Если мы добавляем
509
-                } else {
510
-                    // Инкримент комментов
511
-                    $inspageHandler->updateposts($uid, $_POST['status'], 'add');
512
-                    // Редирект
513
-                    redirect_header($redirect_url, 3, _AM_INSTRUCTION_PAGEADDED);
514
-                }
515
-            }
516
-            xoops_cp_header();
517
-            // Меню страницы
518
-            $adminObject->displayNavigation(basename(__FILE__));
519
-
520
-            // Выводим ошибки в шаблон
521
-            $GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInspage->getHtmlErrors());
522
-        }
523
-        // Скрипты
524
-        $xoTheme->addScript(XOOPS_URL . '/modules/instruction/assets/js/admin.js');
525
-        // Выводим шаблон
526
-        $GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_savepage.tpl');
527
-        // Выводим форму
528
-        $form = $objInspage->getForm('instr.php', $instrid);
529
-        // Форма
530
-        echo $form->render();
531
-        // Текст внизу админки
532
-        include __DIR__ . '/admin_footer.php';
533
-
534
-        break;
535
-
536
-    // Удаление страницы
537
-    case 'delpage':
538
-
539
-        // Проверка на pageid
540
-        // ==================
541
-
542
-        $objInspage = $inspageHandler->get($pageid);
543
-        // Нажали ли мы на кнопку OK
544
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
545
-        // Если мы нажали на кнопку
546
-        if ($ok) {
547
-
548
-            // Проверка
549
-            if (!$GLOBALS['xoopsSecurity']->check()) {
550
-                redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
551
-            }
552
-            // ID инструкции
553
-            $page_instrid = $objInspage->getVar('instrid');
554
-            // Декримент комментов
555
-            $inspageHandler->updateposts($objInspage->getVar('uid'), $objInspage->getVar('status'), 'delete');
556
-            // Пытаемся удалить страницу
557
-            if ($inspageHandler->delete($objInspage)) {
558
-                // Обновляем в инструкции число страниц и дату
559
-                $insinstrHandler->updatePages($page_instrid);
560
-                // Удаляем комментарии
561
-                xoops_comment_delete($GLOBALS['xoopsModule']->getVar('mid'), $pageid);
562
-                //
563
-                redirect_header('instr.php?op=viewinstr&amp;instrid=' . $page_instrid, 3, _AM_INSTRUCTION_PAGEDELETED);
564
-                // Если не смогли удалить страницу
565
-            } else {
566
-                redirect_header('instr.php?op=viewinstr&amp;instrid=' . $page_instrid, 3, _AM_INSTRUCTION_ERR_DELPAGE);
567
-            }
568
-        } else {
569
-
570
-            // Заголовок админки
571
-            xoops_cp_header();
572
-            // Меню
573
-            $adminObject->displayNavigation(basename(__FILE__));
574
-            // Форма
575
-            xoops_confirm(['ok' => 1, 'pageid' => $pageid, 'op' => 'delpage'], 'instr.php', sprintf(_AM_INSTRUCTION_FORMDELPAGE, $objInspage->getVar('title')));
576
-            // Текст внизу админки
577
-            include __DIR__ . '/admin_footer.php';
578
-        }
579
-
580
-        break;
581
-
582
-    // Удаление страницы
583
-    case 'updpage':
584
-
585
-        // Принимаем данные
586
-        $pageids = $_POST['pageids'];
587
-        $weights = $_POST['weights'];
588
-        // Перебираем все значения
589
-        foreach ($pageids as $key => $pageid) {
590
-
591
-            // Объявляем объект
592
-            $objInspage = $inspageHandler->get($pageid);
593
-            // Устанавливаем вес
594
-            $objInspage->setVar('weight', $weights[$key]);
595
-            // Вставляем данные в БД
596
-            $inspageHandler->insert($objInspage);
597
-            // Удаляем объект
598
-            unset($objInspage);
599
-        }
600
-        // Редирект
601
-        redirect_header('instr.php?op=viewinstr&instrid=' . $instrid, 3, _AM_INSTRUCTION_PAGESUPDATE);
602
-
603
-        break;
43
+	case 'main':
44
+
45
+		// Заголовок админки
46
+		xoops_cp_header();
47
+		// Меню
48
+		$adminObject->displayNavigation(basename(__FILE__));
49
+		$adminObject->addItemButton(_AM_INSTRUCTION_ADDINSTR, 'instr.php?op=editinstr', 'add');
50
+		$adminObject->displayButton('left', '');
51
+
52
+		//
53
+		$criteria = new CriteriaCompo();
54
+
55
+		// Если была передана категория
56
+		if ($cid) {
57
+			// Добавляем в выборку ID категории
58
+			$criteria->add(new Criteria('cid', $cid, '='));
59
+			// Получаем объект категории
60
+			$objInscat = $inscatHandler->get($cid);
61
+			// Если нет такой категории
62
+			if (!is_object($objInscat)) {
63
+				redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
64
+			}
65
+		}
66
+
67
+		// Число инструкций, удовлетворяющих данному условию
68
+		$numrows = $insinstrHandler->getCount($criteria);
69
+
70
+		// Число выборки
71
+		$criteria->setLimit($limit);
72
+		// Начинасть с данного элемента
73
+		$criteria->setStart($start);
74
+		// Сортировать по
75
+		$criteria->setSort('instrid');
76
+		// Порядок сортировки
77
+		$criteria->setOrder('DESC');
78
+		// Находим все справки
79
+		$instr_arr = $insinstrHandler->getall($criteria);
80
+		// Если записей больше чем $limit, то выводим пагинатор
81
+		if ($numrows > $limit) {
82
+			$pagenav = new XoopsPageNav($numrows, $limit, $start, 'start', 'op=' . $op . '&amp;cid=' . $cid);
83
+			$pagenav = $pagenav->renderNav(4);
84
+		} else {
85
+			$pagenav = '';
86
+		}
87
+		// Выводим пагинатор в шаблон
88
+		$GLOBALS['xoopsTpl']->assign('insPagenav', $pagenav);
89
+
90
+		// Если есть записи
91
+		if ($numrows > 0) {
92
+			$class = 'odd';
93
+			foreach (array_keys($instr_arr) as $i) {
94
+
95
+				//
96
+				$class = ('even' === $class) ? 'odd' : 'even';
97
+				// ID
98
+				$insinstr_instrid = $instr_arr[$i]->getVar('instrid');
99
+				// Название
100
+				$insinstr_title   = $instr_arr[$i]->getVar('title');
101
+				// Статус
102
+				$insinstr_status  = $instr_arr[$i]->getVar('status');
103
+				// Количество страниц
104
+				$insinstr_pages   = $instr_arr[$i]->getVar('pages');
105
+				// Категория
106
+				$insinstr_cat     = $inscatHandler->get($instr_arr[$i]->getVar('cid'));
107
+
108
+				// Выводим в шаблон
109
+				$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]);
110
+			}
111
+
112
+			//
113
+			$inshead = isset($objInscat) && is_object($objInscat) ? sprintf(_AM_INSTR_LISTINSTRINCAT, $objInscat->getVar('title')) : _AM_INSTR_LISTINSTRALL;
114
+			$GLOBALS['xoopsTpl']->assign('insHead', $inshead);
115
+			// Языковые константы
116
+			$GLOBALS['xoopsTpl']->assign('lang_title', _AM_INSTRUCTION_TITLE);
117
+			$GLOBALS['xoopsTpl']->assign('lang_cat', _AM_INSTRUCTION_CAT);
118
+			$GLOBALS['xoopsTpl']->assign('lang_pages', _AM_INSTRUCTION_PAGES);
119
+			$GLOBALS['xoopsTpl']->assign('lang_action', _AM_INSTRUCTION_ACTION);
120
+			$GLOBALS['xoopsTpl']->assign('lang_display', _AM_INSTRUCTION_DISPLAY);
121
+			$GLOBALS['xoopsTpl']->assign('lang_edit', _AM_INSTRUCTION_EDIT);
122
+			$GLOBALS['xoopsTpl']->assign('lang_del', _AM_INSTRUCTION_DEL);
123
+			$GLOBALS['xoopsTpl']->assign('lang_lock', _AM_INSTRUCTION_LOCK);
124
+			$GLOBALS['xoopsTpl']->assign('lang_unlock', _AM_INSTRUCTION_UNLOCK);
125
+			$GLOBALS['xoopsTpl']->assign('lang_addpage', _AM_INSTRUCTION_ADDPAGE);
126
+			$GLOBALS['xoopsTpl']->assign('lang_addinstr', _AM_INSTRUCTION_ADDINSTR);
127
+		}
128
+
129
+		// Выводим шаблон
130
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_instr.tpl');
131
+
132
+		// Текст внизу админки
133
+		include __DIR__ . '/admin_footer.php';
134
+
135
+		break;
136
+
137
+	// Редактирование категории
138
+	case 'editinstr':
139
+
140
+		// Заголовок админки
141
+		xoops_cp_header();
142
+		// Меню
143
+		$adminObject->displayNavigation(basename(__FILE__));
144
+
145
+		// Если мы редактируем инструкцию
146
+		if ($instrid) {
147
+			$objInsinstr = $insinstrHandler->get($instrid);
148
+			// Создание новой страницы
149
+		} else {
150
+			$objInsinstr = $insinstrHandler->create();
151
+		}
152
+
153
+		// Выводим шаблон
154
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editinstr.tpl');
155
+		$form = $objInsinstr->getForm('instr.php');
156
+		// Форма
157
+		echo $form->render();
158
+
159
+		// Текст внизу админки
160
+		include __DIR__ . '/admin_footer.php';
161
+
162
+		break;
163
+
164
+	// Сохранение инструкций
165
+	case 'saveinstr':
166
+
167
+		// Проверка
168
+		if (!$GLOBALS['xoopsSecurity']->check()) {
169
+			redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
170
+		}
171
+		// Если мы редактируем
172
+		if ($instrid) {
173
+			$objInsinstr = $insinstrHandler->get($instrid);
174
+		} else {
175
+			$objInsinstr = $insinstrHandler->create();
176
+			// Указываем дату создания
177
+			$objInsinstr->setVar('datecreated', $time);
178
+			// Указываем пользователя
179
+			$objInsinstr->setVar('uid', $uid);
180
+		}
181
+
182
+		$err         = false;
183
+		$message_err = '';
184
+		//
185
+		$instr_title       = InstructionUtility::cleanVars($_POST, 'title', '', 'string');
186
+		$instr_description = InstructionUtility::cleanVars($_POST, 'description', '', 'string');
187
+
188
+		// Дата обновления
189
+		$objInsinstr->setVar('dateupdated', $time);
190
+		//
191
+		$objInsinstr->setVar('cid', $cid);
192
+		$objInsinstr->setVar('title', $instr_title);
193
+		$objInsinstr->setVar('status', $_POST['status']);
194
+		$objInsinstr->setVar('description', $instr_description);
195
+		$objInsinstr->setVar('metakeywords', $_POST['metakeywords']);
196
+		$objInsinstr->setVar('metadescription', $_POST['metadescription']);
197
+
198
+		// Проверка категорий
199
+		if (!$cid) {
200
+			$err         = true;
201
+			$message_err .= _AM_INSTRUCTION_ERR_CAT . '<br>';
202
+		}
203
+		// Проверка названия
204
+		if (!$instr_title) {
205
+			$err         = true;
206
+			$message_err .= _AM_INSTR_ERR_TITLE . '<br>';
207
+		}
208
+		// Проверка основного текста
209
+		if (!$instr_description) {
210
+			$err         = true;
211
+			$message_err .= _AM_INSTR_ERR_DESCRIPTION . '<br>';
212
+		}
213
+
214
+		// Если были ошибки
215
+		if (true === $err) {
216
+			xoops_cp_header();
217
+			// Меню страницы
218
+			$adminObject->displayNavigation(basename(__FILE__));
219
+
220
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
221
+			// Выводим ошибки в шаблон
222
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
223
+			// Если небыло ошибок
224
+		} else {
225
+			// Вставляем данные в БД
226
+			if ($insinstrHandler->insert($objInsinstr)) {
227
+				// Получаем ID созданной записи
228
+				$instrid_new = $instrid ?: $objInsinstr->get_new_enreg();
229
+				// Обновление даты в категории
230
+				$inscatHandler->updateDateupdated($cid, $time);
231
+				// Тэги
232
+				if (xoops_getModuleOption('usetag', 'instruction')) {
233
+					$tagHandler = xoops_getModuleHandler('tag', 'tag');
234
+					$tagHandler->updateByItem($_POST['tag'], $instrid_new, $GLOBALS['xoopsModule']->getVar('dirname'), 0);
235
+				}
236
+
237
+				// Если мы редактируем
238
+				if ($instrid) {
239
+					redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRMODIFY);
240
+				} else {
241
+					redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRADDED);
242
+				}
243
+			}
244
+			xoops_cp_header();
245
+			// Меню страницы
246
+			$adminObject->displayNavigation(basename(__FILE__));
247
+
248
+			// Выводим ошибки в шаблон
249
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInstructioncat->getHtmlErrors());
250
+		}
251
+		// Выводим шаблон
252
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_saveinstr.tpl');
253
+		// Выводим форму
254
+		$form = $objInsinstr->getForm();
255
+		// Форма
256
+		echo $form->render();
257
+		// Текст внизу админки
258
+		include __DIR__ . '/admin_footer.php';
259
+
260
+		break;
261
+
262
+	// Просмотр категории
263
+	case 'viewinstr':
264
+
265
+		// Подключаем трей
266
+		include_once XOOPS_ROOT_PATH . '/modules/instruction/class/tree.php';
267
+
268
+		// Заголовок админки
269
+		xoops_cp_header();
270
+		// Меню
271
+		$adminObject->displayNavigation(basename(__FILE__));
272
+		// Кнопки
273
+		$adminObject->addItemButton(_AM_INSTRUCTION_ADDPAGE, 'instr.php?op=editpage&instrid=' . $instrid, 'add');
274
+		$adminObject->displayButton('left', '');
275
+
276
+		//
277
+		$objInsinstr = $insinstrHandler->get($instrid);
278
+
279
+		// Находим все страницы в данной инструкции
280
+		$criteria = new CriteriaCompo();
281
+		$criteria->add(new Criteria('instrid', $instrid, '='));
282
+		$criteria->setSort('weight');
283
+		$criteria->setOrder('ASC');
284
+		$ins_page = $inspageHandler->getall($criteria);
285
+		//
286
+		unset($criteria);
287
+
288
+		// Инициализируем
289
+		$instree = new InstructionTree($ins_page, 'pageid', 'pid');
290
+		// Выводим список страниц в шаблон
291
+		$GLOBALS['xoopsTpl']->assign('insListPage', $instree->makePagesAdmin($objInsinstr, '--'));
292
+
293
+		// Выводим шаблон
294
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_viewinstr.tpl');
295
+
296
+		// Текст внизу админки
297
+		include __DIR__ . '/admin_footer.php';
298
+
299
+		break;
300
+
301
+	// Удаление категории
302
+	case 'delinstr':
303
+
304
+		// Проверка на instrid
305
+		// ==================
306
+		// Объект инструкций
307
+		$objInsinstr = $insinstrHandler->get($instrid);
308
+
309
+		// Нажали ли мы на кнопку OK
310
+		$ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
311
+		//
312
+		if ($ok) {
313
+
314
+			// Проверка
315
+			if (!$GLOBALS['xoopsSecurity']->check()) {
316
+				redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
317
+			}
318
+			// Находим все страницы, пренадлежащие этой инструкции
319
+			$criteria = new CriteriaCompo();
320
+			$criteria->add(new Criteria('instrid', $instrid));
321
+			$ins_page = $inspageHandler->getall($criteria);
322
+			//
323
+			unset($criteria);
324
+			// Перебираем все страницы в данной инструкции
325
+			foreach (array_keys($ins_page) as $i) {
326
+				// Декримент комментов
327
+				// Делает дикримент одного коммента, а не всех в цикле...
328
+				// Удаляем комментарии
329
+				xoops_comment_delete($GLOBALS['xoopsModule']->getVar('mid'), $ins_page[$i]->getVar('pageid'));
330
+				// Декримент страниц (Опционально)
331
+				// ==============================
332
+
333
+				// Удаляем страницу
334
+				// Сделать проверку на удалённость страницы
335
+				// ========================================
336
+				$inspageHandler->delete($ins_page[$i]);
337
+			}
338
+			// Пытаемся удалить инструкцию
339
+			if ($insinstrHandler->delete($objInsinstr)) {
340
+				// Редирект
341
+				redirect_header('instr.php', 3, _AM_INSTRUCTION_INSTRDELETED);
342
+			} else {
343
+				// Редирект
344
+				redirect_header('instr.php', 3, _AM_INSTRUCTION_ERR_DELINSTR);
345
+			}
346
+		} else {
347
+			xoops_cp_header();
348
+
349
+			$adminObject->displayNavigation(basename(__FILE__));
350
+			// Форма
351
+			xoops_confirm(['ok' => 1, 'instrid' => $instrid, 'op' => 'delinstr'], 'instr.php', sprintf(_AM_INSTRUCTION_FORMDELINSTR, $objInsinstr->getVar('title')));
352
+			// Текст внизу админки
353
+			include __DIR__ . '/admin_footer.php';
354
+		}
355
+
356
+		break;
357
+
358
+	// Добавление страницы
359
+	case 'editpage':
360
+
361
+		// Заголовок админки
362
+		xoops_cp_header();
363
+		// Скрипты
364
+		$xoTheme->addScript(XOOPS_URL . '/modules/instruction/assets/js/admin.js');
365
+		// Меню
366
+		$adminObject->displayNavigation(basename(__FILE__));
367
+
368
+		// Если мы редактируем страницу
369
+		if ($pageid) {
370
+			// Получаем объект страницы
371
+			$objInspage = $inspageHandler->get($pageid);
372
+			// ID инструкции
373
+			$instrid = $objInspage->getVar('instrid');
374
+			// Создание новой страницы
375
+		} elseif ($instrid) {
376
+			// Создаём объект страницы
377
+			$objInspage = $inspageHandler->create();
378
+			// Устанавливаем родительскую страницу
379
+			$objInspage->setVar('pid', $pid);
380
+		} else {
381
+			redirect_header('instr.php', 3, _AM_INSTRUCTION_BADREQUEST);
382
+		}
383
+		// Форма
384
+		$form = $objInspage->getForm('instr.php', $instrid);
385
+		// Форма
386
+		echo $form->render();
387
+		// Выводим шаблон
388
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_editpage.tpl');
389
+
390
+		// Текст внизу админки
391
+		include __DIR__ . '/admin_footer.php';
392
+
393
+		break;
394
+
395
+	// Сохранение страницы
396
+	case 'savepage':
397
+		// Ошибки
398
+		$err         = false;
399
+		$message_err = '';
400
+
401
+		// Проверка сессии
402
+		if (!$GLOBALS['xoopsSecurity']->check()) {
403
+			$err         = true;
404
+			$err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
405
+			$message_err .= $err_txt . '<br>';
406
+		}
407
+
408
+		// Если мы редактируем
409
+		if ($pageid) {
410
+			$objInspage = $inspageHandler->get($pageid);
411
+		} elseif ($instrid) {
412
+			$objInspage = $inspageHandler->create();
413
+			// Если мы создаём страницу необходимо указать к какой инструкции
414
+			$objInspage->setVar('instrid', $instrid);
415
+			// Указываем дату создания
416
+			$objInspage->setVar('datecreated', $time);
417
+			// Указываем пользователя
418
+			$objInspage->setVar('uid', $uid);
419
+		} else {
420
+			redirect_header('instr.php', 3, _AM_INSTRUCTION_BADREQUEST);
421
+		}
422
+
423
+		//
424
+		$page_title    = InstructionUtility::cleanVars($_POST, 'title', '', 'string');
425
+		$page_hometext = InstructionUtility::cleanVars($_POST, 'hometext', '', 'string');
426
+
427
+		// Родительская страница
428
+		$objInspage->setVar('pid', $pid);
429
+		// Дата обновления
430
+		$objInspage->setVar('dateupdated', $time);
431
+		// Название страницы
432
+		$objInspage->setVar('title', $page_title);
433
+		// Вес страницы
434
+		$objInspage->setVar('weight', $weight);
435
+		// Основной текст
436
+		$objInspage->setVar('hometext', $page_hometext);
437
+		// Сноска
438
+		$objInspage->setVar('footnote', InstructionUtility::cleanVars($_POST, 'footnote', '', 'string'));
439
+		// Статус
440
+		$objInspage->setVar('status', InstructionUtility::cleanVars($_POST, 'status', 0, 'int'));
441
+		// Тип
442
+		$objInspage->setVar('type', InstructionUtility::cleanVars($_POST, 'type', 0, 'int'));
443
+		// Мета-теги описания
444
+		$objInspage->setVar('keywords', InstructionUtility::cleanVars($_POST, 'keywords', '', 'string'));
445
+		// Мета-теги ключевых слов
446
+		$objInspage->setVar('description', InstructionUtility::cleanVars($_POST, 'description', '', 'string'));
447
+		//
448
+		$dosmiley = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
449
+		$doxcode  = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
450
+		$dobr     = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
451
+		$dohtml   = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
452
+		//$doimage = ( isset( $_POST['doimage'] ) && intval( $_POST['doimage'] ) > 0 ) ? 1 : 0;
453
+		$objInspage->setVar('dohtml', $dohtml);
454
+		$objInspage->setVar('dosmiley', $dosmiley);
455
+		$objInspage->setVar('doxcode', $doxcode);
456
+		//$objInspage->setVar( 'doimage', $doimage );
457
+		$objInspage->setVar('dobr', $dobr);
458
+
459
+		//
460
+		if (!$pageid && !$instrid) {
461
+			$err         = true;
462
+			$message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
463
+		}
464
+		// Проверка веса
465
+		if (0 == $weight) {
466
+			$err         = true;
467
+			$message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
468
+		}
469
+		// Проверка родительской страницы
470
+		if ($pageid && ($pageid == $pid)) {
471
+			$err         = true;
472
+			$message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
473
+		}
474
+		// Проверка названия
475
+		if (!$page_title) {
476
+			$err         = true;
477
+			$message_err .= _AM_INSTR_ERR_TITLE . '<br>';
478
+		}
479
+		// Проверка основного текста
480
+		if (!$page_hometext) {
481
+			$err         = true;
482
+			$message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
483
+		}
484
+
485
+		// Если были ошибки
486
+		if (true === $err) {
487
+			xoops_cp_header();
488
+			// Меню страницы
489
+			$adminObject->displayNavigation(basename(__FILE__));
490
+
491
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
492
+			// Выводим ошибки в шаблон
493
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $message_err);
494
+			// Если небыло ошибок
495
+		} else {
496
+			// Вставляем данные в БД
497
+			if ($inspageHandler->insert($objInspage)) {
498
+				// Ссылка для редиректа
499
+				$redirect_url = 'instr.php?op=viewinstr&amp;instrid=' . $instrid . '#pageid_' . $pid;
500
+				// Получаем ID инструкции
501
+				$instrid = $objInspage->getInstrid();
502
+				// Обновляем в инструкции число страниц и дату
503
+				$insinstrHandler->updatePages($instrid);
504
+				// Если мы редактируем
505
+				if ($pageid) {
506
+					// Редирект
507
+					redirect_header($redirect_url, 3, _AM_INSTRUCTION_PAGEMODIFY);
508
+					// Если мы добавляем
509
+				} else {
510
+					// Инкримент комментов
511
+					$inspageHandler->updateposts($uid, $_POST['status'], 'add');
512
+					// Редирект
513
+					redirect_header($redirect_url, 3, _AM_INSTRUCTION_PAGEADDED);
514
+				}
515
+			}
516
+			xoops_cp_header();
517
+			// Меню страницы
518
+			$adminObject->displayNavigation(basename(__FILE__));
519
+
520
+			// Выводим ошибки в шаблон
521
+			$GLOBALS['xoopsTpl']->assign('insErrorMsg', $objInspage->getHtmlErrors());
522
+		}
523
+		// Скрипты
524
+		$xoTheme->addScript(XOOPS_URL . '/modules/instruction/assets/js/admin.js');
525
+		// Выводим шаблон
526
+		$GLOBALS['xoopsTpl']->display('db:admin/instruction_admin_savepage.tpl');
527
+		// Выводим форму
528
+		$form = $objInspage->getForm('instr.php', $instrid);
529
+		// Форма
530
+		echo $form->render();
531
+		// Текст внизу админки
532
+		include __DIR__ . '/admin_footer.php';
533
+
534
+		break;
535
+
536
+	// Удаление страницы
537
+	case 'delpage':
538
+
539
+		// Проверка на pageid
540
+		// ==================
541
+
542
+		$objInspage = $inspageHandler->get($pageid);
543
+		// Нажали ли мы на кнопку OK
544
+		$ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
545
+		// Если мы нажали на кнопку
546
+		if ($ok) {
547
+
548
+			// Проверка
549
+			if (!$GLOBALS['xoopsSecurity']->check()) {
550
+				redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
551
+			}
552
+			// ID инструкции
553
+			$page_instrid = $objInspage->getVar('instrid');
554
+			// Декримент комментов
555
+			$inspageHandler->updateposts($objInspage->getVar('uid'), $objInspage->getVar('status'), 'delete');
556
+			// Пытаемся удалить страницу
557
+			if ($inspageHandler->delete($objInspage)) {
558
+				// Обновляем в инструкции число страниц и дату
559
+				$insinstrHandler->updatePages($page_instrid);
560
+				// Удаляем комментарии
561
+				xoops_comment_delete($GLOBALS['xoopsModule']->getVar('mid'), $pageid);
562
+				//
563
+				redirect_header('instr.php?op=viewinstr&amp;instrid=' . $page_instrid, 3, _AM_INSTRUCTION_PAGEDELETED);
564
+				// Если не смогли удалить страницу
565
+			} else {
566
+				redirect_header('instr.php?op=viewinstr&amp;instrid=' . $page_instrid, 3, _AM_INSTRUCTION_ERR_DELPAGE);
567
+			}
568
+		} else {
569
+
570
+			// Заголовок админки
571
+			xoops_cp_header();
572
+			// Меню
573
+			$adminObject->displayNavigation(basename(__FILE__));
574
+			// Форма
575
+			xoops_confirm(['ok' => 1, 'pageid' => $pageid, 'op' => 'delpage'], 'instr.php', sprintf(_AM_INSTRUCTION_FORMDELPAGE, $objInspage->getVar('title')));
576
+			// Текст внизу админки
577
+			include __DIR__ . '/admin_footer.php';
578
+		}
579
+
580
+		break;
581
+
582
+	// Удаление страницы
583
+	case 'updpage':
584
+
585
+		// Принимаем данные
586
+		$pageids = $_POST['pageids'];
587
+		$weights = $_POST['weights'];
588
+		// Перебираем все значения
589
+		foreach ($pageids as $key => $pageid) {
590
+
591
+			// Объявляем объект
592
+			$objInspage = $inspageHandler->get($pageid);
593
+			// Устанавливаем вес
594
+			$objInspage->setVar('weight', $weights[$key]);
595
+			// Вставляем данные в БД
596
+			$inspageHandler->insert($objInspage);
597
+			// Удаляем объект
598
+			unset($objInspage);
599
+		}
600
+		// Редирект
601
+		redirect_header('instr.php?op=viewinstr&instrid=' . $instrid, 3, _AM_INSTRUCTION_PAGESUPDATE);
602
+
603
+		break;
604 604
 
605 605
 }
Please login to merge, or discard this patch.