1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/4856742-cxuucms-zphp

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Система управления контентом WEB.PHP

  • Построена на основе ZPHP-mini и layui, простая и эффективная система!

Версия: V3.7.4

Фронтенд

  • Поддержка гибкой настройки данных страниц и их динамического вызова;

  • Автоматическое создание статических HTML-страниц для главной страницы;

  • Автоматическое создание статических HTML-страниц для страниц просмотра, с возможностью динамического включения/выключения и настройки времени создания статических страниц;

  • Кэширование Redis, memcache и файлов, с возможностью гибкой настройки времени кэширования;

  • Фронтенд включает: статьи, галереи, отображение членов, расписание дежурств, статистику посещений и т.д. (Эти модули предоставляют идеи для создания практических сценариев, которые можно расширить в соответствии с вашими реальными потребностями);

  • Гибкий способ маршрутизации;

  • Независимый модуль поиска;

  • Онлайн-подача отзывов;

  • ...

Бэкенд

  • Гибкие роли и права доступа для администраторов;

  • Поддержка нескольких языков;

  • Удобное управление разделами;

  • Системные объявления;

  • Гибкие настройки системы;

  • Управление кэшированием;

  • Практические функции включают: управление расписанием дежурств, управление галереями, управление внутренними членами, управление отзывами, управление приложениями, видео, тематические разделы и т.д.;- Статистика посещений с фронтенда;

  • Журналы операций с базой данных;

  • Другие функции.

Разработчикам

  • Система построена с использованием PHP-фреймворка и UI-фреймворка, что позволяет полностью следовать документации фреймворка для повторной разработки.

Z-PHP-mini фреймворк

Документация: https://www.showdoc.cc/zphp4

Установка системы

  • Требуется поддержка псевдо-статических URL!

Технические требования

  • PHP 7.1+ или PHP 8.0+

  • MySQL 5.6+ или MariaDB 10.0+

  • Apache, Nginx, IIS и т.д.

Привязка директорий

  • Директория WEB должна быть привязана к: /public

  • Адрес для доступа к административной панели: xxx.com/admin

База данных

  • Создайте MySQL базу данных, затем импортируйте файл данных. База данных находится в корневой директории cxuuweb_php.sql, импортируйте её напрямую в базу данных. Файл конфигурации базы данных находится в корневой директории common/config.php
'DB' => [
	'dsn' => 'mysql:host=127.0.0.1;dbname=cxuuweb;port=3306',
	'db' => 'cxuuweb',//Имя базы данных, должно соответствовать имени базы данных в dsn
	'user' => 'root',
	'pass' => '***',  //Пароль
	'charset' => 'utf8',
	'prefix' => 'cxuu_',
	'cache_mod' => 0, //Режим кэширования запросов к базе данных: 1 - Redis, 2 - memcached, по умолчанию - 0 (файл)
],
  • По умолчанию для административной панели: имя пользователя - admin, пароль - 123456

Внимание

  • По умолчанию фронтенд включает кэширование и режим маршрутизации.- По умолчанию система находится в режиме отладки (DEBUG). Если вы используете её в продакшне, убедитесь, что режим отладки отключен. /common/config.php !!Если в процессе использования вы столкнулись с ошибками, проверьте файл /common/config.php в корневой директории:
'DEBUG' => [
	'level' => 3,//debug уровень: 0 - отключен, 1 - только информация о выполнении, 2 - информация о выполнении и ошибках, 3 - информация о выполнении, ошибках и предупреждениях
	'log' => 1,//уровень логирования: 0 - отключен, 1 - только ошибки, 2 - ошибки и предупреждения
	'type' => 'json',//формат вывода	auto, html, json    по умолчанию: auto
],
'ROUTER' => [
	'mod' => 0, //не рекомендуется изменять, система использует режим маршрутизации для фронтенда
	'module' => false,
	'restfull' => 0,
]

Использование фронтенда

Эта система очень проста в использовании, в коде и шаблонах есть соответствующие комментарии.

В этом разделе мы подробно описываем наиболее часто используемые методы работы с фронтендом. В тех частях, где есть специальные требования, это будет указано, и использование не вызовет проблем!

  • Фронтенд обычно использует оригинальный PHP-синтаксис, но также можно использовать методы, описанные в документации фреймворка. Разница в производительности между этими методами отсутствует, это просто вопрос личных предпочтений.

  • Система стремится к максимальной скорости работы с оригинальными данными, поэтому все шаблоны создаются с использованием базовых методов.- В этой системе кэши автоматически управляются. После публикации контента на фронтенде кэши будут обновляться по истечению заданного времени. Если требуется немедленное обновление, необходимо очистить кэши в базе данных через панель управления. В режиме производства при изменении шаблонов необходимо очистить соответствующие кэши на фронтенде и бэкенде.## Методы вызова списка контента на фронтенде

