These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | use Xmf\Request; |
||
3 | |||
4 | require_once __DIR__ . '/header.php'; |
||
5 | |||
6 | // Объявляем объекты |
||
7 | $insinstr_Handler = xoops_getModuleHandler( 'instruction', 'instruction' ); |
||
8 | //$inscat_Handler =& xoops_getModuleHandler( 'category', 'instruction' ); |
||
9 | $inspage_Handler = xoops_getModuleHandler( 'page', 'instruction' ); |
||
10 | |||
11 | // |
||
12 | $uid = is_object( $GLOBALS['xoopsUser'] ) ? $GLOBALS['xoopsUser']->getVar('uid') : 0; |
||
13 | $time = time(); |
||
14 | |||
15 | // ID инструкции |
||
16 | $instrid = isset( $_GET['instrid'] ) ? intval( $_GET['instrid'] ) : 0; |
||
17 | $instrid = isset( $_POST['instrid'] ) ? intval( $_POST['instrid'] ) : $instrid; |
||
18 | // ID страницы |
||
19 | $pageid = isset( $_GET['pageid'] ) ? intval( $_GET['pageid'] ) : 0; |
||
20 | $pageid = isset( $_POST['pageid'] ) ? intval( $_POST['pageid'] ) : $pageid; |
||
21 | // ID категории |
||
22 | $cid = isset( $_POST['cid'] ) ? intval( $_POST['cid'] ) : 0; |
||
23 | // Вес |
||
24 | $weight = isset( $_POST['weight'] ) ? intval( $_POST['weight'] ) : 0; |
||
25 | // |
||
26 | $pid = isset( $_POST['pid'] ) ? intval( $_POST['pid'] ) : 0; |
||
27 | |||
28 | // Права на добавление |
||
29 | $cat_submit = instr_MygetItemIds( $moduleDirName . '_submit' ); |
||
30 | // Права на редактирование |
||
31 | $cat_edit = instr_MygetItemIds( $moduleDirName . '_edit' ); |
||
32 | |||
33 | $op = isset($_GET['op']) ? $_GET['op'] : ''; |
||
34 | $op = isset($_POST['op']) ? $_POST['op'] : $op; |
||
35 | |||
36 | switch ( $op ) { |
||
37 | |||
38 | case 'editpage': |
||
39 | |||
40 | // Задание тайтла |
||
41 | $xoopsOption['xoops_pagetitle'] = ''; |
||
42 | // Шаблон |
||
43 | $xoopsOption['template_main'] = $moduleDirName . '_editpage.tpl'; |
||
44 | // Заголовок |
||
45 | include_once $GLOBALS['xoops']->path('header.php'); |
||
46 | |||
47 | // Если мы редактируем страницу |
||
48 | if( $pageid ) { |
||
49 | // Получаем объект страницы |
||
50 | $objInspage =& $inspage_Handler->get( $pageid ); |
||
51 | // ID инструкции |
||
52 | $instrid = $objInspage->getVar( 'instrid' ); |
||
53 | // Объект инструкции |
||
54 | $objInsinstr = $insinstr_Handler->get( $instrid ); |
||
55 | // Можно ли редактировать инструкцию в данной категории |
||
56 | if( ! in_array( $objInsinstr->getVar('cid'), $cat_edit ) ) redirect_header( 'index.php', 3, _MD_INSTRUCTION_NOPERM_EDITPAGE ); |
||
57 | // Создание новой страницы |
||
58 | } elseif( $instrid ) { |
||
59 | |||
60 | // Если нельзя добавлять не в одну категорию |
||
61 | //if( ! count( $cat_submit ) ) redirect_header( 'index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMIT_PAGE ); |
||
62 | // Создаём объект страницы |
||
63 | $objInspage =& $inspage_Handler->create(); |
||
64 | // Объект инструкции |
||
65 | $objInsinstr = $insinstr_Handler->get( $instrid ); |
||
66 | // Можно ли добавлять инструкции в данной категории |
||
67 | if( ! in_array( $objInsinstr->getVar('cid'), $cat_submit ) ) redirect_header( 'index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMITPAGE ); |
||
68 | } else { |
||
69 | redirect_header( 'index.php', 3, _MD_INSTRUCTION_BADREQUEST ); |
||
70 | } |
||
71 | |||
72 | // Информация об инструкции |
||
73 | |||
74 | // Массив данных об инструкции |
||
75 | $instrs = array(); |
||
76 | // ID инструкции |
||
77 | $instrs['instrid'] = $objInsinstr->getVar( 'instrid' ); |
||
78 | // Название страницы |
||
79 | $instrs['title'] = $objInsinstr->getVar( 'title' ); |
||
80 | // Описание |
||
81 | $instrs['description'] = $objInsinstr->getVar( 'description' ); |
||
82 | |||
83 | // Выводим в шаблон |
||
84 | $GLOBALS['xoopsTpl']->assign( 'insInstr', $instrs ); |
||
85 | |||
86 | // |
||
87 | |||
88 | $form =& $objInspage->getForm( 'submit.php', $instrid ); |
||
89 | // Форма |
||
90 | $GLOBALS['xoopsTpl']->assign( 'insFormPage', $form->render() ); |
||
91 | |||
92 | |||
93 | // Подвал |
||
94 | include_once $GLOBALS['xoops']->path('footer.php'); |
||
95 | |||
96 | break; |
||
97 | // Сохранение страницы |
||
98 | case 'savepage': |
||
99 | |||
100 | // Проверка |
||
101 | View Code Duplication | if ( ! $GLOBALS['xoopsSecurity']->check() ) { |
|
102 | redirect_header( 'index.php', 3, implode( ',', $GLOBALS['xoopsSecurity']->getErrors() ) ); |
||
103 | } |
||
104 | |||
105 | $err = false; |
||
106 | $message_err = ''; |
||
107 | |||
108 | // Если мы редактируем |
||
109 | if ( $pageid ) { |
||
110 | $objInspage = $inspage_Handler->get( $pageid ); |
||
111 | // Объект инструкции |
||
112 | $objInsinstr = $insinstr_Handler->get( $objInspage->getVar( 'instrid' ) ); |
||
113 | // Можно ли редактировать инструкцию в данной категории |
||
114 | if( ! in_array( $objInsinstr->getVar('cid'), $cat_edit ) ) redirect_header( 'index.php', 3, _MD_INSTRUCTION_NOPERM_EDITPAGE ); |
||
115 | } elseif( $instrid ) { |
||
116 | $objInspage =& $inspage_Handler->create(); |
||
117 | // Объект инструкции |
||
118 | $objInsinstr = $insinstr_Handler->get( $instrid ); |
||
119 | // Можно ли добавлять инструкции в данной категории |
||
120 | if( ! in_array( $objInsinstr->getVar('cid'), $cat_submit ) ) redirect_header( 'index.php', 3, _MD_INSTRUCTION_NOPERM_SUBMITPAGE ); |
||
121 | |||
122 | // Если мы создаём страницу необходимо указать к какой инструкции |
||
123 | $objInspage->setVar( 'instrid', $instrid ); |
||
124 | // Указываем дату создания |
||
125 | $objInspage->setVar( 'datecreated', $time ); |
||
126 | // Указываем пользователя |
||
127 | $objInspage->setVar( 'uid', $uid ); |
||
128 | } else { |
||
129 | redirect_header( 'index.php', 3, _MD_INSTRUCTION_BADREQUEST ); |
||
130 | } |
||
131 | |||
132 | // Родительская страница |
||
133 | $objInspage->setVar( 'pid', $pid ); |
||
134 | // Дата обновления |
||
135 | $objInspage->setVar( 'dateupdated', $time ); |
||
136 | // |
||
137 | $objInspage->setVar( 'title', $_POST['title'] ); |
||
138 | $objInspage->setVar( 'weight', $weight ); |
||
139 | $objInspage->setVar( 'hometext', $_POST['hometext'] ); |
||
140 | // Сноска |
||
141 | $objInspage->setVar( 'footnote', $_POST['footnote'] ); |
||
142 | $objInspage->setVar( 'status', $_POST['status'] ); |
||
143 | $objInspage->setVar( 'keywords', $_POST['keywords'] ); |
||
144 | $objInspage->setVar( 'description', $_POST['description'] ); |
||
145 | |||
146 | // Проверка категорий |
||
147 | if ( ! $pageid && ! $instrid ) { |
||
148 | $err = true; |
||
149 | $message_err .= _MD_INSTRUCTION_ERR_INSTR . '<br />'; |
||
150 | } |
||
151 | // Проверка веса |
||
152 | if ( $weight == 0 ){ |
||
153 | $err = true; |
||
154 | $message_err .= _MD_INSTRUCTION_ERR_WEIGHT . '<br />'; |
||
155 | } |
||
156 | // Проверка родительской страницы |
||
157 | if ( $pageid && ( $pageid == $pid ) ) { |
||
158 | $err = true; |
||
159 | $message_err .= _MD_INSTRUCTION_ERR_PPAGE . '<br />'; |
||
160 | } |
||
161 | // Если были ошибки |
||
162 | if ( $err == true ) { |
||
0 ignored issues
–
show
|
|||
163 | // Задание тайтла |
||
164 | $xoopsOption['xoops_pagetitle'] = ''; |
||
165 | // Шаблон |
||
166 | $xoopsOption['template_main'] = $moduleDirName . '_savepage.tpl'; |
||
167 | // Заголовок |
||
168 | include_once $GLOBALS['xoops']->path('header.php'); |
||
169 | // Сообщение об ошибке |
||
170 | $message_err = '<div class="errorMsg" style="text-align: left;">' . $message_err . '</div>'; |
||
171 | // Выводим ошибки в шаблон |
||
172 | $GLOBALS['xoopsTpl']->assign( 'insErrorMsg', $message_err ); |
||
173 | // Если небыло ошибок |
||
174 | } else { |
||
175 | // Вставляем данные в БД |
||
176 | if ( $inspage_Handler->insert( $objInspage ) ) { |
||
177 | // Если мы редактируем |
||
178 | if ( $pageid ) { |
||
179 | // Обновление даты |
||
180 | $sql = sprintf( "UPDATE %s SET `dateupdated` = %u WHERE `instrid` = %u", $GLOBALS['xoopsDB']->prefix( $moduleDirName . '_instr' ), $time, $instrid ); |
||
181 | $GLOBALS['xoopsDB']->query($sql); |
||
182 | // Запись в лог |
||
183 | xoops_loadLanguage( 'main', 'userslog' ); |
||
184 | //userslog_insert( $objInsinstr->getVar('title') . ': ' . $objInspage->getVar('title'), _MD_USERSLOG_MODIFY_PAGE ); |
||
185 | // |
||
186 | redirect_header( 'index.php', 3, _MD_INSTRUCTION_PAGEMODIFY ); |
||
187 | // Если мы добавляем |
||
188 | } else { |
||
189 | // Инкримент комментов |
||
190 | $inspage_Handler->updateposts( $uid, $_POST['status'], 'add' ); |
||
191 | // Инкремент страниц и обновление даты |
||
192 | $sql = sprintf( "UPDATE %s SET `pages` = `pages` + 1, `dateupdated` = %u WHERE `instrid` = %u", $GLOBALS['xoopsDB']->prefix( $moduleDirName . '_instr'), $time, $instrid ); |
||
193 | $GLOBALS['xoopsDB']->query($sql); |
||
194 | // Запись в лог |
||
195 | xoops_loadLanguage( 'main', 'userslog' ); |
||
196 | //userslog_insert( $objInsinstr->getVar('title') . ': ' . $objInspage->getVar('title'), _MD_USERSLOG_SUBMIT_PAGE ); |
||
197 | // |
||
198 | redirect_header( 'index.php', 3, _MD_INSTRUCTION_PAGEADDED ); |
||
199 | } |
||
200 | } |
||
201 | |||
202 | // Задание тайтла |
||
203 | $xoopsOption['xoops_pagetitle'] = ''; |
||
204 | // Шаблон |
||
205 | $xoopsOption['template_main'] = $moduleDirName . '_savepage.tpl'; |
||
206 | // Заголовок |
||
207 | include_once $GLOBALS['xoops']->path('header.php'); |
||
208 | |||
209 | // Выводим ошибки в шаблон |
||
210 | $GLOBALS['xoopsTpl']->assign( 'insErrorMsg', $objInspage->getHtmlErrors() ); |
||
211 | } |
||
212 | // Получаем форму |
||
213 | $form =& $objInspage->getForm( 'submit.php', $instrid ); |
||
214 | |||
215 | // Форма |
||
216 | $GLOBALS['xoopsTpl']->assign( 'insFormPage', $form->render() ); |
||
217 | |||
218 | // Подвал |
||
219 | include_once $GLOBALS['xoops']->path('footer.php'); |
||
220 | |||
221 | break; |
||
222 | } |
||
223 |
When comparing two booleans, it is generally considered safer to use the strict comparison operator.