alpineio/atlas

此软件包最新版本(v1.0.8)没有可用的许可信息。

WordPress自定义文章类型管理器

v1.0.8 2016-06-25 20:34 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:36:40 UTC


README

WordPress自定义文章类型管理器。扩展Piklist和原生WordPress功能。

概要

Piklist在向WordPress添加数据结构方面做得很好。关于Piklist

"Piklist是一个基于代码的框架,这意味着它没有用户界面。我们认为这是使用Piklist的最大好处之一。基于代码的系统允许你在字段配置和开发方面有更多的灵活性,并且从长远来看可以节省你的时间。使用Piklist,你通常可以使用你在某一节中编写的相同代码,并在另一节中使用它,允许你复制粘贴,并节省大量时间。"

我们同意基于代码、源代码控制的应用的优点。但是,我们认为复制粘贴不是大型应用开发的可持续模式。

Atlas是在复制粘贴配置模型之上的一个层。一个方便的面向对象层,用于使用类似于Laravel的风格向扩展文章类型添加基本和自定义功能。

正如他们所说关于Laravel的,“它是一个易于访问、功能强大的系统,为大型、健壮的应用提供了所需的工具”。我们希望Atlas在WordPress生态系统中也能达到同样的效果。

代码示例

以下是一个使用与Piklist兼容的数据字典定义的对象示例,并从文章继承了行为。

namespace MyCRM;

use AlpineIO\Atlas\Contracts\SelfRegistration;
use AlpineIO\Atlas\Post;
use AlpineIO\Atlas\Traits\PiklistPostRegistration;
use AlpineIO\Atlas\Types\PostRelationFieldType;

/**
 * Class Contact
 * @package MyCRM
 * @property string $title Job Title
 * @property string $street_address Street Address
 * @property string $city City
 * @property string $state State
 * @property string $website Website URL
 * @property string $facebook Facebook URL
 * @property string $yelp Yelp URL
 */
class Contact extends Post implements SelfRegistration {

	use PiklistPostRegistration;

}

接下来,我们可能将此CPT Contact用于WordPress单模板

  use MyCRM\Contact;

  $contact = new Contact(get_the_ID());

我们所有的联系属性和成员功能都可在该对象中快速访问并在WordPress模板中显示。

使用PikList构建数据模型

首先,使用PikList构建你的管理界面

https://piklist.com/user-guide/tutorials/getting-started-with-piklist/

然后,使用Atlas扩展它。

动机

我们喜欢PikList项目的精神。然而,我们认为为了维护大型应用,我们需要一个更现代的对象结构。作为Laravel的用户,我们怀念优雅和易用性,并觉得我们可以帮忙。

安装

使用Composer

$ composer require alpineio/atlas
{
    "require": {
        "alpineio/atlas": "~1.0.4"
    }
}
<?php
require 'vendor/autoload.php';
use AlpineIO\Atlas\Services\RegisterWordPressTypes;
use MyCRM\Contact;
use MyCRM\Team;

// Create a filter to return the classes
function my_crm_object_types( $types = [] ) {
	return array_merge( $types, [
		Contact::class,
		Team::class
	] );
}
add_filter('alpineio_atlas_models', 'my_crm_object_types');

RegisterWordPressTypes::register();

测试

即将推出。

贡献者

我们欢迎对该项目提供更多帮助。请随意分支并发送pull请求。

许可

GPL2