vojtasvoboda / oc-locationtowns-plugin
为 RainLab.Location 插件管理的州添加城镇。
1.0.8
2019-07-28 10:44 UTC
Requires
- php: >=5.4
- composer/installers: ~1.0
This package is not auto-updated.
Last update: 2024-09-14 19:25:41 UTC
README
为 RainLab.Location 插件管理的州添加城镇。包含
- 分页的州城镇组件
- 城镇详情组件
- RainLab.Sitemap 的钩子
- 扩展 RainLab State 模型
所需插件:RainLab.Location。
已在最新稳定版 OctoberCMS 349 上进行测试。
渲染城镇详情
此组件渲染城镇详情。只需创建页面“城镇详情”,路径为 /town-detail/:slug?
,并插入城镇组件
要覆盖城镇详情模板,只需创建部分文件 /town/default.htm
作为 /plugins/vojtasvoboda/components/town/default.htm
的副本,并进行自己的更改。
渲染城镇列表
创建路径为 /towns/:page?
的城镇页面,其中页面表示分页。插入城镇组件。设置州过滤条件并选择显示上面创建的城镇详情的页面
要覆盖城镇列表模板,只需创建部分文件 /towns/default.htm
作为 /plugins/vojtasvoboda/components/towns/default.htm
的副本,并进行自己的更改。
添加城镇到网站地图
只需安装 RainLab.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 许可证。