zicht/url-bundle

Symfony 的 URL 工具

安装次数: 27,778

依赖项: 5

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

公开问题: 14

类型:symfony-bundle

8.0.0 2024-05-02 13:45 UTC

README

Scrutinizer Code Quality Code Coverage Build Status

此包是 zicht/cms 套件的一部分。

ZichtUrlBundle 提供以下功能

  • URL "别名" - 使用 SEO 友好的 URL 而不使用路由。原理是任何 URL 都可以有一个别名,该别名用于向用户显示 "可读" 的 URL。一般方法是以可互换的方式工作的:任何 URL 的别名版本都可以转换成未别名的版本,反之亦然。内容数据库中的 HTML 代码不应引用别名的 URL,因此它与管理员中的 TinyMCE 紧密集成。
  • 通过实现 ProviderInterface,任何服务都可以转换为对象路由器;即:链接到 "对象" 而不是路径。这在 zicht/page-bundle 中得到利用,以便能够链接到页面对象
  • 静态引用:可在项目中的任何位置注入命名的 URL
  • 验证约束

验证约束使用

Zicht\Bundle\RcoSiteBundle\Entity\Page\ContentPage:
    getters:
        body:
            - Zicht\Bundle\UrlBundle\Validator\Constraints\ContainsValidUrls: ~

Tinymce 表单类型扩展

如果从管理员包中使用了 TinyMce 表单类型,该类型将扩展以将外部 URL 转换为内部 URL。无需额外配置

在管理员中显示页面的公开 URL

要启用此功能,请将以下内容添加到页面管理员中,并确保已加载 url-bundle 的 form_theme.html.twig。

// use Zicht\Bundle\UrlBundle\Admin\AliasOverviewType;

public function configureFormFields(FormMapper $formMapper): void
{
    parent::configureFormFields($formMapper);
    $formMapper
        ->tab('admin.tab.alias_overview')
            ->add('alias_overview', AliasOverviewType::class, ['record' => $this->getSubject()])
        ->end()->end();
}

导入别名 CSV 文件

使用以下命令:php bin/console zicht:url:import-aliases url_aliases_file.csv --skip-header --csv-delimiter ';'

此命令可以解析遵循以下语法的 CSV 文件

PUBLICURL, INTERNALURL, TYPE, CONFLICTINGPUBLICURLSTRATEGY, CONFLICTINGINTERNALURLSTRATEGY
/home, /nl/page/1
/also-home, /nl/page/1

注意,可以使用 "--skip-header" 忽略第一行,TYPE、CONFLICTINGPUBLICURLSTRATEGY 和 CONFLICTINGINTERNALURLSTRATEGY 是可选的。

事件

网站地图

有一个事件可以修改网站地图的结果集

  • zicht_url.sitemap.filter,这允许您修改前一个查询的结果并过滤出项目。

维护者