목차
什么是OneThink oneThink后台添加插件步骤,onethink后台
您可能感兴趣的文章:
php教程 php手册 什么是OneThink oneThink后台添加插件步骤,onethink后台

什么是OneThink oneThink后台添加插件步骤,onethink后台

Jun 13, 2016 am 08:42 AM
플러그인

什么是OneThink oneThink后台添加插件步骤,onethink后台

OneThink以其便捷的建站、丰富的扩展、灵活的二次开发,以及云服务的支持,为广大个人和企业建站带来新的契机和机遇,即将成为互联网新的弄潮儿。

OneThink特性介绍:

1. 基于ThinkPHP最新版本Thinkphp3.2。

2. 模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。

3. 文档模型/分类体系:通过和文档模型绑定,以及不同的文档类型,不同分类可以实现差异化的功能,轻松实现诸如资讯、下载、讨论和图片等功能。

4. 开源免费:OneThink遵循Apache2开源协议,免费提供使用。

5. 用户行为:支持自定义用户行为,可以对单个用户或者群体用户的行为进行记录及分享,为您的运营决策提供有效参考数据。

6. 云端部署:通过驱动的方式可以轻松支持平台的部署,让您的网站无缝迁移,内置已经支持SAE。

7. 云服务支持:即将启动支持云存储、云安全、云过滤和云统计等服务,更多贴心的服务让您的网站更安心。

8. 安全稳健:提供稳健的安全策略,包括备份恢复、容错、防止恶意攻击登录,网页防篡改等多项安全管理功能,保证系统安全,可靠、稳定的运行。

9. 应用仓库:官方应用仓库拥有大量来自第三方插件和应用模块、模板主题,有众多来自开源社区的贡献,让您的网站“One”美无缺。

oneThink后台添加插件步骤:

版本:V1.1.141212 (注:v1.1也有很多版本,一不小心就下到V1.1.140202 去了,还有其他版本,建议去代码托管平台下载最新版本)

我也不偷懒,把每一步步骤都记录下来。

一、进入后台,创建插件

这里的钩子我新建了一个indexFooter,因为我只需在前台首页底部显示友情链接即可。我们把上面所有要勾的地方都勾上,至于有什么区别,大家可以自己建几个例子区分一下,生成的文件是否一样。OK!到这里 我们的友情链接插件就创建好了!点击“确定”。(这里的自定义模板什么的,通通不填,我会在下篇文章演示添加自定义模板的效果)

二、点击“安装” 即可,找到我们刚安装好的Links插件,点击“设置”,你会看到它有个默认的“是否开启随机”的选项,这里我们不管它,因为我们用不上,等下要删掉的。安装后,我们可以在左侧导航“已安装插件后台”看到我们新建的“友情链接”

三、当我们点击左侧导航的“友情链接”,你会发现报错,大概就是说的某个表不存在。是的,我们刚才只是建了插件,如果涉及到数据存储到数据库, 还需要建表。这里不直接去数据库里建,因为这样做,是很不人性化的。那我们就找到安装插件的函数,在安装插件的时候建立数据库,这样就好了。首先系统的插件全部存放在 根目录/Addons/ 文件夹下面,打开此文件夹,我们看到有个Links文件夹,这就是我们刚创建的插件,一个插件对应一个文件夹。打开Links文件夹,里面有2个文件和2个文件夹。

四、其实现在oneThink做的越来越简洁了,不懂PHP的人照样创建插件,之后你就会发现。当然,如果你有自己的想法,不想局限于官方的限制,那还是要把php学好的。

五、打开插件入口文件:LinksAddon.class.php 里面有个类LinksAddon,先来分析一下这个文件吧

我这里把$admin_list 数组的model 值改成links了,为了与插件对应。接下来我们在install方法里添加新建数据库的语句,这样我们在安装插件的时候,就会新建数据库了,我的代码如下:

