定制 silverstripers/continental-content 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

silverstripers/continental-content

最新稳定版本:1.0.1

Composer 安装命令:

composer require silverstripers/continental-content

包简介

Lets you add contents for different continents

README 文档

README

A SilverStripe module which allows you to have contents specific for locations, and serve these contents for users by checking their location.

Installing

Use composer to install the module.

composer require silverstripers/continental-content dev-master

Configuring

After installing the module on your SilverStripe site, you have to manually specify which data objects you want the module to decorate with in order to have different contents.

SiteTree:
  extensions:
    - ContinentalContent

You have the freedom to decorate any object, in this YAML i am decorating the SiteTree object, which is the base object of SilverStripe pages.

Setting up location

Once you've done the above you can set up the locations which you want to have different contents for.

ContinentalContent:
  continents:
    BC:
      Country: CA
      SubDivision: BC
    AB:
      Country: CA
      SubDivision: AB
    ON:
      Country: CA
      SubDivision: ON

If you want to use contents for a group of location then you can group them by.

ContinentalContent:
  continents:
    Europe:
      Country:
        - GB
        - GE
        - FR
    NZ:
        Country: NZ
    AU:
        Country: AU

In this example Europe will be used for GB, GE, FR countries.

What if you dont want to have multiple fields

If there are fields which you dont wish to customise for each of the locations, you can specify them as configs

ContinentalContent:
  exclude_field_names:
    - SiteTree.Title
    - URLSegment

The above removes URLSegment from any of the data objects you have a field called URLSegment, but it removes Title only from SiteTree.

Seperate URLS

If you want to have separate urls for each location eg: site.com/uk/home, site.com/nz/home etc. You can allow that with another config.

ContinentalContent:
  custom_urls: 'Y'

Webserver cant read the visitors IP ? (Higher Level Customizations)

Sometimes this can happen, if you are using several load balancers to and have your website behind them and your load balancers wont pass the end clients IP. In this can use can set up a form and ask your users to select the location they are coming from.

ContinentalContent:
  proxy_ip: '0.0.0.0'

set up the IP which your webserver gets all the time.

make a function like the following in Page_Controller class.

function LocationDetected(){
  return !(ContinentalContent::IsViewingThroughProxy() && ContinentalContent::CurrentContinent() == CONTINENTAL_DEFAULT);
}

If the above returns true you can draw a location selector to select the visitor's location.

Setting up IP database

The module only supports max mind, upload the max mind City data base from the site config.

Debug options

There are several options to debug the configs. You can pass three get vars

  1. FAKE_IP -- fake the ip address
  2. CLEAR_IP -- clear the ip from the session
  3. debug_location -- Displays a debug message on screen for the locations.

silverstripers/continental-content 适用场景与选型建议

silverstripers/continental-content 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 49 次下载、GitHub Stars 达 1, 最近一次更新时间为 2015 年 02 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「silverstripe」 「contents」 「ip2location」 「continental」 「iptolocation」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 silverstripers/continental-content 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 silverstripers/continental-content 我们能提供哪些服务?
定制开发 / 二次开发

基于 silverstripers/continental-content 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 49
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 13
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2015-02-08