Программирование - это просто
Advertisement
Главная arrow Web-программирование arrow Углубленное изучение PHP. Пишем Easy CMS (пл. р.) arrow Пишем Easy CMS. Урок 15. Расшифровка строки таблицы (PHP, CMS, админка)
06.07.2022 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Пишем Easy CMS. Урок 15. Расшифровка строки таблицы (PHP, CMS, админка) Печать E-mail
Автор megabax   
19.07.2011 г.
Структура программы на примере простейшей программы

Пишем Easy CMS. Урок 15. Расшифровка строки таблицы (PHP, CMS, админка)

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


Продолжим писать админку для сайта "Тесты". Сегодня мы напишем модуль редактирования вопросов теста. Вот как он будет выглядеть:

Пишем Easy CMS. Урок 15. Расшифровка строки таблицы (PHP, CMS, админка)

А когда мы нажимаем на кнопочку "Расшифровка" у нас открывается список вопросов к этому тесту:

Пишем Easy CMS. Урок 15. Расшифровка строки таблицы (PHP, CMS, админка)

И так, с чего же начнем? С класса ECMS_Table_viewer. Мы добавим к нему новое поле  $decipher, что значит "расшифровщик":

class ECMS_Table_viewer extends ECMS_Base_class {

 

    ...

 

    public $decipher=null;

...

... ну, и конечно же, наш главный файл admin.php:

<?php

    session_start();

?>

<html>

 

<head>

  <title>Тест EASY CMS</title>

  <LINK HREF="ECMS.css" REL="stylesheet" TYPE="text/css">

</head>

 

 

 

<?php

    include_once("EASYCMSBase.php");

    include_once("EASYCMSDB.php");

    include_once("EASYCMSVisual.php");

    include_once("tests_lib.php");

    init_ECMS();

   

 

    //создадим базу данных и законнектимся к ней

    $db=new ECMS_Database("test","localhost","root","123");

    $db->set_prefix("T");

    $db->connect();

   

    //создадим "движок" сайта

    $engine=new ECMS_Web_Engine();

    $engine->set_name("engine");

 

    //Создадим контроллер ссылок

    $rc=new ECMS_References_controller();

    $rc->url="http://localhost";

    $rc->file_name="admin.php";

    $rc->set_name("refcont");

 

    //создадим таблицу вопросов

    $tb=new ECMS_Table("questions", $db);

    $tb->set_name("questions");

    $tb->fields[]=new ECMS_Field("id","Код","int",true);

    $fl=new ECMS_Field("text","Текст вопроса","text",false);

    $fl->_width=70;

    $tb->fields[]=$fl;

    $tb->fields[]=new ECMS_Field("test","Тест","int",false);

    $qv=add_table($engine,$tb,$db,"questions_view",$rc,null);

 

    //создадим таблицу тестов

    $tb=new ECMS_Table("tests", $db);

    $tb->set_name("tests");

    $tb->fields[]=new ECMS_Field("id","Код","int",true);

    $tb->fields[]=new ECMS_Field("name","Наименование","text",false);

    $fl=new ECMS_Field("description","Описание","text",false);

    $fl->_width=70;

    $tb->fields[]=$fl;

    add_table($engine,$tb,$db,"tests_view",$rc,$qv);

   

 

    //создадим таблицу пользователей

    $tb=new ECMS_Table("users", $db);

    $tb->set_name("users");

    $tb->fields[]=new ECMS_Field("id","Код","int",true);

    $tb->fields[]=new ECMS_Field("name","Наименование","text",false);

    $tb->fields[]=new ECMS_Field("password","Пароль","text",false);

    $tb->fields[]=new ECMS_Field("email","email","text",false);

    $tb->fields[]=new ECMS_Field("permissionLevel","Уровень доступа","int",false);

    add_table($engine,$tb,$db,"users_view",$rc,null);

   

    //Превратим входные параметры в событие

    $is_handled=false;

    if(isSet($_GET["option"])) {

        $msg=$engine->create_message();

        $msg["destination_name"]=$_GET["objname"];

        $msg["row_id"]=$_GET["rowid"];

        $msg["option"]=$_GET["option"];

        $msg["form_name"]=$_GET["form_name"];

        $msg["field"]=$_GET["field"];

        $engine->send_message($msg,false,$engine);

        if($_GET["objname"]==$engine->get_name()) {

            !$is_handled=true;

            $ltb=$engine->get_table();

            if($ltb!=null) $_SESSION['view_name']=$ltb->get_name()."_view";

        }

    }

    if(!$is_handled) {

        //если нет сообщенией то устаналиваем текущей таблицу тестов

        $msg=$engine->create_message();

        $msg["destination_name"]=$engine->get_name();

        $msg["option"]="edittable";

        if($_SESSION['view_name']!=null) $msg["form_name"]=$_SESSION['view_name']; else $msg["form_name"]="tests_view";

        $engine->send_message($msg,false,$engine);

    }

?>

 

<body>

    <table>

        <tr>

            <td>

                <?php

                    echo '<a href="'.$rc->create_reference_by_name('edittable',$engine).'&form_name=tests_view">';

                    echo 'Тесты';

                    echo '</a> &nbsp';

                    echo '<a href="'.$rc->create_reference_by_name('edittable',$engine).'&form_name=users_view">';

                    echo 'Пользователи';

                    echo '</a> &nbsp';

                ?>

                Оценки тестов Результаты

            </td>

        </tr>

        <tr>

            <td>

                <?php

                    if($engine->get_table()!=null) echo $engine->get_table()->get_name()."<br>";

                    $engine->show();

                ?>

            </td>

        </tr>

    </table>

   

<?php

   

 

?>

 

</body>

 

</html>

 

 

 

Последнее обновление ( 19.07.2011 г. )
 
« След.   Пред. »
 
© 2022 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги