fb3rasp/moviepages

此包已被废弃,不再维护。未建议替代包。

使 SilverStripe 页面能够显示 OpenMovie 数据库中的内容。

安装: 8

依赖关系: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 1

开放问题: 4

类型:silverstripe-module

dev-master 2015-07-25 15:48 UTC

This package is not auto-updated.

Last update: 2022-08-09 23:30:33 UTC


README

此模块扩展了 SilverStripe CMS,使其能够显示详细的影片信息。OpenMovie 数据库将被用来检索影片信息,CMS 用户能够搜索影片并将信息本地存储。

概述

此模块添加了“电影页面”页面类型,用于显示电影信息。

作为 CMS 用户,您将能够从 OpenMovie 数据库中搜索现有的电影标题。CMS 将检索数据并将其本地存储。

一旦将电影标题输入到搜索文本框中,就会发送一个 Ajax 请求到 OMDBAPI,然后返回一个 JSON 字符串。

Open Movie 数据库不需要 API 密钥。

安装

此模块已在 SilverStripe 3.1.13 上进行了测试,并需要 simple 主题。

选项 1:创建一个新项目

假设您已安装 composer,通过 composer create-project 创建一个新项目

sudo composer create-project silverstripe/installer [silverstripe-project]

遵循 SilverStripe 安装说明。然后将模块添加到您的 SilverStripe 项目中

cd [silverstripe-project]
git clone https://github.com/fb3rasp/moviepages moviepages

在浏览器中运行 dev-build(或使用命令行中的 sake)

https:///[silverstripe-project]/dev/build

新的页面类型现在可用,并可使用。

选项 2:为现有的 SilverStripe 项目要求模块

更改到项目的根目录,并运行 composer require 命令

cd [silverstripe-project]
composer require fb3rasp/moviepages

在浏览器中运行 dev-build(或使用命令行中的 sake)

https:///[silverstripe-project]/dev/build

新的页面类型现在可用,并可使用。

选项 3:如果您有现有的 SilverStripe 项目

从 github 克隆此存储库到您的 SilverStripe 项目的根目录中

cd [silverstripe-project]
git clone https://github.com/fb3rasp/moviepages moviepages

在浏览器或通过命令行运行 dev-build

https:///[silverstripe-project]/dev/build

新的页面类型现在可用,并可使用。

选项 4:将存储库添加到您的项目 composer.json 文件中

如果您的项目已通过 composer 管理,并且您希望通过 composer 添加此模块,请打开您的项目 composer.json 文件,并将以下文本片段添加到其中...

添加存储库

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/fb3rasp/moviepages.git"
    }
],

要求模块

"require": {
    "php": ">=5.3.2",
    [...]
    "fb3rasp/moviepages": "*"
},

然后切换到您的项目文件夹,并运行 composer update 以检索存储库。

cd [silverstripe-project]
composer update

最后运行 dev-build,然后电影页面即可使用。

手册

登录CMS并创建一个“电影页面”类型的页面。在成功创建页面类型后,您将找到包含多个新字段的CMS表单。页面本身不再包含任何内容,只显示电影信息。因此,已删除内容编辑字段。

电影页面

电影页面存储常规的SiteTree信息,如页面标题、导航标签和URL段。搜索字段在OpenMovieDB API上执行标题搜索。您可以选择其中一个结果条目。然后,将发送第二个请求以检索电影的全部数据集。大部分返回的信息将存储为该页面实例的属性。在结果被填充到表单后,CMS用户将能够覆盖值并像常规页面一样发布页面。

用户可以多次搜索,每次用户选择记录时,现有值将被新结果覆盖。

搜索电影

在表单的“电影”部分选择搜索字段并输入“Star”。将发送请求并返回前10个结果,并显示在下拉列表中。您需要输入至少三个字符,搜索请求才会发送到远程API。

当您继续输入电影标题时,您会看到结果集显示越来越相关的电影。

保存电影页面

当用户保存页面(即保存或发布)时,电影标题(如果已输入)将变成页面的标题、导航标签,并且URL段也会更新。

查看电影页面

一旦页面发布,所有人(基于页面的权限设置)都可以以基本布局样式查看内容。

开发者说明

如果您想使用该模块但需要更改模板,只需在您的主题/[名称]/template/Layout文件夹中创建一个布局模板,并将其命名为MoviePage.ss。然后,该模板将被用于渲染页面。

潜在改进

  • 支持海报(图像)。
  • 在后台渲染模板并使CMS中的表单字段隐藏。
  • 在服务器端验证电影数据字段是否已被更改。
  • 抽象搜索API,以支持其他电影数据库。
  • 添加单元和行为测试。

质量

  • 目前,尚未创建任何单元、功能或行为测试。
  • 模块主要针对Chrome、Firefox和IE10进行测试。

错误追踪

错误在github.com上跟踪(moviepages issues

许可证

Copyright (c) 2015, Rainer Spittel
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of moviepages nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.