public function install(){  //安装插件的方法
    //1、添加数据表
    $model = D();
    $db_prefix = C('DB_PREFIX');
    $table_name = "{$db_prefix}links";
    
    $sql=<<<SQL
CREATE TABLE IF NOT EXISTS `$table_name` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
 `title` varchar(80) NOT NULL DEFAULT '' COMMENT '站点名称',
 `link` varchar(140) NOT NULL DEFAULT '' COMMENT '链接地址',
 `summary` varchar(255) NOT NULL DEFAULT '' COMMENT '站点描述',
 `mailto` varchar(100) NOT NULL DEFAULT '' COMMENT '站长联系方式',
 `sort` int(3) unsigned NOT NULL DEFAULT 0 COMMENT '优先级',
 `nofollow` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否追踪',
 `type` tinyint(3) unsigned NOT NULL DEFAULT 1 COMMENT '类型分组',
 `cover_id` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '封面图片',
 `status` tinyint(2) NOT NULL DEFAULT 1 COMMENT '状态(0:禁用,1:正常)',
 `create_time` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '添加时间',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='友情连接表';
SQL;
  
    $model -> execute($sql);//执行sql语句
     
    //2、返回true,表示插件安装成功      
    return true;
  }
로그인 후 복사

我这里省略了很多细节判断,大家自己完善。

六、既然在安装插件的时候,新建了表,我们在卸载的插件的时候就要把表给删除,不然下次安装该插件的时候就会出问题。所以我们uninstall 方法代码如下:

public function uninstall(){ //卸载插件的方法
      $model = D();
      $db_prefix = C('DB_PREFIX');
      $table_name = "{$db_prefix}links";
      $sql="DROP TABLE IF EXISTS `".$table_name."`;";
      $model -> execute($sql);//执行sql语句  
      
      return true;
    }
로그인 후 복사

好了,到这里就差不多了,保存一下LinksAddon.class.php 文件,应该可以正常显示了,我们来看看。进入插件列表,先把Links插件卸载,然后重新安装。点击左侧菜单“友情链接”,可以看到

之所以能正常显示这个列表,是因为系统有默认的模板,在\Application\Admin\View\Addons 文件夹里,有兴趣的同学可以研究一下这几个模板文件,其中这个列表的模板就是adminlist.html,那么我们要把封面、书名、描述等等这些字眼改掉,要去模板里改吗?细心的同学估计注意到了,在LinksAddon.class.php 文件 的$admin_list 数组里配置的,其他的看后面的注释就明白,这里详细说一下list_grid 关联的数组。我们刚才新建的links数据表有id、title、link等字段,你想在这个列表显示什么字段,都可以添加。我这里代码如下:

'list_grid'=>array(     //这里定义的是除了id序号外的表格里字段显示的表头名和模型一样支持函数和链接
        'title:网站名称',
        'link:链接',
        'summary:描述',
        'create_time|time_format:添加时间', //time_format 是一个函数,把时间格式化,其他地方想使用什么函数也可以按照这种格式书写
        'id:操作:[EDIT]|编辑,[DELETE]|删除'
      ),
로그인 후 복사

保存,刷新后台友情链接列表

我们点击“新增” 来增加一个友情链接吧,你会发现,只有一个书名字段。我们打开Model/LinksModel.class.php 文件,我这里分别解释一下这两个自带的数组,具体看下面代码里的注释

class LinksModel extends Model{
  public $model = array(
    'title'=>'',//新增[title]、编辑[title]、删除[title]的提示
    'template_add'=>'',//自定义新增模板自定义html edit.html 会读取插件根目录的模板
    'template_edit'=>'',//自定义编辑模板html
    'search_key'=>'',// 搜索的字段名,默认是title
    'extend'=>1, //在后台列表是否显示 “增加”、“删除” 按钮,0-不显示 1-显示
  );

  public $_fields = array(
    'id'=>array(
      'name'=>'id',//字段名,与数据库的字段对应
      'title'=>'ID',//显示标题
      'type'=>'num',//字段类型:num、string、textarea、datetime、bool、select、radio、checkbox、editor、picture(封面)、file(附件)、
      'remark'=>'',// 备注,相当于配置里的tip
      'is_show'=>3,// 1-始终显示 2-新增显示 3-编辑显示 0-不显示
      'value'=>0,//默认值
    ),
    //下面演示一下 select字段怎么显示 radio、checkbox同理
    'type'=>array(
      'name'=>'type',
      'title'=>'类型',
      'type'=>'select',
      'remark'=>'请选择所属类型',
      'is_show'=>1,
       'extra'=>'0:友情链接,1:合作站点',
      'value'=>0,
      'is_must'=>1,
    ),
  );
}
로그인 후 복사

