Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // Возвращает информацию о модуле в массиве
- class Pages
- {
- function GetInfo()
- {
- $info = array();
- $info['description'] = 'Страницы';
- $info['author'] = 'dnk-ilab';
- $info['version'] = 'v.1.0';
- $info['type'] = 'user';
- return $info;
- }
- // Возвращает сведения о шаблоне страницы с указанным ID
- function GetPageTemplate($pageid)
- {
- global $db;
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_pages` WHERE `id`=".$pageid);
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_templates` WHERE `id`=".$res[0]['template']);
- return $res[0];
- }
- function Create()
- {
- global $db, $kernel;
- $db -> SqlParse("CREATE TABLE `".tableprefix."core_pages` (
- `id` mediumint(9) NOT NULL auto_increment,
- `url` varchar(255) NOT NULL default '',
- `pagename` varchar(255) NOT NULL default '',
- `parent` mediumint(9) NOT NULL default '1',
- `template` mediumint(9) NOT NULL default '1',
- `type` enum('page','param') NOT NULL default 'page',
- `language` mediumint(9) NOT NULL default '1',
- `hidden` enum('true','false') NOT NULL default 'false',
- PRIMARY KEY (`id`),
- KEY `parent_page` (`parent`),
- KEY `parent_language` (`language`)) TYPE=InnoDB AUTO_INCREMENT=3 ;");
- $db -> SqlParse("INSERT INTO `".tableprefix."core_pages` VALUES (1, '/', 'Главная страница', 1, 1, 'page', 1, 'false');");
- $db -> SqlParse("INSERT INTO `".tableprefix."core_pages` VALUES (2, 'error', 'Страница ошибки', 1, 1, 'page', 1, 'false');");
- // Добавляем соответствующие страницы для всех языков сайта
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_languages` WHERE `default`='false'");
- foreach ($res as $languages)
- {
- $db -> SqlParse("INSERT INTO `".tableprefix."core_pages` (`url`, `pagename`, `parent`, `template`, `type`, `language`) VALUES ('".strtolower($languages['name'])."', 'Главная страница (".strtoupper($languages['name']).")', 1, 1, 'page', ".$languages['id'].");");
- $ress = $db -> SqlParse("SELECT LAST_INSERT_ID()");
- $db -> SqlParse("INSERT INTO `".tableprefix."core_pages` (`url`, `pagename`, `parent`, `template`, `type`, `language`) VALUES ('error', 'Страница ошибки (".strtoupper($languages['name']).")', ".$ress[0][0].", 1, 'page', ".$languages['id'].");");
- }
- $db -> SqlParse("ALTER TABLE `".tableprefix."core_pages` ADD CONSTRAINT `cms_core_pages_ibfk_1` FOREIGN KEY (`parent`) REFERENCES `cms_core_pages` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
- ADD CONSTRAINT `cms_core_pages_ibfk_2` FOREIGN KEY (`language`) REFERENCES `cms_core_languages` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;");
- $kernel -> CreatePage('pages', 'Управление страницами', '1');
- }
- function Destroy()
- {
- global $db, $kernel;
- $kernel -> DeletePage('pages');
- $db -> SqlParse("DROP TABLE `".tableprefix."core_pages`");
- }
- function Interface($GET)
- {
- global $db, $kernel;
- // ВЫВОД
- if ((!isset($GET['id'])) or (!isset($GET['action'])))
- {
- $this -> modulemenu = '<img src="'.cmspath.'/graph/dobavit-vse.gif" border="0" align="absmiddle" style="margin: 2px;"> <a href="'.cmspath.'/pages/?action=add">Добавить страницу</a>';
- $content = '<img src="'.cmspath.'/modules/pages/icon.gif" border="0" align="absmiddle" style="margin: 2px;"> Управление страницами<br><BR>';
- if (isset($_GET["parid"])&&is_numeric($_GET["parid"])) $parid=$_GET["parid"]; else $parid=1;
- $par=$parid;
- $lnk=array();
- while (true)
- {
- $res = $db -> SqlParse("SELECT parent,pagename FROM `".tableprefix."core_pages` WHERE id='$par'");
- if ($res==0||$par==1) break;
- $r=array();
- array_push($r,$res[0]["pagename"]);
- array_push($r,$par);
- array_push($lnk,$r);
- unset($r);
- $par=$res[0]["parent"];
- }
- $content.="<a href='/cms/pages/?parid=1'>Главная страница</a>";
- for($i=count($lnk)-1;$i>=0;$i--) $content.="-><a href='/cms/pages/?parid=".$lnk[$i][1]."'>".$lnk[$i][0]."</a>";
- $content.='<BR><br>';
- $content.='<table cellpadding="2" cellspacing="1" width="100%" bgcolor="#000000">';
- // // ЧИТАЕМ НОМЕР ЯЗЫКА ИСП. ПО УМОЛЧАНИЮ
- // $ress = $db -> SqlParse("SELECT `id` FROM `".tableprefix."core_languages` WHERE `default`='true'");
- // $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_pages` WHERE `language`=".$ress[0]['id']." ORDER BY `id`");
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_pages` LEFT JOIN luf_pages_sort USING (id) WHERE parent='$parid' ORDER BY hidden DESC,luf_pages_sort.pos,`language`,`pagename`");
- $content.='<tr class="table-top"><td>URL</td><td>Имя страницы</td><td> </td><td>Parent</td><td title="Эта опция отвечает за показ страницы в меню.">Видимость</td><td>Тип</td><td>Шаблон</td><td colspan=2>Управление</td></tr>';
- if ($parid!=1)
- {
- $re = $db -> SqlParse("SELECT parent FROM `".tableprefix."core_pages` WHERE `type`='page' AND id='$parid'");
- $content.="<tr bgcolor=lightgrey><td colspan=9><a href='/cms/pages/?parid=".$re[0]["parent"]."'><b>..на уровень выше..</b></a>";
- }
- $flag = 0;
- if ($res!=0)
- foreach ($res as $pages)
- {
- if(0 == $flag%2) { $class = 'table-main'; $bgcolor = '#DDDDDD'; } else { $class = 'table-main2'; $bgcolor = '#EEEEEE'; }
- $flag++;
- $content.='<tr class="'.$class.'" onmouseover="setPointer(this, 0, \'over\', \''.$bgcolor.'\', \'#FFCC99\', \''.$bgcolor.'\');" onmouseout="setPointer(this, 0, \'out\', \''.$bgcolor.'\', \'#FFCC99\', \''.$bgcolor.'\');">';
- $req = $db -> SqlParse("SELECT COUNT(id) AS cid FROM `".tableprefix."core_pages` WHERE `parent`=".$pages['id']);
- if ($req[0]["cid"]!=0&&$pages["id"]!=1)
- $content.='<td><a href=/cms/pages/?parid='.$pages["id"].'>'."<img src='/cms/modules/pages/dir.gif' border=0> ".$pages['url'].'</a></td>';
- else $content.="<td>".$pages["url"];
- $content.='<td>'.$pages['pagename'].'</td>';
- $content.="<td><table border=0 cellspacing=0 cellpading=0><tr><td><a href='".cmspath."/pages/?id=".$pages['id']."&action=posup&parid=$parid'><img src='/cms/graph/posup.gif' border=0></a></td></tr>";
- $content.="<tr><td><a href='".cmspath."/pages/?id=".$pages['id']."&action=posdown&parid=$parid'><img src='/cms/graph/posdown.gif' border=0></a></td></tr></table></td>";
- $ress = $db -> SqlParse("SELECT `url`, `pagename` FROM `".tableprefix."core_pages` WHERE `id`=".$pages['parent']);
- $content.='<td>'.$ress[0][0].'</td>';
- $content.='<td>'.($pages["hidden"]=="false"?"Видна":"Скрыта").'</td>';
- $content.='<td>'.$pages['type'].'</td>';
- $ress = $db -> SqlParse("SELECT * FROM `".tableprefix."core_templates` WHERE `id`=".$pages['template']);
- $content.='<td>'.$ress[0]['name'].'</td>';
- $ress = $db -> SqlParse("SELECT `id` FROM `".tableprefix."core_languages` WHERE `default`='true'");
- if (($pages['url'] == '/') or ($pages['url'] == 'error') or ($pages['language'] <> $ress[0]['id']))
- {
- $content.='<td><a href="'.cmspath.'/pages/?id='.$pages['id'].'&action=edit" onMouseOver="window.status=\'Редактировать страницу\'; return true" onMouseOut="window.status=\'\'"><img src="'.cmspath.'/graph/edit.gif" border="0" align="absmiddle" style="margin: 1px;"></a></td>';
- $content.='<td><img src="'.cmspath.'/graph/delete_disable.gif" border="0" align="absmiddle" style="margin: 1px;"></td>';
- } else
- {
- $content.='<td><a href="'.cmspath.'/pages/?id='.$pages['id'].'&action=edit" onMouseOver="window.status=\'Редактировать страницу\'; return true" onMouseOut="window.status=\'\'"><img src="'.cmspath.'/graph/edit.gif" border="0" align="absmiddle" style="margin: 1px;" alt="Редактировать страницу"></a></td>';
- $content.='<td><a href="'.cmspath.'/pages/?id='.$pages['id'].'&action=kill" onMouseOver="window.status=\'Удалить страницу\'; return true" onMouseOut="window.status=\'\'" OnClick="return confirm(\'Вы действительно хотите удалить страницу ?\nЭто приведет к удалению всех подчиненных страниц!\');"><img src="'.cmspath.'/graph/delete.gif" border="0" align="absmiddle" style="margin: 1px;" alt="Удалить страницу"></a></td>';
- }
- $content.='</tr>';
- if (($pages['language'] <> @$FFF) and (isset($FFF)))
- {
- $content.='<tr><td colspan=7 class="table-top-header"> </td></tr>';
- }
- $FFF = $pages['language'];
- }
- $content.='</table><br>';
- }
- // УДАЛЕНИЕ
- if ((isset($GET['id'])) && is_numeric($GET['id']) and (@$GET['action'] == 'kill'))
- {
- $res = $db -> SqlParse("SELECT `url`, `language` FROM `".tableprefix."core_pages` WHERE `id`='".$GET['id']."'");
- $pageurl = $res[0]['url'];
- if (($pageurl <> '/') and ($pageurl <> 'error') )
- {
- $db -> SqlParse("DELETE FROM `".tableprefix."core_pages` WHERE `id`='".$GET['id']."'");
- $db -> SqlParse("DELETE FROM `luf_pages_sort` WHERE `id`='".$GET['id']."'");
- }
- header('location: '.cmspath.'/pages/');
- die();
- }
- // РЕДАКТИРОВАНИЕ
- if ((isset($GET['id'])) and (@$GET['action'] == 'edit'))
- {
- $this -> modulemenu = '<img src="'.cmspath.'/graph/1leftarrow.gif" border="0" align="absmiddle" style="margin: 1px;"> <a href="'.cmspath.'/pages/">Назад</a>';
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_pages` WHERE `id`='".$GET['id']."'");
- $content = '<img src="'.cmspath.'/modules/pages/icon.gif" border="0" align="absmiddle" style="margin: 2px;"> Редактирование страницы: '.$res[0][1].'<BR><BR>';
- $content.='<table cellpadding="2" cellspacing="1" width="100%" bgcolor="#000000">';
- $content.='<tr class="table-top"><td>URL</td><td>Имя страницы</td><td>Parent</td><td title="Эта опция отвечает за показ страницы в меню.">Видимость</td><td>Тип</td><td>Шаблон</td></tr>';
- $content.='<form name="pagesform" method="post" action="'.cmspath.'/pages/?id='.$GET['id'].'">';
- $content.='<input name="act" type="hidden" value="edit">';
- foreach ($res as $pages)
- {
- $content.='<tr class="table-main">';
- $resss = $db -> SqlParse("SELECT `url` FROM `".tableprefix."core_pages` WHERE `id`='".$GET['id']."'");
- $pageurl = $resss[0]['url'];
- $ress = $db -> SqlParse("SELECT `name` FROM `".tableprefix."core_languages` WHERE `default`='false'");
- $languages = array();
- if ($ress <> 0)
- {
- foreach ($ress as $langs)
- {
- $languages[] = $langs['name'];
- }
- }
- if (($pageurl == '/') or ($pageurl == 'error') or (in_array(strtoupper($pageurl), $languages)))
- {
- $content.='<td><input type="text" readonly name="url" size="20" value="'.$pages['url'].'"></td>';
- } else
- {
- $content.='<td><input type="text" name="url" size="20" value="'.$pages['url'].'"></td>';
- }
- $content.='<td><input type="text" name="pagename" size="30" value="'.$pages['pagename'].'"</td>';
- $content.='<td><select name="parent">';
- if (($pageurl <> '/') and ($pageurl <> 'error') and (!in_array(strtoupper($pageurl), $languages)))
- {
- // ПОЛУЧАЕМ КОД ЯЗЫКА, ИСПОЛЬЗУЕМОГО ПО УМОЛЧАНИЮ
- $ress = $db -> SqlParse("SELECT `id` FROM `".tableprefix."core_languages` WHERE `default`='true'");
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_pages` WHERE `language`=".$ress[0]['id']." ORDER BY pagename");
- foreach ($res as $page)
- {
- if (($page['url'] <> 'error') and ($page['id'] <> $GET['id']))
- {
- $select = '';
- if($pages['parent'] == $page['id'])
- {
- $select = 'selected';
- }
- $content.='<option value="'.$page['id'].'" '.$select.'>'.$page['pagename'].'</option>';
- }
- }
- } else
- {
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_pages` WHERE `id`=".$pages['parent']);
- $content.='<option value="'.$res[0]['id'].'" selected>'.$res[0]['pagename'].'</option>';
- }
- $content.='</select>';
- }
- $content.='<td><select name="hidden" ';
- if ($pages['type'] == 'page')
- {$content.='>';
- if ($pages['hidden'] == 'false')
- {
- $content.='<option value="false" selected>Видима</option>';
- $content.='<option value="true">Скрыта</option>';
- } else
- {
- $content.='<option value="false">Видима</option>';
- $content.='<option value="true" selected>Скрыта</option>';
- }
- }else {$content.='disabled><option value="false"></option>';}
- $content.='</select>';
- $content.='<td><select name="type">';
- if (($pageurl <> '/') and ($pageurl <> 'error') and (!in_array(strtoupper($pageurl), $languages)))
- {
- if ($pages['type'] == 'page')
- {
- $content.='<option value="page" selected>Страница</option>';
- $content.='<option value="param">Параметр</option>';
- } else
- {
- $content.='<option value="page">Страница</option>';
- $content.='<option value="param" selected>Параметр</option>';
- }
- } else
- {
- $content.='<option value="page" selected>Страница</option>';
- }
- $content.='</select><td><select name="template">';
- $ress = $db -> SqlParse("SELECT * FROM `".tableprefix."core_templates` ORDER BY `id`");
- foreach ($ress as $templates)
- {
- if ($templates['id'] == $pages['template'])
- {
- $select = 'selected';
- } else
- {
- $select = '';
- }
- $content.='<option value="'.$templates['id'].'" '.$select.'>'.$templates['name'].'</option>';
- }
- $content.='</td></select></table><br><input type="submit"></form>';
- }
- // СОХРАНЕНИЕ ПОЗИЦИИ
- if ( isset($_GET['action']) && $_GET['action'] == 'posup' && isset($_GET['id']) && is_numeric($_GET['id']) )
- {
- $pos1=$db -> SqlParse("SELECT pos FROM luf_pages_sort WHERE id='".$_GET['id']."'");
- $postmp=$db -> SqlParse("SELECT parent FROM ".tableprefix."core_pages WHERE id='".$_GET['id']."'");
- $pos2=$db -> SqlParse("SELECT luf_pages_sort.id AS id,pos FROM luf_pages_sort LEFT JOIN ".tableprefix."core_pages USING(id) WHERE ".tableprefix."core_pages.parent='".$postmp[0]["parent"]."' AND luf_pages_sort.pos='".--$pos1[0]["pos"]."'");
- if (is_array($pos2))
- {
- $db -> SqlParse("UPDATE luf_pages_sort SET pos='".$pos2[0]["pos"]."' WHERE id='".$_GET['id']."'");
- $db -> SqlParse("UPDATE luf_pages_sort SET pos='".++$pos2[0]["pos"]."' WHERE id='".$pos2[0]["id"]."'");
- }
- if (isset($_GET["parid"])&&is_numeric($_GET["parid"])) $parid=$_GET["parid"]; else $parid=1;
- header('location: '.cmspath.'/pages/?parid='.$parid);
- die();
- }
- // СОХРАНЕНИЕ ПОЗИЦИИ
- if ( isset($_GET['action']) && $_GET['action'] == 'posdown' && isset($_GET['id']) && is_numeric($_GET['id']) )
- {
- $pos1=$db -> SqlParse("SELECT pos FROM luf_pages_sort WHERE id='".$_GET['id']."'");
- $postmp=$db -> SqlParse("SELECT parent FROM ".tableprefix."core_pages WHERE id='".$_GET['id']."'");
- $pos2=$db -> SqlParse("SELECT luf_pages_sort.id AS id,pos FROM luf_pages_sort LEFT JOIN ".tableprefix."core_pages USING(id) WHERE ".tableprefix."core_pages.parent='".$postmp[0]["parent"]."' AND luf_pages_sort.pos='".++$pos1[0]["pos"]."'");
- if (is_array($pos2))
- {
- $db -> SqlParse("UPDATE luf_pages_sort SET pos='".$pos2[0]["pos"]."' WHERE id='".$_GET['id']."'");
- $db -> SqlParse("UPDATE luf_pages_sort SET pos='".--$pos2[0]["pos"]."' WHERE id='".$pos2[0]["id"]."'");
- }
- if (isset($_GET["parid"])&&is_numeric($_GET["parid"])) $parid=$_GET["parid"]; else $parid=1;
- header('location: '.cmspath.'/pages/?parid='.$parid);
- die();
- }
- // СОХРАНЕНИЕ ОТРЕДАКТИРОВАННОЙ ИНФОРМАЦИИ
- if ((@$_POST['act'] == 'edit') and (isset($GET['id'])))
- {
- $db -> SqlParse("UPDATE `".tableprefix."core_pages` SET `url`='".strtolower($_POST['url'])."', `pagename`='".$_POST['pagename']."', `parent`='".$_POST['parent']."', `template`=".$_POST['template'].", `type`='".$_POST['type']."',`hidden`='".$_POST['hidden']."' WHERE `id`='".$GET['id']."'");
- header('location: '.cmspath.'/pages/');
- die();
- }
- // ДОБАВЛЕНИЕ
- if ((!isset($GET['id'])) and (@$GET['action'] == 'add'))
- {
- $this -> modulemenu = '<img src="'.cmspath.'/graph/1leftarrow.gif" border="0" align="absmiddle" style="margin: 1px;"> <a href="'.cmspath.'/pages/">Назад</a>';
- $content = '<img src="'.cmspath.'/modules/pages/icon.gif" border="0" align="absmiddle" style="margin: 2px;"> Добавление страницы<BR><BR>';
- $content.='<table cellpadding="2" cellspacing="1" width="100%" bgcolor="#000000">';
- $content.='<tr class="table-top"><td>URL</td><td>Имя страницы</td><td>Parent</td><td title="Эта опция отвечает за показ страницы в меню.">Видимость</td><td>Тип</td><td>Шаблон</td></tr>';
- $content.='<form name="pagesform" method="post" action="'.cmspath.'/pages/?action=add">';
- $content.='<input name="act" type="hidden" value="add">';
- $content.='<tr class="table-main">';
- $content.='<td><input type="text" name="url" size="20" value=""></td>';
- $content.='<td><input type="text" name="pagename" size="30" value=""</td>';
- $content.='<td><select name="parent">';
- // ПОЛУЧАЕМ КОД ЯЗЫКА, ИСПОЛЬЗУЕМОГО ПО УМОЛЧАНИЮ
- $ress = $db -> SqlParse("SELECT `id` FROM `".tableprefix."core_languages` WHERE `default`='true'");
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_pages` WHERE `language`=".$ress[0]['id']." ORDER BY pagename");
- foreach ($res as $page)
- {
- if ($page['url'] <> 'error')
- {
- $select = '';
- if($page['url'] == '/')
- {
- $select = 'selected';
- }
- $content.='<option value="'.$page['id'].'" '.$select.'>'.$page['pagename'].'</option>';
- }
- }
- $content.='</select>';
- $content.='<td><select name="hidden">';
- $content.='<option value="false">Видима</option>';
- $content.='<option value="true" selected>Скрыта</option>';
- $content.='</select>';
- $content.='<td><select name="type">';
- $content.='<option value="page" selected>Страница</option>';
- $content.='<option value="param">Параметр</option>';
- $content.='</select><td><select name="template">';
- $ress = $db -> SqlParse("SELECT * FROM `".tableprefix."core_templates` ORDER BY `id`");
- foreach ($ress as $templates)
- {
- if ($templates['id'] == $pages['template'])
- {
- $select = 'selected';
- } else
- {
- $select = '';
- }
- $content.='<option value="'.$templates['id'].'" '.$select.'>'.$templates['name'].'</option>';
- }
- $content.='</td></select></table><br><input type="submit"></form>';
- }
- // СОХРАНЕНИЕ ДОБАВЛЕННОЙ ИНФОРМАЦИИ
- if ((@$_POST['act'] == 'add') and (!isset($GET['id'])))
- {
- // ЧИТАЕМ НОМЕР ЯЗЫКА ИСП. ПО УМОЛЧАНИЮ
- $res = $db -> SqlParse("SELECT `id` FROM `".tableprefix."core_languages` WHERE `default`='true'");
- // ДОБАВЛЯЕМ СТРАНИЦУ
- $kernel -> CreateUserPage(strtolower($_POST['url']), $_POST['pagename'], $_POST['parent'], $_POST['template'], $_POST['type'], $res[0]['id'], $_POST['hidden']);
- // ЧИТАЕМ СТРУКТУРУ СТРАНИЦ, ДЛЯ ЯЗЫКА ПО - УМОЛЧАНИЮ
- $res = $db -> SqlParse("SELECT * FROM `".tableprefix."core_pages` WHERE `language`=".$res[0]['id']." AND `url`<>'/' AND `url`<>'error' ORDER BY pagename");
- foreach ($res as $pages)
- {
- $ress = $db -> SqlParse("SELECT * FROM `".tableprefix."core_languages` WHERE `default`='false'");
- if ($ress <> 0)
- {
- foreach ($ress as $languages)
- {
- $resss = $db -> SqlParse("SELECT `id` FROM `".tableprefix."core_pages` WHERE `url`='".$pages['url']."' AND `language`=".$languages['id']);
- if ($resss == 0)
- {
- if ($_POST['parent'] == 1)
- {
- $resss = $db -> SqlParse("SELECT `id` FROM `".tableprefix."core_pages` WHERE `url`='".$languages['name']."' AND `language`=".$languages['id']);
- $parentpage = $resss[0]['id'];
- } else
- {
- $ressss = $db -> SqlParse("SELECT `url` FROM `".tableprefix."core_pages` WHERE `id`='".$_POST['parent']."'");
- $resss = $db -> SqlParse("SELECT `id` FROM `".tableprefix."core_pages` WHERE `url`='".$ressss[0]['url']."' AND `language`=".$languages['id']);
- $parentpage = $resss[0]['id'];
- }
- // СОЗДАЕМ КОПИЮ СУЩЕСТВУЮЩЕЙ СТРАНИЦЫ, СО ССЫЛКОЙ НА ОЧЕРЕДНОЙ ЯЗЫК
- $kernel -> CreateUserPage(strtolower($_POST['url']), $_POST['pagename'], $parentpage, $_POST['template'], $_POST['type'], $languages['id'], $_POST['hidden']);
- }
- }
- }
- }
- header('location: '.cmspath.'/pages/');
- die();
- }
- return $content;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment