.
EASY CMS: Обмен сообщениями между классами и начало механизма управления контентом (PHP, this, even
Автор megabax   
29.06.2010 г.
Структура программы на примере простейшей программы

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>

Запустив пример, мы увидим такую картинку:

EASY CMS:  Обмен сообщениями между классами и начало механизма управления контентом (PHP, this, event)

Исходники к уроку можно скачать в платном разделе.

Последнее обновление ( 04.01.2011 г. )