c975l / pageedit-bundle
创建、修改和管理网页
- dev-main
- v6.3
- v6.2
- v6.1.2
- v6.1.1
- v6.1
- v6.0.5
- v6.0.4
- v6.0.3
- v6.0.2
- v6.0.1
- v6.0
- 5.x-dev
- v5.0
- 4.x-dev
- v4.1.2
- v4.1.1
- v4.1
- v4.0.2
- v4.0.1
- v4.0
- 3.x-dev
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0
- 2.x-dev
- v2.6.3
- v2.6.2
- v2.6.1
- v2.6
- v2.5
- v2.4.1
- v2.4
- v2.3.1
- v2.3
- v2.2.2.1
- v2.2.2
- v2.2.1
- v2.2
- v2.1.5
- v2.1.4.1
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0
- 1.x-dev
- v1.30.1
- v1.30
- v1.29.2.2
- v1.29.2.1
- v1.29.2
- v1.29.1
- v1.29
- v1.28.8
- v1.28.7
- v1.28.6
- v1.28.5
- v1.28.4
- v1.28.3
- v1.28.2
- v1.28.1
- v1.28
- v1.27.2
- v1.27.1
- v1.27
- v1.26.2.1
- v1.26.2
- v1.26.1
- v1.26
- v1.25
- v1.24.1
- v1.24
- v1.23
- v1.22.2
- v1.22.1
- v1.22
- v1.21
- v1.20
- v1.19
- v1.18
- v1.17.1
- v1.17
- v1.16
- v1.15.2
- v1.15.1
- v1.15
- v1.14.2
- v1.14.1
- v1.14
- v1.13.1
- v1.13
- v1.12
- v1.11.2
- v1.11.1
- v1.11
- v1.10
- v1.9
- v1.8
- v1.7.1
- v1.7
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6
- v1.5.4
- v1.5
- v1.4.1.2
- v1.4.1.1
- v1.4.1
- v1.4
- v1.3.1
- v1.3
- v1.2
- v1.1.3
- v1.1.2
- v1.0
- dev-dev
This package is auto-updated.
Last update: 2024-09-15 16:31:16 UTC
README
PageEditBundle 执行以下操作
- 显示请求的页面
- 提供工具来编辑页面的内容,除非通过代码编辑器进行
- 与您的网站设计集成
- 保护 twig 代码不被格式化
- 在替换之前存档文件,以便能够检索旧版本
- 允许创建受管理文件的
sitemap.xml
,设置它们的更改频率和优先级 - 允许将特定模板存储在
protected
文件夹中以便显示但不能修改 - 允许创建网页的 PDF 版本
当然,仍然可以直接使用编辑器修改这些文件。
此 Bundle 依赖于使用 TinyMce、jQuery 和 Bootstrap。
包安装
步骤 1: 下载包
使用 Composer 安装库
composer require c975l/pageedit-bundle
步骤 2: 启用包
然后,通过将它们添加到项目中的 app/AppKernel.php
文件中注册的包列表来启用包
<?php class AppKernel extends Kernel { public function registerBundles() { $bundles = [ new c975L\PageEditBundle\c975LPageEditBundle(), ]; } }
步骤 3: 配置包
检查它们的配置依赖项
对于 KnpSnappyBundle,您可以使用以下配置,如果它适合您的需求。
knp_snappy: process_timeout: 20 temporary_folder: "%kernel.cache_dir%/snappy" pdf: enabled: true binary: "%kernel.project_dir%/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64" options: print-media-type: true page-size: A4 orientation: 'portrait' encoding : utf-8 dpi: 300 images: true image-quality: 80 margin-left: 10mm margin-right: 10mm margin-top: 10mm margin-bottom: 10mm image: enabled: false
c975LPageEditBundle 的 v2.0+ 版本使用 c975L/ConfigBundle 来管理配置参数。使用路由 "/pages/config" 以及适当的用户角色来修改它们。
从 v1.x 升级?请检查 UPGRADE.md
如果您使用 Git 进行版本控制,您需要在 .gitignore
中添加完整的路径 templates/[folderPages]
和 public/images/[folderPages]
,否则 Git 将更改所有内容。
步骤 4: 启用路由
然后,通过将它们添加到项目中的 app/config/routing.yml
文件来启用路由
c975_l_page_edit: resource: "@c975LPageEditBundle/Controller/" type: annotation prefix: / #Multilingual website use the following #prefix: /{_locale} #defaults: { _locale: '%locale%' } #requirements: # _locale: en|fr|es
步骤 5: 链接和初始化 TinyMce
强烈建议使用 从第三方包覆盖模板功能 以完全与您的网站集成。
为此,只需在您的 app 中创建以下结构 templates/bundles/c975LPageEditBundle/views/
,然后复制 layout.html.twig
文件到其中,以覆盖现有的 Bundle 文件,然后应用您需要的更改,例如语言等。
在 layout.html.twig
中,它将主要扩展您的布局并定义特定变量,即
{% extends 'layout.html.twig' %} {# Defines specific variables #} {% set title = 'PageEdit (' ~ title ~ ')' %} {% block content %} {% block pageedit_content %} {% endblock %} {% endblock %}
建议使用 Tinymce Cloud 版本。您需要一个 免费 API 密钥。 或者 您可以下载并将其链接到您的项目 https://www.tinymce.com/download/。
如果您想保留所有可用的工具,并且不对现有的Tinymce进行任何更改,您不需要覆盖tinymceInit.html.twig
。您只需要在parameters.yml
中提供您的tinymceApiKey
(见上文),如果您使用的是云版本,以及tinymceLanguage
(+ 将相应的文件上传到您的服务器上的public/vendor/tinymce/[tinymceLanguage].js
)。否则,您需要覆盖tinymceInit.html.twig
。
步骤 6:文件保存的开始和结束模板定义
当Twig文件保存时,它将与Resources/views/skeleton.html.twig
的内容连接,以获得完整的文件。
此文件必须扩展您的布局,以便正确显示。建议您不要覆盖此文件,但如果您这样做,请确保保持{% block pageedit_content %}
和{% endblock %}
不变,因为它们是定义内容的入口和出口点。
如何使用
显示页面的URL是http://example.com/pages/{page}
,编辑的URL是http://example.com/pages/modify/{page}
,显示PDF的URL是http://example.com/pages/pdf/{page}
。
如果用户已识别并且有访问权限,则在标题下方显示一个工具栏。
在Twig中,可以通过以下方式链接到页面:<a href="{{ path('pageedit_display', { 'page': 'slug' }) }}">页面标题</a>
。
可用的不同路由(命名自解释)如下
- pageedit_home
- pageedit_config
- pageedit_display
- pageedit_pdf
- pageedit_create
- pageedit_modify
- pageedit_duplicate
- pageedit_delete
- pageedit_dashboard
- pageedit_upload
- pageedit_slug
- pageedit_links
- pageedit_help
创建PDF
PageEditBundle使用KnpSnappyBundle
来生成PDF,它本身使用wkhtmltopdf
。wkhtmltopdf
要求包含的文件(如样式表)使用绝对URL包含。但是,有一个已知的问题与SSL有关,请参阅#3001,这迫使您降级openssl,如Gist中所述。
您可以通过包含包含文件的整个内容来避免此问题,这正是wkhtmltopdf
所做的事情,在您的HTML输出中,您可以使用以下代码轻松地集成它们,就像c975L/SiteBundle所做的那样,使用c975L/IncludeLibraryBundle。
{# in your layout.html.twig > head #} {% if display == 'pdf' %} {{ inc_content('bootstrap', 'css', '3.*') }} {{ inc_content(absolute_url(asset('css/styles.min.css')), 'local') }} {% else %} {{ inc_lib('bootstrap', 'css', '3.*') }} {{ inc_lib('cookieconsent', 'css', '3.*') }} {{ inc_lib('fontawesome', 'css', '5.*') }} {{ inc_lib(absolute_url(asset('css/styles.min.css')), 'local') }} {% endif %}
集成子页面
要在子文件夹中添加子页面,只需在URL的语义字段中使用"/"作为分隔符即可。
首页特定
可以通过PageEdit管理首页,但由于它位于网站的根目录,因此具有特殊性。它的名称是"home",不能更改。
保护特定模板
如果您需要保护特定模板(包含大量Twig标签、Twig变量设置等,或者您不希望最终用户能够修改它们,以防止破坏网站),只需将这些模板放入templates/[folderPages]/protected
,它们将与其他模板一样显示,并包含在网站地图中,但不能进行修改。您只需将模板内容封装在skeleton.html.twig
中即可。
使用Twig扩展来自动构建菜单
您可以使用提供的Twig扩展folder_content()
轻松根据特定文件夹的内容构建菜单,为此请使用以下代码
{% set files = folder_content('specific_folder') %} <ul class="nav navbar-nav"> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Title <span class="caret"></span></a> <ul class="dropdown-menu"> {% for file, title in files %} <li><a href="{{ path('pageedit_display', { 'page': file }) }}">{{ title }}</a></li> {% endfor %} </ul> </li> </ul>
将现有文件迁移到PageEdit
要将现有文件迁移,只需将您的现有模板移动到templates/[folderPages]
文件夹中(folderPages
已在上述步骤3中定义),访问PageEdit仪表板并进行修改。将为新文件添加骨架,旧文件将被存档。
您可以使用命令 git rm -r --cached templates/[folderPages]
将其从 Git 中移除,如果文件夹之前已经被索引。 如果您使用 Git 作为版本控制系统并且已将此文件夹添加到 .gitignore
中,请不要忘记制作副本,否则您的文件将在下一次提交时被删除!
如果文件已被 Git 删除,只需使用以下代码
git log #Gives you latest commit git checkout <id_commit> #Indicate here the id of the commit obtained above #Access to your files, copy/paste them somewhere else git checkout HEAD #Get back to latest version
创建网站地图
在控制台中,使用 php bin/console pageedit:createSitemap
在您的项目 web
文件夹中创建 sitemap-[folderPages].xml
。您可以使用 crontab 每天生成它。您可以将其添加到分组所有网站地图的 sitemap-index.xml
文件中,或者如果您只有一个网站地图,可以直接使用它。
如果这个项目 帮助您减少开发时间,您可以通过顶部的“赞助”按钮来赞助我:)