$dbname = $modx->db->config['dbase']; //имя базы данных
$dbprefix = $modx->db->config['table_prefix']; //префикс таблиц
$mod_table = $dbprefix."test"; //таблица модуля
$theme = $modx->config['manager_theme']; //тема админки
$basePath = $modx->config['base_path']; //путь до сайта на сервере
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<link rel="stylesheet" type="text/css" href="media/style/'.$theme.'/style.css" />
</head>
<body>
<br />
<div class="sectionHeader">Заголовок страницы</div>
<div class="sectionBody">
<script language="JavaScript" type="text/javascript">
function postForm(action, id){
document.module.action.value=action;
if (id != null) document.module.item_id.value=id;
document.module.submit();
}
</script>
<form name="module" method="post">
<input name="action" type="hidden" value="" />
<input name="item_id" type="hidden" value="" />
';
$action = isset($_POST['action']) ? $_POST['action']:'';
switch($action) {
//Установка модуля (создание таблицы в БД)
case 'install':
$sql = "CREATE TABLE IF NOT EXISTS $mod_table (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(256) NOT NULL,
`enum` int(5) NOT NULL,
`published` int(1) NOT NULL,
PRIMARY KEY (`id`)
)";
$modx->db->query($sql);
header("Location: $_SERVER[REQUEST_URI]");
break;
//Удаление таблицы модуля
case "uninstall":
$sql = "DROP TABLE $mod_table";
$modx->db->query($sql);
header("Location: $_SERVER[REQUEST_URI]");
break;
//Добавление записи
case 'add':
if (!empty($_POST['item_id']))
{//редактирование записи
$data = mysql_fetch_array($modx->db->select("*", $mod_table, "id = $_POST[item_id]", "", ""));
$id = $_POST['item_id'];
$title = $data['title'];
$enum = $data['enum'];
$published = $data['published'];
$save = "update";
}
else
{//если запись новая
$id = 0;
$title = '';
$enum = 3;
$published = 1;
$save = "save";
}
echo '
Заголовок<br /><input type="text" name="title" value="'.$title.'" /><br />
Какой-то список<br />
<select name="enum">
<option value="1" '; echo ($enum == 1) ? 'selected=="selected"' : ''; echo '>1</option>
<option value="2" '; echo ($enum == 2) ? 'selected=="selected"' : ''; echo '>2</option>
<option value="3" '; echo ($enum == 3) ? 'selected=="selected"' : ''; echo '>3</option>
</select>
<br />
Опубликовано: <input name="published" type="checkbox" value="1" '; echo ($published == 1) ? 'checked="checked"' : ''; echo ' />
<br />
<a href="#" onclick="postForm(\''.$save.'\',\''.$id.'\');return false;">Сохранить</a>
<a href="#" onclick="postForm(\'reload\',null);return false;">Отмена</a>
';
break;
//Сохранение записи в БД
case 'save':
$sql = "INSERT INTO $mod_table VALUES (NULL,'$_POST[title]','$_POST[enum]','$_POST[published]')";
$modx->db->query($sql);
header("Location: $_SERVER[REQUEST_URI]");
break;
//Обновление записи в БД
case 'update':
$fields = array(
"title" => $_POST['title'],
"enum" => $_POST['enum'],
"published" => $_POST['published'],
);
$query = $modx->db->update($fields, $mod_table, "id = ".$_POST['item_id']."");
header("Location: $_SERVER[REQUEST_URI]");
break;
//Перезагрузка страницы (сброс $_POST)
case 'reload':
header("Location: $_SERVER[REQUEST_URI]");
break;
//Удаление записи в БД
case 'delete':
$modx->db->delete($mod_table, "id = $_POST[item_id]");
header("Location: $_SERVER[REQUEST_URI]");
break;
//Страница модуля
default:
if (mysql_num_rows(mysql_query("show tables from $dbname like '$mod_table'"))==0)
{
//если таблицы не существует, выводим кнопку "Установить модуль"
echo '<a href="#" onclick="postForm(\'install\',null);return false;">Установить модуль</a>';
}
else
{
//если же модуль уже установлен, выводим его
echo '</form>
<a href="#" onclick="postForm(\'add\',null);return false;"><img src="media/style/'.$theme.'/images/icons/newdoc.gif" align="absmiddle" /> Добавить запись</a>
';
$data_query = $modx->db->select("*", $mod_table, "", "title ASC", "");
echo '
<br /><br />
<table width="98%" border="0" cellpadding="2" cellspacing="1" bgcolor="#707070">
<thead>
<tr>
<td><b>Заголовок</b></td>
<td><b>Какое-то число</b></td>
<td><b>Опубликовано</b></td>
<td><b></b></td>
<td><b></b></td>
</tr>
<thead>
<tbody>
';
while ($data = mysql_fetch_array($data_query)){//выводим записи
echo '
<tr bgcolor="#FFFFFF">
<td>'.$data["title"].'</td>
<td>'.$data["enum"].'</td>
<td>'.$data["published"].'</td>
<td align="center"><a href="#" title="Редактировать" onclick="postForm(\'add\','.$data["id"].');return false;"><img src="media/style/'.$theme.'/images/icons/logging.gif" align="absmiddle" /></a></td>
<td align="center"><a href="#" title="Удалить" onclick="if(confirm(\'Вы уверены?\')){postForm(\'delete\','.$data["id"].')};return false"><img src="media/style/'.$theme.'/images/icons/delete.gif" align="absmiddle" /></a></td>
</tr>';
}
echo '
</tbody>
</table>
<br /><br />
<!--<a href="#" onclick="if(confirm(\'Вы уверены?\')){postForm(\'uninstall\',null)};return false;"><img src="media/style/'.$theme.'/images/icons/delete.gif" align="absmiddle" />Удалить все записи</a>-->
';
}
break;
}
echo '
</div>
</body>
</html>
';