Метод 1

<?php foreach(CxuuList("table='article' cid='1,2,3' limit='10' cache='600' imgbl='0' attribute='0' order='id DESC'") as $vo){?> 
	echo $vo['title']; //Заголовок
	echo urlInfo($vo['id']); //Создание соответствующего URL-адреса в соответствии с маршрутизацией
	echo FTime($vo['time'],'m-d'); //Создание форматированной даты
<?php }?>
table : Таблица данных
cid : Категория CID, например: 2, несколько категорий: "3,6,5" или 0 для всех категорий;
limit : Количество записей, поддерживает смещение, например: "2,10";
cache : Время кэширования, 600 секунд;
imgbl : Отображение изображения, 1 или 0;
attribute : Заголовок, 1, малый заголовок, 2, или ротация изображений, 3;
order : Сортировка

Метод 2

<?php foreach(\model\article::selectData('3,6',5,60,1,3) as $vo){
	echo $vo['title']; //Заголовок
	echo urlInfo($vo['id']); //Создание соответствующего URL-адреса в соответствии с маршрутизацией
	echo FTime($vo['time'],'m-d'); //Создание форматированной даты
	..........
}?>
Описание selectData('3,6',5,60,1,3):
1. CID для одного раздела вводится напрямую, например: 2, несколько разделов: "3,6,5" или 0 для всех разделов;
2. Количество записей, поддерживает смещение, например: "2,10";
3. Время кэширования, 600 секунд;
4. Отображение изображения, 1;
5. Заголовок, 1, малый заголовок, 2, или ротация изображений, 3;
  • Вызов с данными категорий
foreach(\model\article::selectJoinData(7,5,60) as $vo){
	echo $vo['catename']; // Название категории
	...
 }
$cid = ID категории $limit = 1,10 количество, $cache = время кэширования в секундах

Список категорий### Метод 1:

<?php foreach(CxuuList("table='article_cate' id='1,2,3' cache='600' order='sort DESC'") as $vo){?> 
	<?php echo $vo['name']; ?>
<?php }?>

Метод 2:

<?php foreach(\model\common::getCateList('6,7,8,9,10',0,'sort DESC') as $value){ ?>
	 <li class="layui-nav-item <?php if($value['id']==$cid) echo 'layui-this';?>"><a href="<{ urlList($value['id']) }>" target="_blank"><{$value['name']}></a></li>
<?php }?>

Вызов графика дежурств (может быть настроен в зависимости от конкретной ситуации)

<?php $ondutyInfo = CxuuList("table='onduty'"); ?>
или:
<?php $ondutyInfo = \model\ondutys::findData(); ?>  // Получение переменной модели в текущем шаблоне

Сегодня(<?php echo $ondutyInfo['ondutytime'];?>) дежурит -
руководитель компании: <b><?php echo $ondutyInfo['juname'];?></b>,
руководитель отдела: <b><?php echo $ondutyInfo['chuname'];?></b>,
дежурный: <b><?php echo $ondutyInfo['yuanname'];?></b>

Методы генерации ссылок в режиме маршрутизации

1、echo urlInfo($vo['id']);  Генерация ссылки на страницу контента
2、echo urlList($vo['id']);  Генерация ссылки на страницу списка ID
или 
urlList($vo['urlname']);  Генерация пользовательской URL-ссылки
или автоматическое определение:
<?php if(!empty($value['urlname'])){echo urlList($value['urlname']); }else{ echo urlList($value['id']);} ?>


3、echo urlImage($vo['id']);  Генерация ссылки на страницу с изображениями
4、echo urlFeedback($vo['id']);  Генерация ссылки на страницу с отзывами

Вырезание символов по длине

Например: echo MbStr($vo['title'],20);  Отображение 20 символов, поддерживает кириллицу

Форматирование времени

