unl / wdn-symfony-framework
基于UNL WDN的应用程序symfony框架
Requires
- php: >=7.4
- digitalcampusframework/dcf-symfony-framework: dev-main
This package is not auto-updated.
Last update: 2024-09-18 04:25:17 UTC
README
注意:此框架目前是一个原型和WIP。
使用 Symfony Bundle System 提供WDN PHP twig模板,用于应用程序布局。twig模板使用 include
来引入当前的WDN模板包含文件,使用 block
来分配标记/内容到WDN模板可编辑区域。
此框架包依赖于 DCF Symfony Framework 以提供常见的DCF基础控制器和部分模板。其他DCF可能以后会提供。
版本同步
WDN布局模板应维护在 WDN仓库 中,而不是在这个仓库中。当WDN更新时,此仓库的维护者应使用 sync-version.php
脚本来更新特定WDN主版本的布局模板(例如,5.3)。
示例:php sync-version.php 5.3
以同步 5.3
。
然后可以将任何更新提交到此分支。
实现
composer.json
将以下内容添加到 require
部分
"digitalcampusframework/dcf-symfony-framework": "dev-main",
"unl/wdn-symfony-framework": "dev-main"
运行 composer install
配置
将以下内容添加到 config/bundles.php
返回数组中
DCF\Bundle\FrameworkBundle\DCFFrameworkBundle::class => ['all' => true],
WDN\Bundle\FrameworkBundle\WDNFrameworkBundle::class => ['all' => true],
这告诉应用程序使用哪些包。
WDN 文件
在symphony项目的 templates
和 public
目录中添加WDN的符号链接,以便应用程序可以读取WDN包含、CSS和JavaScript。如果需要,可以通过其他方式实现。
创建基础应用程序模板
将 wdnbase.html.twig
(或任何名称)文件添加到项目的 templates
目录中。
使用此文件来设置应用程序的默认模板块值。如果需要,可以在每个模板文件中覆盖这些值。
示例文件
{# templates/wdnbase.html.twig #}
{% extends '@WDNFramework/5.3/php.app_local.dwt.twig' %}
{% block head %}
<link rel="stylesheet" href="{{ asset('css/test.css') }}">
{% endblock %}
{% block highlighted %}
{{ include('@DCFFramework/partials/flash-notices.html.twig') }}
{% endblock %}
{% block jsbody %}
<script>
WDN.setPluginParam("idm", "logout", "/logout/");
WDN.initializePlugin("notice");
</script>
{% endblock %}
{# Default Block Values #}
{% block doctitle %}<title>Test App</title>{% endblock %}
{% block titlegraphic %}<a class="dcf-txt-h5" href="/">Test App</a>{% endblock %}
{% block affiliation %}<a href="http://ucomm.unl.edu">University Communication</a>{% endblock %}
{% block breadcrumbs %}
<ol>
<li><a href="https://www.unl.edu/">Nebraska</a></li>
<li><a href="/">Chat Administration</a></li>
</ol>
{% endblock %}
{% block navlinks %}
<ul>
<li><a href="/">Home</a></li>
<li><a href="/lucky">Lucky</a></li>
<li><a href="/help">Help</a></li>
</ul>
{% endblock %}
{% block appcontrols %}
<ul>
<li><a href="/">Home</a></li>
<li><a href="/lucky">Lucky</a></li>
<li><a href="/help">Help</a></li>
</ul>
{% endblock %}
{% block contactinfo %}
<div id="dcf-footer-group-1">
<h3 class="dcf-txt-md dcf-bold dcf-uppercase dcf-lh-3 unl-ls-2 unl-cream" id="dcf-footer-group-1-heading">About the Directory</h3>
<ul class="dcf-list-bare dcf-mb-4" aria-labelledby="dcf-footer-group-1-heading">
<li><a href="<?php echo UNL_Peoplefinder::getURL() . 'help/' ?>"><svg class="dcf-mr-1 dcf-h-4 dcf-w-4 dcf-fill-current" aria-hidden="true" focusable="false" height="16" width="16" viewBox="0 0 24 24"><path d="M11.5 1.004C5.158 1.004 0 6.162 0 12.504s5.158 11.5 11.5 11.5c6.341 0 11.5-5.158 11.5-11.5s-5.159-11.5-11.5-11.5zm-.5 5a1.001 1.001 0 11-.002 2.002A1.001 1.001 0 0111 6.004zm3.5 14h-6a.5.5 0 010-1h2.499v-8H9.5a.5.5 0 010-1h2a.5.5 0 01.499.5v8.5H14.5a.5.5 0 010 1z"></path></svg>Directory Help</a></li>
<li><a href="https://wdn.unl.edu/documentation/unl-directory"><svg class="dcf-mr-1 dcf-h-4 dcf-w-4 dcf-fill-current" aria-hidden="true" focusable="false" height="16" width="16" viewBox="0 0 24 24"><path d="M15 0H9v20.707l3-3 3 3zM8 0H5.5a.5.5 0 00-.5.5v23a.5.5 0 00.853.354L8 21.707V0zm8 0h2.5a.5.5 0 01.5.5v23a.501.501 0 01-.854.354L16 21.707V0z"></path></svg>Developer Documentation</a></li>
</ul>
<p>Information obtained from this directory may not be used to provide addresses for mailings to students, faculty or staff. Any solicitation of business, information, contributions or other response from individuals listed in this publication by mail, telephone or other means is forbidden.</p>
<p>This application is a product of the <a href="https://dxg.unl.edu/">Digital Experience Group at Nebraska</a>. DXG is a partnership of <a href="https://ucomm.unl.edu/">University Communication</a> and <a href="https://its.unl.edu/">Information Technology Services</a>.</p>
<p>This website is protected against malicious content robots and abusive web browsers. If you experience an issue or receive an error/blocked message while browsing, please immediately report the problem to the <a href="https://its.unl.edu/helpcenter/">ITS Help Center</a>.</p>
</div>
<div id="dcf-footer-group-2">
<h3 class="dcf-txt-md dcf-bold dcf-uppercase dcf-lh-3 unl-ls-2 unl-cream" id="dcf-footer-group-2-heading">Related Links</h3>
<ul class="dcf-list-bare dcf-mb-0" aria-labelledby="dcf-footer-group-2-heading">
<li><a href="https://wdn.unl.edu/">Web Developer Network</a></li>
<li><a href="https://dxg.unl.edu/">Digital Experience Group</a></li>
<li><a href="https://ucomm.unl.edu/">University Communication</a></li>
<li><a href="https://its.unl.edu/">Information Technology Services</a></li>
</ul>
</div>
{% endblock %}
文件中的亮点
{% extends '@WDNFramework/5.3/php.app_local.dwt.twig' %}
指定了要使用的布局。breacrumbs
和navlinks
仅适用于php.local.dwt.twig
appcontrols
仅适用于hp.app_local.dwt.twig
- 这些块将随着WDN版本的更新而变化。
控制器
在应用程序的控制器中扩展WDN框架
示例
<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use WDN\Bundle\FrameworkBundle\Controller\BaseController;
class MyController extends BaseController
{
模板
在模板中使用应用程序的基础模板
示例
{% extends 'wdnbase.html.twig' %}
{% block title %}Help Page{% endblock %}
{% block jsbody %}
{{ parent() }}
<script>
console.log('hello');
</script>
{% endblock %}
{% block content %}
<div class="dcf-mt-6 dcf-mb-6">
<p>Hello World!!</p>
</div>
{% endblock %}