ok,我最后的效果是这样的:

添加一条数据看看吧:

这里要显示具体类型、显示图片等,需要自定义adminlist.html模板了。关于自定义模板,我们下一篇文章再说。关于钩子,其实就是写一个函数从数据库读取数据,然后在前台需要的地方调用钩子就行。如果需要模板,则在钩子函数里解析模板。钩子调用格式一般:

{:hook("钩子名称"),"[参数]"} 没参数就不写。直接写成这样{:hook("钩子名称")}

到此为止就是用系统默认的模板,一步一步的建立自己的插件,是不是很简单,就像填空题一样,只要按照它的规则填空,就ok了。

以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。

您可能感兴趣的文章:

  • Thinkphp和onethink实现微信支付插件
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PyCharm 초보자 가이드: 플러그인 설치에 대한 전반적인 이해! PyCharm 초보자 가이드: 플러그인 설치에 대한 전반적인 이해! Feb 25, 2024 pm 11:57 PM

PyCharm은 개발자가 코드를 보다 효율적으로 작성할 수 있도록 다양한 기능과 도구를 제공하는 강력하고 인기 있는 Python 통합 개발 환경(IDE)입니다. PyCharm의 플러그인 메커니즘은 기능을 확장하기 위한 강력한 도구입니다. 다양한 플러그인을 설치하면 PyCharm에 다양한 기능과 사용자 정의 기능을 추가할 수 있습니다. 따라서 PyCharm을 처음 접하는 사람이 플러그인을 이해하고 능숙하게 설치하는 것이 중요합니다. 이 문서에서는 PyCharm 플러그인의 전체 설치에 대해 자세히 소개합니다.

Illustrator에서 플러그인 로드 중 오류 발생 [수정됨] Illustrator에서 플러그인 로드 중 오류 발생 [수정됨] Feb 19, 2024 pm 12:00 PM

Adobe Illustrator를 시작할 때 플러그인 로딩 오류에 대한 메시지가 팝업됩니까? 일부 Illustrator 사용자는 응용 프로그램을 열 때 이 오류가 발생했습니다. 메시지 뒤에는 문제가 있는 플러그인 목록이 표시됩니다. 이 오류 메시지는 설치된 플러그인에 문제가 있음을 나타내지만 손상된 Visual C++ DLL 파일이나 손상된 기본 설정 파일과 같은 다른 이유로 인해 발생할 수도 있습니다. 이 오류가 발생하면 이 문서에서 문제 해결 방법을 안내하므로 아래 내용을 계속 읽어보세요. Illustrator에서 플러그인 로드 오류 Adobe Illustrator를 시작하려고 할 때 "플러그인 로드 오류" 오류 메시지가 표시되면 다음을 사용할 수 있습니다. 관리자로

Chrome 플러그인 확장 프로그램 설치 디렉터리는 무엇인가요? Chrome 플러그인 확장 프로그램 설치 디렉터리는 무엇인가요? Mar 08, 2024 am 08:55 AM

Chrome 플러그인 확장 프로그램 설치 디렉터리는 무엇인가요? 일반적인 상황에서 Chrome 플러그인 확장의 기본 설치 디렉터리는 다음과 같습니다. 1. windowsxp에서 Chrome 플러그인의 기본 설치 디렉터리 위치: C:\DocumentsandSettings\username\LocalSettings\ApplicationData\Google\Chrome\UserData\ Windows7의 Default\Extensions2.chrome 플러그인의 기본 설치 디렉터리 위치: C:\Users\username\AppData\Local\Google\Chrome\User

Edge 브라우저가 이 플러그인을 지원하지 않는 이유에 대한 세 가지 해결 방법을 공유하세요. Edge 브라우저가 이 플러그인을 지원하지 않는 이유에 대한 세 가지 해결 방법을 공유하세요. Mar 13, 2024 pm 04:34 PM

