Общее
Начало работы Окружение Работа с E-mail Адаптер Работа с обновлениями Роутер Api
Разработка
Модели Миграции Подсистемы Сервисные страницы
Настройки
Персонализация Стили
Тестирование
TDD
Пользователи
Пользователи
ECommerce
Заказы Корзина Профиль заказа Пункты выдачи
Специальность
Стажировка
  • 1 Введение
  • 2 Создание сервисной страницы
  • 3 Контроллер страницы
  • 4 Шаблон страницы
  • 5 Css стили
  • 6 Javascript страницы
  • 7 Javascript - получение данных
arrow_back Сервисные страницы

Введение

Сервисные страницы позволяют создавать системные интерфейсы.

Как правило, сервисные страницы находятся в папке /web/, так как являются частью веб-приложения.

Структура простой сервисной страницы: /web/папка/index.php - это позволит открыть интерфейс по адресу:

/web/папка/

Например: /web/login/

Для более сложных интерфейсов может использоваться следующая структура:

/web/projects/list/index.php - список проектов

/web/projects/detail/index.php - карточка проекта


Дополнительная информация и исходники:

enlightened Изучите сервисную страницу и ее исходники: /web/login/

 

Создание сервисной страницы

Для создания сервисной страницы скачайте готовую сигнатуру и следуйте структуре.

 

 

 

enlightened После скачивания необходимо поместить папку /web/ в корень проекта

Контроллер страницы

Контроллер сервисной страницы ( controller ) - это функция в которой реализуется back-end для рендеринга страницы.

В return[] помещаются все данные которые в дальнейшем потребуются в шаблоне и будут доступны в массиве $data

 

Шаблон страницы

Шаблон сервисной страницы ( view ) - это функция в которой реализуется представление шаблона.

Все данные с контроллера хранятся в массиве $data

 

 

Css стили

Css стили сервисной страницы ( css ) - это функция в которой реализуется описание стилей для сервисной страницы.

 

 

Javascript страницы

Javascript сервисной страницы ( javascript ) - это функция в которой реализуется логика клиентской части сервисной страницы.

 

Все функции описываются в объекте App

 

 

Javascript - получение данных

smileyView


<template>
    <div class="app">
        <div class="uni-container">
            <h1><?= $data['lang']['title'] ?></h1>
            <div class="js_contentBox">

            </div>
        </div>
    </div>
</template>

smileyJavascript


App = {
    loadData: function () {


        let contentBox = $('.js_contentBox');

        Framework.Loaders.Form.preload(contentBox);

        let params = {
            limit: 10
        };

        prologueClient.queryToServer('MyProject/Data:getData', params, (res) => {

            if (res.status === 'error') {

                Framework.Errors.setError('.js_error', res);
                Framework.Loaders.Form.unPreload(contentBox);

            } else if (res.status === 'ok') {

                Framework.Loaders.Form.unPreload(contentBox);

                renderTable(
                    res.items,
                    contentBox
                );

            } else {

                Framework.Errors.setServerError();
                Framework.Loaders.Form.unPreload(contentBox);

            }

        });

        function renderTable(items, contentBox) {

            let html = '';


            if (items) {

                html += '<table>';

                $.each(items, function (key, item) {

                    html += '<tr>';
                    html += '<td>' + item.id + '</td>';
                    html += '<td>' + item.title + '</td>';
                    html += '</tr>';

                });

                html += '</table>';

            } else {

                html = '<span>Нет данных</span>';

            }

            contentBox.html(html);

        }

    }
};
$(function () {
    App.loadData();
});

 

smileyApiBackend

/api/site/v1/MyProject/Data.php


<?php

namespace api\site\v1\MyProject;

Class Data
{
    public static function getData($request, $response)
    {
        $response['status'] = 'ok';

        $response['items'][] = [
            'id' => 1,
            'title' => 'Элемент 1',
        ];

        $response['items'][] = [
            'id' => 2,
            'title' => 'Элемент 2',
        ];

        $response['items'][] = [
            'id' => 2,
            'title' => 'Элемент 3',
        ];

        return $response;
    }
}