E-mail Печать

Шаг 7. Создание формы для создания и редактирования обзоров

Для того чтобы мы могли добавлять и изменять записи в БД нам нужен дружественный интерфейс. Для этого давайте создадим форму для создания и редактирования обзоров.

Отделим представление HTML формы от ее логики обработки. Необходимы код для ее обработки будет находиться в файле administrator/components/com_goodtimes/admin.goodtimes.php, представление ее в файле administrator/components/com_goodtimes/admin.goodtimes.html.php.
Откройте файл admin.goodtimes.php и замените весь существующий код вот этим:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );

require_once( JApplicationHelper::getPath( 'admin_html' ) );
JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');

switch($task)
{
case 'add':
editGoodtime( $option );
break;

}

function editGoodtime( $option )
{
$row =& JTable::getInstance('Goodtimes', 'Table');
$lists = array();
$lists['smoking'] = JHTML::_('select.booleanlist', 'smoking', 'class="inputbox"', $row->smoking);
$lists['published'] = JHTML::_('select.booleanlist', 'published', 'class="inputbox"', $row->published);

HTML_goodtimes::editGoodtime($row, $lists, $option);

}

?>

После проверки, что этот файл вызван в пределах Joomla, мы используем require_once (JApplicationHelper:: getPath ('admin_html')) чтобы подключить файл admin.goodtimes.html.php.

Хотя мы не будем работать с БД сразу, но мы все равно включаем класс нашей таблице строкой: JTable::addIncludePath(JPATH_COMPONENT.DS.'tables');

Здесь JPATH_COMPONENT – это абсолютный путь до нашего компонента в административной части, DS – автоматически поставит слеш в нужную сторону в зависимости от операционной системы.

Далее switch() проверяет переменную $task, чтобы запустить нужную функцию. И наконец функция editGoodtime( ) готовит несколько переменных прежде чем передать их в функцию показа формы HTML_goodtimes::editGoodtime($row, $lists, $option);

Теперь создайте файл admin.goodtimes.html.php и добавьте в него код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
class HTML_goodtimes
{
function editGoodtime( $row, $lists, $option )
{
$editor =& JFactory::getEditor();
?>
<form action="index.php" method="post"
name="adminForm" id="adminForm">
<fieldset class="adminform">
<legend>Подробности</legend>
<table class="admintable">
<tr>
<td width="100" align="right" class="key">
Наименование:
</td>
<td>
<input class="text_area" type="text" name="name"
id="name" size="50" maxlength="250"
value="<?php echo $row->name;?>" />
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
Адрес:
</td>
<td>
<input class="text_area" type="text" name="address"
id="address" size="50" maxlength="250"
value="<?php echo $row->address;?>" />
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
Отзыв:
</td>
<td>
<?php
echo $editor->display( 'review', $row->review ,
'100%', '250', '40', '10' ) ;
?>
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
Примечание:
</td>
<td>
<textarea class="text_area" cols="20" rows="4"
name="notes" id="notes" style="width:500px"><?php echo
$row->notes; ?></textarea>
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
Курить:
</td>
<td>
<?php
echo $lists['smoking'];
?>
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
Кредитная карта:
</td>
<td>
<input class="text_area" type="text" name="credit_cards"
id="credit_cards" size="50" maxlength="250"
value="<?php echo $row->credit_cards;?>" />
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
Дата:
</td>
<td>
<?php echo JHTML::calendar($row->review_date, 'review_date', 'review_date'); ?>
</td>
</tr>
<tr>
<td width="100" align="right" class="key">
Публикация:
</td>
<td>
<?php
echo $lists['published'];
?>
</td>
</tr>
</table>
</fieldset>
<input type="hidden" name="id" value="<?php echo $row->id; ?>" />
<input type="hidden" name="option" value="<?php echo $option;?>" />
<input type="hidden" name="task" value="" />
</form>
<?php
}
}
?>

Теперь перейдите по адресу: http://ваш_сайт/administrator/index.php?option=com_goodtimes&task=add, вы должны увидеть следующее:

Шаг 7

 

Здесь наша функция editGoodtime() берет ряды таблицы БД и отображает эту форму, т.е. эта функция полностью отвечает за отображение этой формы.
Функция JFactory::getEditor(); служит для отображения окна редактора.

Скачатьисходный код примера

страница 2 страница 3

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Mark
 
Интересная статья? Поделись ей с другими:

Комментарии  

 
-11 # 15.02.2011 22:40
Хелло!
Интересный пост, по существу, а как насчет вот этого блога о Луне и связанных с нею явлениях?

Удачи!
Ответить | Ответить с цитатой | Цитировать
 

Добавить комментарий


Защитный код
Обновить