1、Отображение времени с момента: echo HTime($info['time']);
2、Форматирование времени: echo FTime($vo['time'],'Y-m-d');  Y-m-d - стиль отображения
```## Методы вызова альбома

```php
<?php foreach(CxuuList("table='images'") as $vo){?>
или:
<?php foreach((array)\model\images::selectData() as $vo){?>
	<li>
		<div class="pic"><a href="<?php echo urlImage($vo['id']);?>" target="_blank"><img src="<?php echo $vo['img'];?>" /></a></div>
		<div class="title"><a href="<?php echo urlImage($vo['id']);?>" target="_blank"><?php echo MbStr($vo['title'],22);?></a></div>
	</li>
<?php }?>```

## Пагинация (два стиля)
  • Вызов метода, добавьте следующий фрагмент кода на страницу списка (для обеспечения независимости фронтенда от фреймворка, создан отдельный стиль пагинации без использования LAYUI):
<?php CxuuPage($page,1);?>
  • Стиль пагинации применим ко всем типам списков, второй параметр 0 или пустой для оригинального стиля, 1 для стиля LAYUI. При значении 1 необходимо настроить соответствующие параметры JS LAYUI (примеры содержатся в шаблоне списка).

CSS стиль \public\res\index\css\main.css:

/* Код оригинальной пагинации */
#page{margin:auto;height:50px;line-height:50px;}
.manu {font-size:16px;padding-right: 3px;padding-left: 3px;padding-bottom: 3px;margin: 3px;padding-top: 3px;text-align: center}
.manu A {padding-right: 5px;padding-left: 5px;padding-bottom: 2px;margin: 2px;color: #036cb4;padding-top: 2px;text-decoration: none}
.manu A:hover {color: #fff;background-color: #036cb4;}
.manu A:active {border-right: #036cb4 1px solid;border-top: #036cb4 1px solid;border-left: #036cb4 1px solid;color: #666;border-bottom: #036cb4 1px solid}
.manu .current {padding-right: 5px;padding-left: 5px;font-weight: bold;padding-bottom: 2px;margin: 2px;color: #fff;padding-top: 2px;background-color: #036cb4}
.manu .current a{font-weight: bold;color: #fff;}
.manu .disabled {border: #036cb4 1px solid;padding-right: 5px;padding-left: 5px;padding-bottom: 2px;margin: 2px;color: #ddd;padding-top: 2px;}
```## Настройка системы (вызов конфигурации)
// Информация о правах <title></title> // Название сайта ....... ```

Статистика посещений (асинхронный способ)

  • HTML

Статистика посещений сайта (значение PV, обновляется каждые 10 минут)
Сегодняшние посещения: <span class="visit_today"></span>
Вчера: <span class="visit_yesterday"></span>
Общее количество посещений: <span class="visit_sum"></span>
Максимальное количество посещений за день: <span class="visit_max"></span>
  • jq

$.getJSON('/visit', {}, function (data) {
	$('.visit_today').text(data['today']);
	$('.visit_yesterday').text(data['yesterday']);
	$('.visit_sum').text(data['sum']);
	$('.visit_max').text(data['max']);
})

Получение и установка методов кэширования данных

1. Метод установки кэша:
```php
SetCxuuCache($key, $data, 600);

// пользовательский ключ кэша, данные для кэширования, время кэширования 2. Метод получения кэша:

GetCxuuCache($key);

// получение соответствующих данных по ключу кэша```

Получить список категорий

getCateList('6,7,8,9,10');
Значение — это идентификатор категории, если значение пустое, то получаем информацию о всех категориях.
``````php
<?php foreach(\model\common::getCateList('6,7,8,9,10') as $value){ ?>
	<li class="layui-nav-item"><a href="<{ urlList($value['id']) }>" target="_blank"><{$value['name']}></a></li>
<?php }?>

Получить глубину категории

Пример: Главная / Список продуктов / Электроника
<?php 
	foreach(\model\common::getCateUrlData($cid) as $value){
		if($value['type'] == 0){
			echo '<a>'.$value['name'].'</a>';
		}else{
			echo '<a href="'.urlList($value['id']).'"><cite>'.$value['name'].'</cite></a>';
		}
	}
?>

Получить ссылки приложений

<?php foreach((array)\model\applinks::AppLinkList(8) as $vo){?>
	<div class="layui-col-md6 cxuu-applink-a">
		<a href="<{$vo['url']}>" target="_blank"><i class="fontsize layui-icon <{$vo['ico']}>"></i><br><{$vo['name']}></a>
	</div>
<?php }?>

AppLinkList(8)
Параметр — количество отображаемых ссылок

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


Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (16)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/4856742-cxuucms-zphp.git
git@api.gitlife.ru:oschina-mirror/4856742-cxuucms-zphp.git
oschina-mirror
4856742-cxuucms-zphp
4856742-cxuucms-zphp
master