Completed
Push — master ( 5fe85d...a4e09c )
by Michael
01:40
created
admin/menu.php 2 patches
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -1,12 +1,12 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if (!isset($moduleDirName)) {
4
-    $moduleDirName = basename(dirname(__DIR__));
4
+	$moduleDirName = basename(dirname(__DIR__));
5 5
 }
6 6
 
7 7
 if (false !== ($moduleHelper = Xmf\Module\Helper::getHelper($moduleDirName))) {
8 8
 } else {
9
-    $moduleHelper = Xmf\Module\Helper::getHelper('system');
9
+	$moduleHelper = Xmf\Module\Helper::getHelper('system');
10 10
 }
11 11
 
12 12
 $pathIcon32    = \Xmf\Module\Admin::menuIconPath('');
@@ -17,34 +17,34 @@  discard block
 block discarded – undo
17 17
 
18 18
 // Административное меню
19 19
 $adminmenu = [
20
-    [
21
-        'title' => _MI_INSTRUCTION_ADMIN_HOME,
22
-        'link'  => 'admin/index.php',
23
-        'desc'  => _MI_INSTRUCTION_ADMIN_HOME_DESC,
24
-        'icon'  => $pathIcon32 . '/home.png'
25
-    ],
26
-    [
27
-        'title' => _MI_INSTRUCTION_ADMIN_CAT,
28
-        'link'  => 'admin/cat.php',
29
-        'desc'  => _MI_INSTRUCTION_ADMIN_CAT_DESC,
30
-        'icon'  => $pathIcon32 . '/category.png'
31
-    ],
32
-    [
33
-        'title' => _MI_INSTRUCTION_ADMIN_INSTR,
34
-        'link'  => 'admin/instr.php',
35
-        'desc'  => _MI_INSTRUCTION_ADMIN_INSTR_DESC,
36
-        'icon'  => $pathModIcon32 . '/nav_book.png'
37
-    ],
38
-    [
39
-        'title' => _MI_INSTRUCTION_ADMIN_PERM,
40
-        'link'  => 'admin/perm.php',
41
-        'desc'  => _MI_INSTRUCTION_ADMIN_PERM_DESC,
42
-        'icon'  => $pathIcon32 . '/permissions.png'
43
-    ],
44
-    [
45
-        'title' => _MI_INSTRUCTION_ADMIN_ABOUT,
46
-        'link'  => 'admin/about.php',
47
-        'desc'  => _MI_INSTRUCTION_ADMIN_ABOUT_DESC,
48
-        'icon'  => $pathIcon32 . '/about.png'
49
-    ]
20
+	[
21
+		'title' => _MI_INSTRUCTION_ADMIN_HOME,
22
+		'link'  => 'admin/index.php',
23
+		'desc'  => _MI_INSTRUCTION_ADMIN_HOME_DESC,
24
+		'icon'  => $pathIcon32 . '/home.png'
25
+	],
26
+	[
27
+		'title' => _MI_INSTRUCTION_ADMIN_CAT,
28
+		'link'  => 'admin/cat.php',
29
+		'desc'  => _MI_INSTRUCTION_ADMIN_CAT_DESC,
30
+		'icon'  => $pathIcon32 . '/category.png'
31
+	],
32
+	[
33
+		'title' => _MI_INSTRUCTION_ADMIN_INSTR,
34
+		'link'  => 'admin/instr.php',
35
+		'desc'  => _MI_INSTRUCTION_ADMIN_INSTR_DESC,
36
+		'icon'  => $pathModIcon32 . '/nav_book.png'
37
+	],
38
+	[
39
+		'title' => _MI_INSTRUCTION_ADMIN_PERM,
40
+		'link'  => 'admin/perm.php',
41
+		'desc'  => _MI_INSTRUCTION_ADMIN_PERM_DESC,
42
+		'icon'  => $pathIcon32 . '/permissions.png'
43
+	],
44
+	[
45
+		'title' => _MI_INSTRUCTION_ADMIN_ABOUT,
46
+		'link'  => 'admin/about.php',
47
+		'desc'  => _MI_INSTRUCTION_ADMIN_ABOUT_DESC,
48
+		'icon'  => $pathIcon32 . '/about.png'
49
+	]
50 50
 ];
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
1 1
 <?php
2 2
 
