vojtasvoboda/oc-locationtowns-plugin

为 RainLab.Location 插件管理的州添加城镇。

1.0.8 2019-07-28 10:44 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:25:41 UTC


README

Codacy Scrutinizer Coverage License

为 RainLab.Location 插件管理的州添加城镇。包含

  • 分页的州城镇组件
  • 城镇详情组件
  • RainLab.Sitemap 的钩子
  • 扩展 RainLab State 模型

所需插件:RainLab.Location。

已在最新稳定版 OctoberCMS 349 上进行测试。

渲染城镇详情

此组件渲染城镇详情。只需创建页面“城镇详情”,路径为 /town-detail/:slug?,并插入城镇组件

Town component

要覆盖城镇详情模板,只需创建部分文件 /town/default.htm 作为 /plugins/vojtasvoboda/components/town/default.htm 的副本,并进行自己的更改。

渲染城镇列表

创建路径为 /towns/:page? 的城镇页面,其中页面表示分页。插入城镇组件。设置州过滤条件并选择显示上面创建的城镇详情的页面

Towns component

要覆盖城镇列表模板,只需创建部分文件 /towns/default.htm 作为 /plugins/vojtasvoboda/components/towns/default.htm 的副本,并进行自己的更改。

添加城镇到网站地图

只需安装 RainLab.Sitemap 插件,并将一个或所有城镇插入网站地图

Towns in sitemap

前端使用

根据位置插件中的以下 示例,此插件仅添加 form_select_town 函数

{% set countryId = countryId|default(form_value('country_id')) %}
{% set stateId = stateId|default(form_value('state_id')) %}
{% set townId = townId|default(form_value('town_id')) %}

{{ form_open() }}
    <div class="form-group">
        <label for="accountCountry">Country</label>
        {{ form_select_country('country_id', countryId, {
            id: 'accountCountry',
            class: 'form-control',
            emptyOption: '',
            'data-request': 'onInit',
            'data-request-update': {
                'country-state': '#partialCountryState'
            }
        }) }}
    </div>

    <div class="form-group">
        <label for="accountState">State</label>
        {{ form_select_state('state_id', countryId, stateId, {
            id: 'accountState',
            class: 'form-control',
            emptyOption: '',
            'data-request': 'onInit',
            'data-request-update': {
                'country-state': '#partialCountryState'
            }
        }) }}
    </div>

    <div class="form-group">
        <label for="accountTown">Town</label>
        {{ form_select_town('town_id', stateId, townId, {
            id: 'accountTown',
            class: 'form-control',
            emptyOption: ''
        }) }}
    </div>
{{ form_close() }}

服务

插件提供的可用服务列表

locationtowns 服务

$towns = App::make('locationstowns');
$town = $towns->findOneBySlug('praha');
$allTowns = $towns->all();
$townsByState = $towns->where('state_id', 285)->get();

RainLab State 扩展

$state = \RainLab\Location\Models\State::find('285');
$towns = $state->towns;

TODO

  • !!修复城镇:114 和城镇:129 中的固定 URL 路径(应在组件中设置路径)
  • !仅在城镇组件中过滤活动状态
  • 直接扩展 RainLab.Location.State 表单以管理与此州相关的城镇
  • 在没有 RainLab.Location 的情况下运行插件(仅城镇管理)
  • 在后台列表中添加“国家”下拉框以过滤州
  • 无法执行 october:down
  • 添加导入和导出功能

请随意发送 pullrequest!

贡献

请向 master 分支发送 Pull Request。

许可证

LocationTown 插件是开源软件,采用与 OctoberCMS 平台相同的 MIT 许可证