사용자가 Edge 브라우저를 사용할 때 더 많은 요구 사항을 충족하기 위해 일부 플러그인을 추가할 수 있습니다. 그런데 플러그인을 추가하면 해당 플러그인이 지원되지 않는다고 표시됩니다. 이 문제를 해결하는 방법은 무엇입니까? 오늘은 에디터가 세 가지 해결 방법을 알려드리겠습니다. 방법 1: 다른 브라우저를 사용해 보세요. 방법 2: 브라우저의 Flash Player가 오래되었거나 누락되어 플러그인이 지원되지 않을 수 있습니다. 공식 웹사이트에서 최신 버전을 다운로드할 수 있습니다. 방법 3: "Ctrl+Shift+Delete" 키를 동시에 누르세요. "데이터 지우기"를 클릭하고 브라우저를 다시 엽니다.

PyCharm Community Edition은 충분한 플러그인을 지원합니까? PyCharm Community Edition은 충분한 플러그인을 지원합니까? Feb 20, 2024 pm 04:42 PM

PyCharm Community Edition은 충분한 플러그인을 지원합니까? 구체적인 코드 예제가 필요 소프트웨어 개발 분야에서 Python 언어가 점점 더 널리 사용됨에 따라 전문적인 Python 통합 개발 환경(IDE)인 PyCharm이 개발자들에게 선호되고 있습니다. PyCharm은 Professional 버전과 Community 버전의 두 가지 버전으로 나누어집니다. Community 버전은 무료로 제공되지만 Professional 버전에 비해 플러그인 지원이 제한됩니다. 그렇다면 문제는 PyCharm Community Edition이 충분한 플러그인을 지원하느냐는 것입니다. 이 기사에서는 특정 코드 예제를 사용하여

WordPress 플러그인을 사용하여 비디오 재생 기능을 구현하는 방법 WordPress 플러그인을 사용하여 비디오 재생 기능을 구현하는 방법 Sep 05, 2023 pm 12:55 PM

WordPress 플러그인을 사용하여 비디오 재생 기능을 구현하는 방법 1. 소개 웹 사이트와 블로그에서 비디오를 적용하는 것이 점점 더 보편화되고 있습니다. 고품질의 사용자 경험을 제공하기 위해 WordPress 플러그인을 사용하여 비디오 재생 기능을 구현할 수 있습니다. 이 기사에서는 WordPress 플러그인을 사용하여 비디오 재생 기능을 구현하는 방법을 소개하고 코드 예제를 제공합니다. 2. 플러그인 선택 WordPress에는 선택할 수 있는 다양한 비디오 재생 플러그인이 있습니다. 플러그인을 선택할 때 다음 측면을 고려해야 합니다. 호환성: 플러그인이 맞는지 확인하세요.

WordPress 플러그인에 WeChat 미니 프로그램 기능을 추가하는 방법 WordPress 플러그인에 WeChat 미니 프로그램 기능을 추가하는 방법 Sep 06, 2023 am 09:03 AM

WordPress 플러그인에 WeChat 미니 프로그램 기능을 추가하는 방법 WeChat 미니 프로그램의 인기와 인기로 인해 점점 더 많은 웹사이트와 애플리케이션이 WeChat 미니 프로그램과의 통합을 고려하기 시작했습니다. 콘텐츠 관리 시스템으로 WordPress를 사용하는 웹사이트의 경우 WeChat 애플릿 기능을 추가하면 사용자에게 더욱 편리한 액세스 경험과 더 많은 기능적 선택권을 제공할 수 있습니다. 이 기사에서는 WordPress 플러그인에 WeChat 미니 프로그램 기능을 추가하는 방법을 소개합니다. 1단계: WeChat 미니 프로그램 계정을 등록하세요. 먼저 WeChat 앱을 열어야 합니다.

WordPress 플러그인에 온라인 주문 기능을 추가하는 방법 WordPress 플러그인에 온라인 주문 기능을 추가하는 방법 Sep 05, 2023 pm 03:42 PM

WordPress 플러그인에 온라인 주문 기능을 추가하는 방법 오늘날의 디지털 시대에 많은 레스토랑과 커피숍은 고객의 요구를 충족하기 위해 주문 프로세스를 온라인으로 이동하기로 결정했습니다. WordPress는 널리 사용되는 콘텐츠 관리 시스템(CMS)이며 많은 기업에서 WordPress를 사용하여 웹 사이트를 구축하고 있습니다. 이 기사에서는 WordPress 플러그인에 온라인 주문 기능을 추가하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1단계: 올바른 플러그인 선택 먼저 WordPress에서 사용자 정의 플러그인을 만들어야 합니다.

See all articles