3
-if (!isset($moduleDirName)) {
3
+if ( ! isset($moduleDirName)) {
4 4
     $moduleDirName = basename(dirname(__DIR__));
5 5
 }
6 6
 
Please login to merge, or discard this patch.
admin/perm.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -36,24 +36,24 @@  discard block
 block discarded – undo
36 36
 $moduleId = $GLOBALS['xoopsModule']->getVar('mid');
37 37
 
38 38
 switch ($permission) {
39
-    // Права на просмотр
40
-    case 1:
41
-        $formTitle             = _AM_INSTRUCTION_PERM_VIEW;
42
-        $permissionName        = 'instruction_view';
43
-        $permissionDescription = _AM_INSTRUCTION_PERM_VIEW_DSC;
44
-        break;
45
-    // Права на добавление
46
-    case 2:
47
-        $formTitle             = _AM_INSTRUCTION_PERM_SUBMIT;
48
-        $permissionName        = 'instruction_submit';
49
-        $permissionDescription = _AM_INSTRUCTION_PERM_SUBMIT_DSC;
50
-        break;
51
-    // Права на редактирование
52
-    case 3:
53
-        $formTitle             = _AM_INSTRUCTION_PERM_EDIT;
54
-        $permissionName        = 'instruction_edit';
55
-        $permissionDescription = _AM_INSTRUCTION_PERM_EDIT_DSC;
56
-        break;
39
+	// Права на просмотр
40
+	case 1:
41
+		$formTitle             = _AM_INSTRUCTION_PERM_VIEW;
42
+		$permissionName        = 'instruction_view';
43
+		$permissionDescription = _AM_INSTRUCTION_PERM_VIEW_DSC;
44
+		break;
45
+	// Права на добавление
46
+	case 2:
47
+		$formTitle             = _AM_INSTRUCTION_PERM_SUBMIT;
48
+		$permissionName        = 'instruction_submit';
49
+		$permissionDescription = _AM_INSTRUCTION_PERM_SUBMIT_DSC;
50
+		break;
51
+	// Права на редактирование
52
+	case 3:
53
+		$formTitle             = _AM_INSTRUCTION_PERM_EDIT;
54
+		$permissionName        = 'instruction_edit';
55
+		$permissionDescription = _AM_INSTRUCTION_PERM_EDIT_DSC;
56
+		break;
57 57
 }
58 58
 
59 59
 // Права
@@ -62,9 +62,9 @@  discard block
 block discarded – undo
62 62
 $sql    = 'SELECT cid, pid, title FROM ' . $xoopsDB->prefix('instruction_cat') . ' ORDER BY title';
63 63
 $result = $xoopsDB->query($sql);
64 64
 if ($result) {
65
-    while ($row = $xoopsDB->fetchArray($result)) {
66
-        $permissionsForm->addItem($row['cid'], $row['title'], $row['pid']);
67
-    }
65
+	while ($row = $xoopsDB->fetchArray($result)) {
66
+		$permissionsForm->addItem($row['cid'], $row['title'], $row['pid']);
67
+	}
68 68
 }
69 69
 
70 70
 echo $permissionsForm->render();
Please login to merge, or discard this patch.
admin/ajax.php 2 patches
Indentation   +163 added lines, -163 removed lines patch added patch discarded remove patch
@@ -19,178 +19,178 @@
 block discarded – undo
19 19
 
20 20
 // Выбор
21 21
 switch ($op) {
22
-    // Сохранение страницы
23
-    case 'savepage':
24
-        // Выходной массив
25
-        $ret = [];
22
+	// Сохранение страницы
23
+	case 'savepage':
24
+		// Выходной массив
25
+		$ret = [];
26 26
 
27
-        // Ошибки
28
-        $err         = false;
29
-        $message_err = '';
27
+		// Ошибки
28
+		$err         = false;
29
+		$message_err = '';
30 30
 
31
-        //
32
-        $title       = InstructionUtility::cleanVars($_POST, 'title', '', 'string');
33
-        $pid         = InstructionUtility::cleanVars($_POST, 'pid', 0, 'int');
34
-        $weight      = InstructionUtility::cleanVars($_POST, 'weight', 0, 'int');
35
-        $hometext    = InstructionUtility::cleanVars($_POST, 'hometext', '', 'string');
36
-        $footnote    = InstructionUtility::cleanVars($_POST, 'footnote', '', 'string');
37
-        $status      = InstructionUtility::cleanVars($_POST, 'status', 0, 'int');
38
-        $type        = InstructionUtility::cleanVars($_POST, 'type', 0, 'int');
39
-        $keywords    = InstructionUtility::cleanVars($_POST, 'keywords', '', 'string');
40
-        $description = InstructionUtility::cleanVars($_POST, 'description', '', 'string');
41
-        $dosmiley    = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
42
-        $doxcode     = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
43
-        $dobr        = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
44
-        $dohtml      = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
45
-        //$dohtml      = InstructionUtility::cleanVars( $_POST, 'dohtml', 0, 'int' );
46
-        //$dosmiley    = InstructionUtility::cleanVars( $_POST, 'dosmiley', 0, 'int' );
47
-        //$doxcode     = InstructionUtility::cleanVars( $_POST, 'doxcode', 0, 'int' );
48
-        //$dobr        = InstructionUtility::cleanVars( $_POST, 'dobr', 0, 'int' );
49
-        $pageid  = InstructionUtility::cleanVars($_POST, 'pageid', 0, 'int');
50
-        $instrid = InstructionUtility::cleanVars($_POST, 'instrid', 0, 'int');
31
+		//
32
+		$title       = InstructionUtility::cleanVars($_POST, 'title', '', 'string');
33
+		$pid         = InstructionUtility::cleanVars($_POST, 'pid', 0, 'int');
34
+		$weight      = InstructionUtility::cleanVars($_POST, 'weight', 0, 'int');
35
+		$hometext    = InstructionUtility::cleanVars($_POST, 'hometext', '', 'string');
36
+		$footnote    = InstructionUtility::cleanVars($_POST, 'footnote', '', 'string');
37
+		$status      = InstructionUtility::cleanVars($_POST, 'status', 0, 'int');
38
+		$type        = InstructionUtility::cleanVars($_POST, 'type', 0, 'int');
39
+		$keywords    = InstructionUtility::cleanVars($_POST, 'keywords', '', 'string');
40
+		$description = InstructionUtility::cleanVars($_POST, 'description', '', 'string');
41
+		$dosmiley    = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
42
+		$doxcode     = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
43
+		$dobr        = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
44
+		$dohtml      = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
45
+		//$dohtml      = InstructionUtility::cleanVars( $_POST, 'dohtml', 0, 'int' );
46
+		//$dosmiley    = InstructionUtility::cleanVars( $_POST, 'dosmiley', 0, 'int' );
47
+		//$doxcode     = InstructionUtility::cleanVars( $_POST, 'doxcode', 0, 'int' );
48
+		//$dobr        = InstructionUtility::cleanVars( $_POST, 'dobr', 0, 'int' );
49
+		$pageid  = InstructionUtility::cleanVars($_POST, 'pageid', 0, 'int');
50
+		$instrid = InstructionUtility::cleanVars($_POST, 'instrid', 0, 'int');
51 51
 
52
-        // Проверка
53
-        if (!$GLOBALS['xoopsSecurity']->check()) {
54
-            $err         = true;
55
-            $err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
56
-            $message_err .= $err_txt . '<br>' . _AM_INSTR_TRY_AGAIN . '<br>';
57
-        }
58
-        // =========================
59
-        // Устанавливаем новый token
60
-        $token_name    = 'XOOPS_TOKEN';
61
-        $token_timeout = 0;
62
-        // $token_name . '_REQUEST' - название элемента формы
63
-        $ret['toket'] = $GLOBALS['xoopsSecurity']->createToken($token_timeout, $token_name);
64
-        // =========================
52
+		// Проверка
53
+		if (!$GLOBALS['xoopsSecurity']->check()) {
54
+			$err         = true;
55
+			$err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
56
+			$message_err .= $err_txt . '<br>' . _AM_INSTR_TRY_AGAIN . '<br>';
57
+		}
58
+		// =========================
59
+		// Устанавливаем новый token
60
+		$token_name    = 'XOOPS_TOKEN';
61
+		$token_timeout = 0;
62
+		// $token_name . '_REQUEST' - название элемента формы
63
+		$ret['toket'] = $GLOBALS['xoopsSecurity']->createToken($token_timeout, $token_name);
64
+		// =========================
65 65
 
66
-        // Если мы редактируем
67
-        if ($pageid) {
68
-            $objInspage = $inspageHandler->get($pageid);
69
-        } elseif ($instrid) {
70
-            $objInspage = $inspageHandler->create();
71
-            // Если мы создаём страницу необходимо указать к какой инструкции
72
-            $objInspage->setVar('instrid', $instrid);
73
-            // Указываем дату создания
74
-            $objInspage->setVar('datecreated', $time);
75
-            // Указываем пользователя
76
-            $objInspage->setVar('uid', $uid);
77
-        } else {
78
-            // Устанавливаем сообщение
79
-            $ret['message'] = _AM_INSTRUCTION_BADREQUEST;
80
-            // Возвращаем ответ скрипту через JSON
81
-            echo json_encode($ret);
82
-            // Прерываем выполнение
83
-            exit();
84
-        }
66
+		// Если мы редактируем
67
+		if ($pageid) {
68
+			$objInspage = $inspageHandler->get($pageid);
69
+		} elseif ($instrid) {
70
+			$objInspage = $inspageHandler->create();
71
+			// Если мы создаём страницу необходимо указать к какой инструкции
72
+			$objInspage->setVar('instrid', $instrid);
73
+			// Указываем дату создания
74
+			$objInspage->setVar('datecreated', $time);
75
+			// Указываем пользователя
76
+			$objInspage->setVar('uid', $uid);
77
+		} else {
78
+			// Устанавливаем сообщение
79
+			$ret['message'] = _AM_INSTRUCTION_BADREQUEST;
80
+			// Возвращаем ответ скрипту через JSON
81
+			echo json_encode($ret);
82
+			// Прерываем выполнение
83
+			exit();
84
+		}
85 85
 
86
-        // Родительская страница
87
-        $objInspage->setVar('pid', $pid);
88
-        // Дата обновления
89
-        $objInspage->setVar('dateupdated', $time);
90
-        // Название
91
-        $objInspage->setVar('title', $title);
92
-        // Вес
93
-        $objInspage->setVar('weight', $weight);
94
-        // Текст
95
-        $objInspage->setVar('hometext', $hometext);
96
-        // Сноска
97
-        $objInspage->setVar('footnote', $footnote);
98
-        // Статус
99
-        $objInspage->setVar('status', $status);
100
-        // Тип
101
-        $objInspage->setVar('type', $type);
102
-        // Мета-теги ключевых слов
103
-        $objInspage->setVar('keywords', $keywords);
104
-        // Мета-теги описания
105
-        $objInspage->setVar('description', $description);
106
-        //
107
-        $objInspage->setVar('dohtml', $dohtml);
108
-        $objInspage->setVar('dosmiley', $dosmiley);
109
-        $objInspage->setVar('doxcode', $doxcode);
110
-        $objInspage->setVar('dobr', $dobr);
86
+		// Родительская страница
87
+		$objInspage->setVar('pid', $pid);
88
+		// Дата обновления
89
+		$objInspage->setVar('dateupdated', $time);
90
+		// Название
91
+		$objInspage->setVar('title', $title);
92
+		// Вес
93
+		$objInspage->setVar('weight', $weight);
94
+		// Текст
95
+		$objInspage->setVar('hometext', $hometext);
96
+		// Сноска
97
+		$objInspage->setVar('footnote', $footnote);
98
+		// Статус
99
+		$objInspage->setVar('status', $status);
100
+		// Тип
101
+		$objInspage->setVar('type', $type);
102
+		// Мета-теги ключевых слов
103
+		$objInspage->setVar('keywords', $keywords);
104
+		// Мета-теги описания
105
+		$objInspage->setVar('description', $description);
106
+		//
107
+		$objInspage->setVar('dohtml', $dohtml);
108
+		$objInspage->setVar('dosmiley', $dosmiley);
109
+		$objInspage->setVar('doxcode', $doxcode);
110
+		$objInspage->setVar('dobr', $dobr);
111 111
 
112
-        // Проверка категорий
113
-        if (!$pageid && !$instrid) {
114
-            $err         = true;
115
-            $message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
116
-        }
117
-        // Проверка веса
118
-        if (0 == $weight) {
119
-            $err         = true;
120
-            $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
121
-        }
122
-        // Проверка родительской страницы
123
-        if ($pageid && ($pageid == $pid)) {
124
-            $err         = true;
125
-            $message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
126
-        }
127
-        // Проверка названия
128
-        if (!$title) {
129
-            $err         = true;
130
-            $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
131
-        }
132
-        // Проверка основного текста
133
-        if (!$hometext) {
134
-            $err         = true;
135
-            $message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
136
-        }
112
+		// Проверка категорий
113
+		if (!$pageid && !$instrid) {
114
+			$err         = true;
115
+			$message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
116
+		}
117
+		// Проверка веса
118
+		if (0 == $weight) {
119
+			$err         = true;
120
+			$message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
121
+		}
122
+		// Проверка родительской страницы
123
+		if ($pageid && ($pageid == $pid)) {
124
+			$err         = true;
125
+			$message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
126
+		}
127
+		// Проверка названия
128
+		if (!$title) {
129
+			$err         = true;
130
+			$message_err .= _AM_INSTR_ERR_TITLE . '<br>';
131
+		}
132
+		// Проверка основного текста
133
+		if (!$hometext) {
134
+			$err         = true;
135
+			$message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
136
+		}
137 137
 
138
-        // Если были ошибки
139
-        if (true === $err) {
140
-            //
141
-            $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
142
-            // Устанавливаем сообщение
143
-            $ret['message'] = $message_err;
144
-            // Возвращаем ответ скрипту через JSON
145
-            echo json_encode($ret);
146
-            // Прерываем выполнение
147
-            exit();
148
-            // Если небыло ошибок
149
-        } else {
150
-            // Вставляем данные в БД
151
-            if ($inspageHandler->insert($objInspage)) {
152
-                // Находим ID созданной записи
153
-                $pageid_new = $pageid ?: $objInspage->get_new_enreg();
154
-                //
155
-                $ret['pageid'] = $pageid_new;
156
-                // Получаем ID инструкции
157
-                $instrid = $objInspage->getInstrid();
158
-                // Обновляем в инструкции число страниц и дату
159
-                $insinstrHandler->updatePages($instrid);
160
-                // Если мы редактируем
161
-                if ($pageid) {
162
-                    // Устанавливаем сообщение
163
-                    $ret['message'] = '<div class="successMsg" style="text-align: left;">' . _AM_INSTRUCTION_PAGEMODIFY . '</div>';
164
-                    // Возвращаем ответ скрипту через JSON
165
-                    echo json_encode($ret);
166
-                    // Прерываем выполнение
167
-                    exit();
138
+		// Если были ошибки
139
+		if (true === $err) {
140
+			//
141
+			$message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>';
142
+			// Устанавливаем сообщение
143
+			$ret['message'] = $message_err;
144
+			// Возвращаем ответ скрипту через JSON
145
+			echo json_encode($ret);
146
+			// Прерываем выполнение
147
+			exit();
148
+			// Если небыло ошибок
149
+		} else {
150
+			// Вставляем данные в БД
151
+			if ($inspageHandler->insert($objInspage)) {
152
+				// Находим ID созданной записи
153
+				$pageid_new = $pageid ?: $objInspage->get_new_enreg();
154
+				//
155
+				$ret['pageid'] = $pageid_new;
156
+				// Получаем ID инструкции
157
+				$instrid = $objInspage->getInstrid();
158
+				// Обновляем в инструкции число страниц и дату
159
+				$insinstrHandler->updatePages($instrid);
160
+				// Если мы редактируем
161
+				if ($pageid) {
162
+					// Устанавливаем сообщение
163
+					$ret['message'] = '<div class="successMsg" style="text-align: left;">' . _AM_INSTRUCTION_PAGEMODIFY . '</div>';
164
+					// Возвращаем ответ скрипту через JSON
165
+					echo json_encode($ret);
166
+					// Прерываем выполнение
167
+					exit();
168 168
 
169
-                    // Если мы добавляем
170
-                } else {
171
-                    // Инкримент комментов
172
-                    $inspageHandler->updateposts($uid, $status, 'add');
169
+					// Если мы добавляем
170
+				} else {
171
+					// Инкримент комментов
172
+					$inspageHandler->updateposts($uid, $status, 'add');
173 173
 
174
-                    // Устанавливаем сообщение
175
-                    $ret['message'] = '<div class="successMsg" style="text-align: left;">' . _AM_INSTRUCTION_PAGEADDED . '</div>';
176
-                    // Возвращаем ответ скрипту через JSON
177
-                    echo json_encode($ret);
178
-                    // Прерываем выполнение
179
-                    exit();
180
-                }
181
-                // Если не получилось вставить данные
182
-            } else {
174
+					// Устанавливаем сообщение
175
+					$ret['message'] = '<div class="successMsg" style="text-align: left;">' . _AM_INSTRUCTION_PAGEADDED . '</div>';
176
+					// Возвращаем ответ скрипту через JSON
177
+					echo json_encode($ret);
178
+					// Прерываем выполнение
179
+					exit();
180
+				}
181
+				// Если не получилось вставить данные
182
+			} else {
183 183
 
184
-                //
185
-                $message_err = '<div class="errorMsg" style="text-align: left;">' . $objInspage->getHtmlErrors() . '</div>';
186
-                // Устанавливаем сообщение
187
-                $ret['message'] = $message_err;
188
-                // Возвращаем ответ скрипту через JSON
189
-                echo json_encode($ret);
190
-                // Прерываем выполнение
191
-                exit();
192
-            }
193
-        }
184
+				//
185
+				$message_err = '<div class="errorMsg" style="text-align: left;">' . $objInspage->getHtmlErrors() . '</div>';
186
+				// Устанавливаем сообщение
187
+				$ret['message'] = $message_err;
188
+				// Возвращаем ответ скрипту через JSON
189
+				echo json_encode($ret);
190
+				// Прерываем выполнение
191
+				exit();
192
+			}
193
+		}
194 194
 
195
-        break;
195
+		break;
196 196
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -38,10 +38,10 @@  discard block
 block discarded – undo
38 38
         $type        = InstructionUtility::cleanVars($_POST, 'type', 0, 'int');
39 39
         $keywords    = InstructionUtility::cleanVars($_POST, 'keywords', '', 'string');
40 40
         $description = InstructionUtility::cleanVars($_POST, 'description', '', 'string');
41
-        $dosmiley    = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
42
-        $doxcode     = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
43
-        $dobr        = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
44
-        $dohtml      = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
41
+        $dosmiley    = (isset($_POST['dosmiley']) && (int) $_POST['dosmiley'] > 0) ? 1 : 0;
42
+        $doxcode     = (isset($_POST['doxcode']) && (int) $_POST['doxcode'] > 0) ? 1 : 0;
43
+        $dobr        = (isset($_POST['dobr']) && (int) $_POST['dobr'] > 0) ? 1 : 0;
44
+        $dohtml      = (isset($_POST['dohtml']) && (int) $_POST['dohtml'] > 0) ? 1 : 0;
45 45
         //$dohtml      = InstructionUtility::cleanVars( $_POST, 'dohtml', 0, 'int' );
46 46
         //$dosmiley    = InstructionUtility::cleanVars( $_POST, 'dosmiley', 0, 'int' );
47 47
         //$doxcode     = InstructionUtility::cleanVars( $_POST, 'doxcode', 0, 'int' );
@@ -50,7 +50,7 @@  discard block
 block discarded – undo
50 50
         $instrid = InstructionUtility::cleanVars($_POST, 'instrid', 0, 'int');
51 51
 
52 52
         // Проверка
53
-        if (!$GLOBALS['xoopsSecurity']->check()) {
53
+        if ( ! $GLOBALS['xoopsSecurity']->check()) {
54 54
             $err         = true;
55 55
             $err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
56 56
             $message_err .= $err_txt . '<br>' . _AM_INSTR_TRY_AGAIN . '<br>';
@@ -110,28 +110,28 @@  discard block
 block discarded – undo
110 110
         $objInspage->setVar('dobr', $dobr);
111 111
 
112 112
         // Проверка категорий
113
-        if (!$pageid && !$instrid) {
114
-            $err         = true;
113
+        if ( ! $pageid && ! $instrid) {
114
+            $err = true;
115 115
             $message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
116 116
         }
117 117
         // Проверка веса
118 118
         if (0 == $weight) {
119
-            $err         = true;
119
+            $err = true;
120 120
             $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
121 121
         }
122 122
         // Проверка родительской страницы
123 123
         if ($pageid && ($pageid == $pid)) {
124
-            $err         = true;
124
+            $err = true;
125 125
             $message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
126 126
         }
127 127
         // Проверка названия
128
-        if (!$title) {
129
-            $err         = true;
128
+        if ( ! $title) {
129
+            $err = true;
130 130
             $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
131 131
         }
132 132
         // Проверка основного текста
133
-        if (!$hometext) {
134
-            $err         = true;
133
+        if ( ! $hometext) {
134
+            $err = true;
135 135
             $message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
136 136
         }
137 137
 
Please login to merge, or discard this patch.
admin/instr.php 2 patches
Spacing   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
             // Получаем объект категории
60 60
             $objInscat = $inscatHandler->get($cid);
61 61
             // Если нет такой категории
62
-            if (!is_object($objInscat)) {
62
+            if ( ! is_object($objInscat)) {
63 63
                 redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
64 64
             }
65 65
         }
@@ -169,7 +169,7 @@  discard block
 block discarded – undo
169 169
     case 'saveinstr':
170 170
 
171 171
         // Проверка
172
-        if (!$GLOBALS['xoopsSecurity']->check()) {
172
+        if ( ! $GLOBALS['xoopsSecurity']->check()) {
173 173
             redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
174 174
         }
175 175
         // Если мы редактируем
@@ -200,18 +200,18 @@  discard block
 block discarded – undo
200 200
         $objInsinstr->setVar('metadescription', $_POST['metadescription']);
201 201
 
202 202
         // Проверка категорий
203
-        if (!$cid) {
204
-            $err         = true;
203
+        if ( ! $cid) {
204
+            $err = true;
205 205
             $message_err .= _AM_INSTRUCTION_ERR_CAT . '<br>';
206 206
         }
207 207
         // Проверка названия
208
-        if (!$instr_title) {
209
-            $err         = true;
208
+        if ( ! $instr_title) {
209
+            $err = true;
210 210
             $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
211 211
         }
212 212
         // Проверка основного текста
213
-        if (!$instr_description) {
214
-            $err         = true;
213
+        if ( ! $instr_description) {
214
+            $err = true;
215 215
             $message_err .= _AM_INSTR_ERR_DESCRIPTION . '<br>';
216 216
         }
217 217
 
@@ -315,12 +315,12 @@  discard block
 block discarded – undo
315 315
         $objInsinstr = $insinstrHandler->get($instrid);
316 316
 
317 317
         // Нажали ли мы на кнопку OK
318
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
318
+        $ok = isset($_POST['ok']) ? (int) $_POST['ok'] : 0;
319 319
         //
320 320
         if ($ok) {
321 321
 
322 322
             // Проверка
323
-            if (!$GLOBALS['xoopsSecurity']->check()) {
323
+            if ( ! $GLOBALS['xoopsSecurity']->check()) {
324 324
                 redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
325 325
             }
326 326
             // Находим все страницы, пренадлежащие этой инструкции
@@ -411,7 +411,7 @@  discard block
 block discarded – undo
411 411
         $message_err = '';
412 412
 
413 413
         // Проверка сессии
414
-        if (!$GLOBALS['xoopsSecurity']->check()) {
414
+        if ( ! $GLOBALS['xoopsSecurity']->check()) {
415 415
             $err         = true;
416 416
             $err_txt     = implode(', ', $GLOBALS['xoopsSecurity']->getErrors());
417 417
             $message_err .= $err_txt . '<br>';
@@ -457,10 +457,10 @@  discard block
 block discarded – undo
457 457
         // Мета-теги ключевых слов
458 458
         $objInspage->setVar('description', InstructionUtility::cleanVars($_POST, 'description', '', 'string'));
459 459
         //
460
-        $dosmiley = (isset($_POST['dosmiley']) && (int)$_POST['dosmiley'] > 0) ? 1 : 0;
461
-        $doxcode  = (isset($_POST['doxcode']) && (int)$_POST['doxcode'] > 0) ? 1 : 0;
462
-        $dobr     = (isset($_POST['dobr']) && (int)$_POST['dobr'] > 0) ? 1 : 0;
463
-        $dohtml   = (isset($_POST['dohtml']) && (int)$_POST['dohtml'] > 0) ? 1 : 0;
460
+        $dosmiley = (isset($_POST['dosmiley']) && (int) $_POST['dosmiley'] > 0) ? 1 : 0;
461
+        $doxcode  = (isset($_POST['doxcode']) && (int) $_POST['doxcode'] > 0) ? 1 : 0;
462
+        $dobr     = (isset($_POST['dobr']) && (int) $_POST['dobr'] > 0) ? 1 : 0;
463
+        $dohtml   = (isset($_POST['dohtml']) && (int) $_POST['dohtml'] > 0) ? 1 : 0;
464 464
         //$doimage = ( isset( $_POST['doimage'] ) && intval( $_POST['doimage'] ) > 0 ) ? 1 : 0;
465 465
         $objInspage->setVar('dohtml', $dohtml);
466 466
         $objInspage->setVar('dosmiley', $dosmiley);
@@ -469,28 +469,28 @@  discard block
 block discarded – undo
469 469
         $objInspage->setVar('dobr', $dobr);
470 470
 
471 471
         //
472
-        if (!$pageid && !$instrid) {
473
-            $err         = true;
472
+        if ( ! $pageid && ! $instrid) {
473
+            $err = true;
474 474
             $message_err .= _AM_INSTRUCTION_ERR_INSTR . '<br>';
475 475
         }
476 476
         // Проверка веса
477 477
         if (0 == $weight) {
478
-            $err         = true;
478
+            $err = true;
479 479
             $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
480 480
         }
481 481
         // Проверка родительской страницы
482 482
         if ($pageid && ($pageid == $pid)) {
483
-            $err         = true;
483
+            $err = true;
484 484
             $message_err .= _AM_INSTRUCTION_ERR_PPAGE . '<br>';
485 485
         }
486 486
         // Проверка названия
487
-        if (!$page_title) {
488
-            $err         = true;
487
+        if ( ! $page_title) {
488
+            $err = true;
489 489
             $message_err .= _AM_INSTR_ERR_TITLE . '<br>';
490 490
         }
491 491
         // Проверка основного текста
492
-        if (!$page_hometext) {
493
-            $err         = true;
492
+        if ( ! $page_hometext) {
493
+            $err = true;
494 494
             $message_err .= _AM_INSTR_ERR_HOMETEXT . '<br>';
495 495
         }
496 496
 
@@ -555,12 +555,12 @@  discard block
 block discarded – undo
555 555
 
556 556
         $objInspage = $inspageHandler->get($pageid);
557 557
         // Нажали ли мы на кнопку OK
558
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
558
+        $ok = isset($_POST['ok']) ? (int) $_POST['ok'] : 0;
559 559
         // Если мы нажали на кнопку
560 560
         if ($ok) {
561 561
 
562 562
             // Проверка
563
-            if (!$GLOBALS['xoopsSecurity']->check()) {
563
+            if ( ! $GLOBALS['xoopsSecurity']->check()) {
564 564
                 redirect_header('instr.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
565 565
             }
566 566
             // ID инструкции
Please login to merge, or discard this 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.
instr.php 2 patches
Indentation   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -18,8 +18,8 @@  discard block
 block discarded – undo
18 18
 $criteria->add(new Criteria('instrid', $instrid));
19 19
 $criteria->add(new Criteria('status ', '0', '>'));
20 20
 if (0 == $insinstrHandler->getCount($criteria)) {
21
-    redirect_header('index.php', 3, _MD_INSTRUCTION_INSTRNOTEXIST);
22
-    exit();
21
+	redirect_header('index.php', 3, _MD_INSTRUCTION_INSTRNOTEXIST);
22
+	exit();
23 23
 }
24 24
 //
25 25
 unset($criteria);
@@ -41,8 +41,8 @@  discard block
 block discarded – undo
41 41
 // Права на просмотр инструкции
42 42
 $categories = InstructionUtility::getItemIds();
43 43
 if (!in_array($objInsinstr->getVar('cid'), $categories)) {
44
-    redirect_header(XOOPS_URL . '/modules/' . $moduleDirName . '/', 3, _NOPERM);
45
-    exit();
44
+	redirect_header(XOOPS_URL . '/modules/' . $moduleDirName . '/', 3, _NOPERM);
45
+	exit();
46 46
 }
47 47
 
48 48
 // Массив данных об инструкции
@@ -55,29 +55,29 @@  discard block
 block discarded – undo
55 55
 $instrs['description'] = $objInsinstr->getVar('description');
56 56
 // Если админ, рисуем админлинк
57 57
 if (is_object($GLOBALS['xoopsUser']) && $GLOBALS['xoopsUser']->isAdmin($GLOBALS['xoopsModule']->mid())) {
58
-    $instrs['adminlink'] = '&nbsp;<a href="'
59
-                           . XOOPS_URL
60
-                           . '/modules/'
61
-                           . $moduleDirName
62
-                           . '/admin/instr.php?op=editinstr&instrid='
63
-                           . $instrid
64
-                           . '"><img style="width:16px;" src="./assets/icons/edit_mini.png" alt='
65
-                           . _EDIT
66
-                           . ' title='
67
-                           . _EDIT
68
-                           . '></a>&nbsp;<a href="'
69
-                           . XOOPS_URL
70
-                           . '/modules/'
71
-                           . $moduleDirName
72
-                           . '/admin/instr.php?op=delinstr&instrid='
73
-                           . $instrid
74
-                           . '"><img style="width:16px;" src="./assets/icons/delete_mini.png" alt='
75
-                           . _DELETE
76
-                           . ' title='
77
-                           . _DELETE
78
-                           . '></a>&nbsp;';
58
+	$instrs['adminlink'] = '&nbsp;<a href="'
59
+						   . XOOPS_URL
60
+						   . '/modules/'
61
+						   . $moduleDirName
62
+						   . '/admin/instr.php?op=editinstr&instrid='
63
+						   . $instrid
64
+						   . '"><img style="width:16px;" src="./assets/icons/edit_mini.png" alt='
65
+						   . _EDIT
66
+						   . ' title='
67
+						   . _EDIT
68
+						   . '></a>&nbsp;<a href="'
69
+						   . XOOPS_URL
70
+						   . '/modules/'
71
+						   . $moduleDirName
72
+						   . '/admin/instr.php?op=delinstr&instrid='
73
+						   . $instrid
74
+						   . '"><img style="width:16px;" src="./assets/icons/delete_mini.png" alt='
75
+						   . _DELETE
76
+						   . ' title='
77
+						   . _DELETE
78
+						   . '></a>&nbsp;';
79 79
 } else {
80
-    $instrs['adminlink'] = '';
80
+	$instrs['adminlink'] = '';
81 81
 }
82 82
 
83 83
 // Выводим в шаблон
@@ -101,7 +101,7 @@  discard block
 block discarded – undo
101 101
 $nav_parent_id = array_reverse($nav_parent_id);
102 102
 $navigation    = '<a href="' . XOOPS_URL . '/modules/' . $moduleDirName . '/">' . $GLOBALS['xoopsModule']->name() . '</a>&nbsp;:&nbsp;';
103 103
 foreach (array_keys($nav_parent_id) as $i) {
104
-    $navigation .= '<a href="' . XOOPS_URL . '/modules/' . $moduleDirName . '/index.php?cid=' . $nav_parent_id[$i]->getVar('cid') . '">' . $nav_parent_id[$i]->getVar('title') . '</a>&nbsp;:&nbsp;';
104
+	$navigation .= '<a href="' . XOOPS_URL . '/modules/' . $moduleDirName . '/index.php?cid=' . $nav_parent_id[$i]->getVar('cid') . '">' . $nav_parent_id[$i]->getVar('title') . '</a>&nbsp;:&nbsp;';
105 105
 }
106 106
 $navigation .= '<a href="' . XOOPS_URL . '/modules/' . $moduleDirName . '/index.php?cid=' . $objInscat->getVar('cid') . '">' . $objInscat->getVar('title') . '</a>&nbsp;:&nbsp;';
107 107
 $navigation .= $objInsinstr->getVar('title');
@@ -128,18 +128,18 @@  discard block
 block discarded – undo
128 128
 
129 129
 // Теги
130 130
 if (xoops_getModuleOption('usetag', 'instruction')) {
131
-    include_once $GLOBALS['xoops']->path('modules/tag/include/tagbar.php');
132
-    $xoopsTpl->assign('tags', true);
133
-    $xoopsTpl->assign('tagbar', tagBar($instrid, 0));
131
+	include_once $GLOBALS['xoops']->path('modules/tag/include/tagbar.php');
132
+	$xoopsTpl->assign('tags', true);
133
+	$xoopsTpl->assign('tagbar', tagBar($instrid, 0));
134 134
 } else {
135
-    $xoopsTpl->assign('tags', false);
135
+	$xoopsTpl->assign('tags', false);
136 136
 }
137 137
 
138 138
 // Рейтинг
139 139
 if (xoops_getModuleOption('userat', 'instruction')) {
140
-    $xoopsTpl->assign('insUserat', true);
140
+	$xoopsTpl->assign('insUserat', true);
141 141
 } else {
142
-    $xoopsTpl->assign('insUserat', false);
142
+	$xoopsTpl->assign('insUserat', false);
143 143
 }
144 144
 
145 145
 // Подвал
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
 $inscatHandler   = xoops_getModuleHandler('category', 'instruction');
12 12
 $inspageHandler  = xoops_getModuleHandler('page', 'instruction');
13 13
 
14
-$instrid = isset($_GET['id']) ? (int)$_GET['id'] : 0;
14
+$instrid = isset($_GET['id']) ? (int) $_GET['id'] : 0;
15 15
 
16 16
 // Существует ли такая инструкция
17 17
 $criteria = new CriteriaCompo();
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
 
41 41
 // Права на просмотр инструкции
42 42
 $categories = InstructionUtility::getItemIds();
43
-if (!in_array($objInsinstr->getVar('cid'), $categories)) {
43
+if ( ! in_array($objInsinstr->getVar('cid'), $categories)) {
44 44
     redirect_header(XOOPS_URL . '/modules/' . $moduleDirName . '/', 3, _NOPERM);
45 45
     exit();
46 46
 }
Please login to merge, or discard this patch.
blocks/instr_lastinstr.php 1 patch
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -6,65 +6,65 @@
 block discarded – undo
6 6
 function b_instr_lastinstr_show($options = [])
7 7
 {
8 8
 
9
-    // Подключаем функции
9
+	// Подключаем функции
10 10
 //    $moduleDirName = dirname(__DIR__);
11
-    $moduleDirName = basename(dirname(__DIR__));
12
-    include_once $GLOBALS['xoops']->path('modules/' . $moduleDirName . '/class/utility.php');
13
-    //
14
-    $myts = MyTextSanitizer::getInstance();
15
-    //
16
-    $insinstrHandler = xoops_getModuleHandler('instruction', 'instruction');
11
+	$moduleDirName = basename(dirname(__DIR__));
12
+	include_once $GLOBALS['xoops']->path('modules/' . $moduleDirName . '/class/utility.php');
13
+	//
14
+	$myts = MyTextSanitizer::getInstance();
15
+	//
16
+	$insinstrHandler = xoops_getModuleHandler('instruction', 'instruction');
17 17
 
18
-    // Добавляем стили
19
-    //global $xoTheme;
20
-    //$xoTheme->addStylesheet( XOOPS_URL . '/modules/instruction/css/blocks.css' );
18
+	// Добавляем стили
19
+	//global $xoTheme;
20
+	//$xoTheme->addStylesheet( XOOPS_URL . '/modules/instruction/css/blocks.css' );
21 21
 
22
-    // Опции
23
-    // Количество страниц
24
-    $limit = $options[0];
25
-    // Количество символов
26
-    $numchars = $options[1];
22
+	// Опции
23
+	// Количество страниц
24
+	$limit = $options[0];
25
+	// Количество символов
26
+	$numchars = $options[1];
27 27
 
28
-    // Права на просмотр
29
-    $cat_view = InstructionUtility::getItemIds();
30
-    // Массив выходных данных
31
-    $block = [];
28
+	// Права на просмотр
29
+	$cat_view = InstructionUtility::getItemIds();
30
+	// Массив выходных данных
31
+	$block = [];
32 32
 
33
-    // Если есть категории для прасмотра
34
-    if (is_array($cat_view) && count($cat_view) > 0) {
33
+	// Если есть категории для прасмотра
34
+	if (is_array($cat_view) && count($cat_view) > 0) {
35 35
 
36
-        // Находим последние инструкции
37
-        $sql = "SELECT `instrid`, `cid`, `title`, `pages`, `dateupdated` FROM {$insinstrHandler->table} WHERE `cid` IN (" . implode(', ', $cat_view) . ') AND `status` > 0 ORDER BY `dateupdated` DESC';
38
-        // Лимит запроса
39
-        $result = $GLOBALS['xoopsDB']->query($sql, $limit);
40
-        // Перебираем все значения
41
-        $i = 0;
42
-        while (list($instrid, $cid, $ititle, $pages, $dateupdated) = $GLOBALS['xoopsDB']->fetchRow($result)) {
43
-            // ID инструкции
44
-            $block[$i]['instrid'] = $instrid;
45
-            // ID категории
46
-            $block[$i]['cid'] = $cid;
47
-            // Название инструкции
48
-            $block[$i]['ititle'] = $myts->htmlSpecialChars($ititle);
49
-            // Число страниц
50
-            $block[$i]['pages'] = $pages;
51
-            // Дата обновления инструкции
52
-            $block[$i]['dateupdated'] = formatTimeStamp($dateupdated, 's');
53
-            // Инкримент
54
-            $i++;
55
-        }
56
-    }
57
-    // Возвращаем массив
58
-    return $block;
36
+		// Находим последние инструкции
37
+		$sql = "SELECT `instrid`, `cid`, `title`, `pages`, `dateupdated` FROM {$insinstrHandler->table} WHERE `cid` IN (" . implode(', ', $cat_view) . ') AND `status` > 0 ORDER BY `dateupdated` DESC';
38
+		// Лимит запроса
39
+		$result = $GLOBALS['xoopsDB']->query($sql, $limit);
40
+		// Перебираем все значения
41
+		$i = 0;
42
+		while (list($instrid, $cid, $ititle, $pages, $dateupdated) = $GLOBALS['xoopsDB']->fetchRow($result)) {
43
+			// ID инструкции
44
+			$block[$i]['instrid'] = $instrid;
45
+			// ID категории
46
+			$block[$i]['cid'] = $cid;
47
+			// Название инструкции
48
+			$block[$i]['ititle'] = $myts->htmlSpecialChars($ititle);
49
+			// Число страниц
50
+			$block[$i]['pages'] = $pages;
51
+			// Дата обновления инструкции
52
+			$block[$i]['dateupdated'] = formatTimeStamp($dateupdated, 's');
53
+			// Инкримент
54
+			$i++;
55
+		}
56
+	}
57
+	// Возвращаем массив
58
+	return $block;
59 59
 }
60 60
 
61 61
 // Редактирование последних инструкций
62 62
 function b_instr_lastinstr_edit($options = [])
63 63
 {
64
-    $form = '';
65
-    $form .= _MB_INSTR_DISPLAYINSTRC . ' <input name="options[0]" size="5" maxlength="255" value="' . $options[0] . '" type="text" /><br>' . "\n";
66
-    $form .= _MB_INSTR_NUMCHARSC . ' <input name="options[1]" size="5" maxlength="255" value="' . $options[1] . '" type="text" /><br>' . "\n";
64
+	$form = '';
65
+	$form .= _MB_INSTR_DISPLAYINSTRC . ' <input name="options[0]" size="5" maxlength="255" value="' . $options[0] . '" type="text" /><br>' . "\n";
66
+	$form .= _MB_INSTR_NUMCHARSC . ' <input name="options[1]" size="5" maxlength="255" value="' . $options[1] . '" type="text" /><br>' . "\n";
67 67
 
68
-    // Возвращаем форму
69
-    return $form;
68
+	// Возвращаем форму
69
+	return $form;
70 70
 }
Please login to merge, or discard this patch.
blocks/instr_lastpage.php 1 patch
Indentation   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -5,68 +5,68 @@
 block discarded – undo
5 5
 function b_instr_lastpage_show($options = [])
6 6
 {
7 7
 
8
-    // Подключаем функции
9
-    $moduleDirName = basename(dirname(__DIR__));
10
-    include_once $GLOBALS['xoops']->path('modules/' . $moduleDirName . '/class/utility.php');
11
-    //
12
-    $myts = MyTextSanitizer::getInstance();
13
-    //
14
-    $insinstrHandler = xoops_getModuleHandler('instruction', 'instruction');
15
-    $inspageHandler  = xoops_getModuleHandler('page', 'instruction');
8
+	// Подключаем функции
9
+	$moduleDirName = basename(dirname(__DIR__));
10
+	include_once $GLOBALS['xoops']->path('modules/' . $moduleDirName . '/class/utility.php');
11
+	//
12
+	$myts = MyTextSanitizer::getInstance();
13
+	//
14
+	$insinstrHandler = xoops_getModuleHandler('instruction', 'instruction');
15
+	$inspageHandler  = xoops_getModuleHandler('page', 'instruction');
16 16
 
17
-    // Добавляем стили
18
-    //global $xoTheme;
19
-    //$xoTheme->addStylesheet( XOOPS_URL . '/modules/instruction/css/blocks.css' );
17
+	// Добавляем стили
18
+	//global $xoTheme;
19
+	//$xoTheme->addStylesheet( XOOPS_URL . '/modules/instruction/css/blocks.css' );
20 20
 
21
-    // Опции
22
-    // Количество страниц
23
-    $limit = $options[0];
24
-    // Количество символов
25
-    $numchars = $options[1];
21
+	// Опции
22
+	// Количество страниц
23
+	$limit = $options[0];
24
+	// Количество символов
25
+	$numchars = $options[1];
26 26
 
27
-    // Права на просмотр
28
-    $cat_view = InstructionUtility::getItemIds();
29
-    // Массив выходных данных
30
-    $block = [];
27
+	// Права на просмотр
28
+	$cat_view = InstructionUtility::getItemIds();
29
+	// Массив выходных данных
30
+	$block = [];
31 31
 
32
-    // Если есть категории для прасмотра
33
-    if (is_array($cat_view) && count($cat_view) > 0) {
32
+	// Если есть категории для прасмотра
33
+	if (is_array($cat_view) && count($cat_view) > 0) {
34 34
 
35
-        // Находим последние страницы
36
-        $sql = "SELECT p.pageid, p.instrid, p.title, p.dateupdated, i.title, i.cid FROM {$inspageHandler->table} p, {$insinstrHandler->table} i WHERE p.instrid = i.instrid AND i.cid IN (" . implode(', ', $cat_view) . ') AND p.status > 0 AND i.status > 0 ORDER BY p.dateupdated DESC';
37
-        // Лимит запроса
38
-        $result = $GLOBALS['xoopsDB']->query($sql, $limit);
39
-        // Перебираем все значения
40
-        $i = 0;
41
-        while (list($pageid, $instrid, $ptitle, $dateupdated, $ititle, $cid) = $GLOBALS['xoopsDB']->fetchRow($result)) {
42
-            // ID страницы
43
-            $block[$i]['pageid'] = $pageid;
44
-            // ID инструкции
45
-            $block[$i]['instrid'] = $instrid;
46
-            // Название страницы
47
-            $block[$i]['ptitle'] = $myts->htmlSpecialChars($ptitle);
48
-            // Название инструкции
49
-            $block[$i]['ititle'] = $myts->htmlSpecialChars($ititle);
50
-            // Дата обновления страницы
51
-            $block[$i]['dateupdated'] = formatTimeStamp($dateupdated, 's');
52
-            // Категория инстркции
53
-            $block[$i]['cid'] = $cid;
54
-            // Инкримент
55
-            $i++;
56
-        }
57
-    }
35
+		// Находим последние страницы
36
+		$sql = "SELECT p.pageid, p.instrid, p.title, p.dateupdated, i.title, i.cid FROM {$inspageHandler->table} p, {$insinstrHandler->table} i WHERE p.instrid = i.instrid AND i.cid IN (" . implode(', ', $cat_view) . ') AND p.status > 0 AND i.status > 0 ORDER BY p.dateupdated DESC';
37
+		// Лимит запроса
38
+		$result = $GLOBALS['xoopsDB']->query($sql, $limit);
39
+		// Перебираем все значения
40
+		$i = 0;
41
+		while (list($pageid, $instrid, $ptitle, $dateupdated, $ititle, $cid) = $GLOBALS['xoopsDB']->fetchRow($result)) {
42
+			// ID страницы
43
+			$block[$i]['pageid'] = $pageid;
44
+			// ID инструкции
45
+			$block[$i]['instrid'] = $instrid;
46
+			// Название страницы
47
+			$block[$i]['ptitle'] = $myts->htmlSpecialChars($ptitle);
48
+			// Название инструкции
49
+			$block[$i]['ititle'] = $myts->htmlSpecialChars($ititle);
50
+			// Дата обновления страницы
51
+			$block[$i]['dateupdated'] = formatTimeStamp($dateupdated, 's');
52
+			// Категория инстркции
53
+			$block[$i]['cid'] = $cid;
54
+			// Инкримент
55
+			$i++;
56
+		}
57
+	}
58 58
 
59
-    // Возвращаем массив
60
-    return $block;
59
+	// Возвращаем массив
60
+	return $block;
61 61
 }
62 62
 
63 63
 // Редактирование последних страниц
64 64
 function b_instr_lastpage_edit($options = [])
65 65
 {
66
-    $form = '';
67
-    $form .= _MB_INSTR_DISPLAYPAGESC . ' <input name="options[0]" size="5" maxlength="255" value="' . $options[0] . '" type="text" /><br>' . "\n";
68
-    $form .= _MB_INSTR_NUMCHARSC . ' <input name="options[1]" size="5" maxlength="255" value="' . $options[1] . '" type="text" /><br>' . "\n";
66
+	$form = '';
67
+	$form .= _MB_INSTR_DISPLAYPAGESC . ' <input name="options[0]" size="5" maxlength="255" value="' . $options[0] . '" type="text" /><br>' . "\n";
68
+	$form .= _MB_INSTR_NUMCHARSC . ' <input name="options[1]" size="5" maxlength="255" value="' . $options[1] . '" type="text" /><br>' . "\n";
69 69
 
70
-    // Возвращаем форму
71
-    return $form;
70
+	// Возвращаем форму
71
+	return $form;
72 72
 }
Please login to merge, or discard this patch.
admin/index.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@
 block discarded – undo
9 9
 
10 10
 /** @var InstructionUtility $utilityClass */
11 11
 $utilityClass = ucfirst($moduleDirName) . 'Utility';
12
-if (!class_exists($utilityClass)) {
12
+if ( ! class_exists($utilityClass)) {
13 13
     xoops_load('utility', $moduleDirName);
14 14
 }
15 15
 
Please login to merge, or discard this 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/cat.php 2 patches
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
 
32 32
         // Подключаем трей
33 33
 
34
-        include_once __DIR__  . '/../class/tree.php';
34
+        include_once __DIR__ . '/../class/tree.php';
35 35
         //include_once $GLOBALS['xoops']->path('modules/instruction/class/tree.php');
36 36
 
37 37
         // Заголовок админки
@@ -102,7 +102,7 @@  discard block
 block discarded – undo
102 102
     case 'savecat':
103 103
 
104 104
         // Проверка
105
-        if (!$GLOBALS['xoopsSecurity']->check()) {
105
+        if ( ! $GLOBALS['xoopsSecurity']->check()) {
106 106
             redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
107 107
         }
108 108
         // Если мы редактируем
@@ -128,12 +128,12 @@  discard block
 block discarded – undo
128 128
 
129 129
         // Проверка веса
130 130
         if (0 == $weight) {
131
-            $err         = true;
131
+            $err = true;
132 132
             $message_err .= _AM_INSTRUCTION_ERR_WEIGHT . '<br>';
133 133
         }
134 134
         // Проверка категорий
135 135
         if ($cid && ($cid == $pid)) {
136
-            $err         = true;
136
+            $err = true;
137 137
             $message_err .= _AM_INSTRUCTION_ERR_PCAT . '<br>';
138 138
         }
139 139
         // Если были ошибки
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
 
242 242
         $objInscat = $instructioncatHandler->get($cid);
243 243
         // Если нет такой категории
244
-        if (!is_object($objInscat)) {
244
+        if ( ! is_object($objInscat)) {
245 245
             redirect_header('cat.php', 3, _AM_INSTRUCTION_ERR_CATNOTSELECT);
246 246
         }
247 247
 
@@ -257,12 +257,12 @@  discard block
 block discarded – undo
257 257
         }
258 258
 
259 259
         // Нажали ли мы на кнопку OK
260
-        $ok = isset($_POST['ok']) ? (int)$_POST['ok'] : 0;
260
+        $ok = isset($_POST['ok']) ? (int) $_POST['ok'] : 0;
261 261
         // Если мы нажали на кнопку
262 262
         if ($ok) {
263 263
 
264 264
             // Проверка
265
-            if (!$GLOBALS['xoopsSecurity']->check()) {
265
+            if ( ! $GLOBALS['xoopsSecurity']->check()) {
266 266
                 redirect_header('cat.php', 3, implode(',', $GLOBALS['xoopsSecurity']->getErrors()));
267 267
             }
268 268
             // Пытаемся удалить категорию
Please login to merge, or discard this 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.