Структура программы на примере простейшей программы
EASY CMS:
Обмен сообщениями между классами и
начало механизма управления контентом (PHP, this,
event)
Что бы смотреть урок полностью, подпишитесь на
платный раздел.
В платном разделе статья находиться
здесь.
Исходники к уроку можно скачать
в платном разделе.
Сегодня мы продолжим писать EASY_CMS
и разработаем уже простенький механизм управления контеном. Точнее, не
сам механизм, а только его шаблон, а так же систему обмена сообщениями между
объектами. Давайте начнем. Очевидно, нам понадобиться функция send_message,
реализуем ее у класса ECMS_Objects_container...
....
... Что будет представлять из себя наше сообщение?
Ассоциативный массив, содержащий как минимум такие поля (в будущем их может
быть больше):
Поле |
Тип |
Назначение |
option |
Строка |
Вид сообщения |
source_id |
Число |
Уникальный идентификатор объекта источника |
source_name |
Строка |
Имя объекта источника, если оно ему
присвоено, иначе пустая строка |
source_class_name |
Строка |
Имя класса объекта источника |
destination_id |
Число |
Уникальный идентификатор получателя
сообщения |
Для создания шаблона сообщения нам понадобиться метод
create_message, объявим его у класса ECMS_Base_class... ...
...
Теперь пришла пора делать тестовый пример. Вот он:
<html>
<head>
<title>Тест EASY CMS</title>
<LINK HREF="ECMS.css"
REL="stylesheet"
TYPE="text/css">
</head>
<body>
<?php
include_once("EASYCMSBase.php");
include_once("EASYCMSUtils.php");
include_once("EASYCMSVisual.php");
init_ECMS();
//Создадим контроллер ссылок
$rc=new
ECMS_References_controller;
$rc->url="http://localhost";
$rc->file_name="test.php";
//создадим источники контента
$cs1=new
ECMS_Content_source;
$cs1->content="<font
size=3>Вы нажали на ссылку 1</font><br>";
$cs2=new
ECMS_Content_source;
$cs2->content="<font
size=4>Вы нажали на ссылку 2</font><br>";
$cs3=new
ECMS_Content_source;
$cs3->content="<font
size=5>Вы нажали на ссылку 3</font><br>";
//создадим просмотрщики
контента
$cv1=new
ECMS_Content_viewer($cs1);
$cv2=new
ECMS_Content_viewer($cs2);
$cv3=new
ECMS_Content_viewer($cs3);
//добавим просмотрщики в
контейнер
$rc->add($cv1);
$rc->add($cv2);
$rc->add($cv3);
//Выведем ссылки
echo "<a
href=".$rc->create_reference("view",$cv1).">Ссылка
1</a><br>";
echo "<a
href=".$rc->create_reference("view",$cv2).">Ссылка
2</a><br>";
echo "<a
href=".$rc->create_reference("view",$cv3).">Ссылка
3</a><br>";
//Превратим входные параметры в
событие
if(isSet($_GET["option"]))
{
$msg=$rc->create_message();
$msg["destination_id"]=$_GET["objid"];
$msg["option"]=$_GET["option"];
$rc->send_message($msg,false,$rc);
}
?>
</body>
</html> |
Запустив пример, мы увидим такую картинку:
Исходники к уроку можно скачать
в платном разделе.
|