> 백엔드 개발 > PHP 튜토리얼 > OneThink란 무엇입니까? oneThink background_php 팁에 플러그인을 추가하는 단계

OneThink란 무엇입니까? oneThink background_php 팁에 플러그인을 추가하는 단계

WBOY
풀어 주다: 2016-05-16 19:54:18
원래의
1270명이 탐색했습니다.

OneThink는 편리한 웹 사이트 구축, 풍부한 확장성, 유연한 2차 개발, 클라우드 서비스 지원을 통해 대다수의 개인과 기업에 웹 사이트 구축에 새로운 기회와 기회를 제공했으며, 인터넷의 새로운 시대.

OneThink 기능 소개:

1. ThinkPHP 최신 버전인 Thinkphp3.2를 기준으로 합니다.

2. 모듈성: 새로운 아키텍처와 모듈식 개발 메커니즘을 통해 유연한 확장과 2차 개발이 가능합니다.

3. 문서 모델/분류 시스템: 문서 모델과 다양한 문서 유형을 결합하여 다양한 분류를 통해 차별화된 기능을 구현하고 정보, 다운로드, 토론, 사진 등의 기능을 쉽게 구현할 수 있습니다.

4. 오픈 소스 및 무료: OneThink는 Apache2 오픈 소스 계약을 따르며 무료로 사용할 수 있습니다.

5. 사용자 행동: 개별 사용자 또는 사용자 그룹의 행동을 기록하고 공유할 수 있는 맞춤형 사용자 행동을 지원하여 운영 결정에 효과적인 참조 데이터를 제공합니다.

6. 클라우드 배포: 드라이버를 통해 플랫폼 배포를 쉽게 지원할 수 있으므로 SAE가 이미 내장되어 원활하게 마이그레이션될 수 있습니다.

7. 클라우드 서비스 지원: 클라우드 스토리지, 클라우드 보안, 클라우드 필터링, 클라우드 통계 및 기타 서비스 지원이 곧 출시될 예정입니다.

8. 안전하고 견고함: 백업 및 복구, 내결함성, 악의적인 공격 로그인 방지, 웹페이지 변조 방지 및 기타 다양한 보안 관리 기능을 포함한 강력한 보안 전략을 제공하여 안전하고 안정적이며 안정적인 운영을 보장합니다. 체계.

9. 애플리케이션 웨어하우스: 공식 애플리케이션 웨어하우스에는 수많은 타사 플러그인, 애플리케이션 모듈, 템플릿 테마 및 오픈 소스 커뮤니티의 많은 기여가 있어 웹사이트를 "One"으로 아름답게 만듭니다.

oneThink 배경에 플러그인을 추가하는 단계:

버전: V1.1.141212 (참고: v1.1 버전이 많습니다. 실수로 V1.1.140202로 다운로드했습니다. 다른 버전도 있습니다. 코드 호스팅 플랫폼에서 최신 버전을 다운로드하는 것이 좋습니다)

나도 게으르지 않고 모든 단계를 기록합니다.

1. 배경 진입 및 플러그인 생성

여기 후크의 경우 첫 페이지 하단에 친숙한 링크만 표시하면 되므로 새 indexFooter를 만들었습니다. 위에서 확인해야 할 부분을 모두 확인했는데, 차이점은 몇 가지 예시를 만들어서 생성된 파일이 동일한지 확인해볼 수 있습니다. 좋아요! 여기에서 우리의 친숙한 링크 플러그인이 생성되었습니다! 확인을 클릭하세요. (여기서 모든 사용자 정의 템플릿을 비워두십시오. 다음 기사에서 사용자 정의 템플릿 추가의 효과를 설명하겠습니다)

2. "설치"를 클릭하고 방금 설치한 링크 플러그인을 찾아 "설정"을 클릭하면 기본적으로 "무작위화를 켤지 여부" 옵션이 있음을 알 수 있습니다. 여기서는 신경 쓰지 않아도 됩니다. , 왜냐하면 더 이상 필요하지 않으며 나중에 삭제될 것이기 때문입니다. 설치 후 왼쪽 탐색 메뉴 "설치된 플러그인 백엔드"에서 새로운 "친숙한 링크"를 볼 수 있습니다.

3. 왼쪽 탐색 메뉴에서 '친숙한 링크'를 클릭하면 오류가 표시됩니다. 이는 특정 테이블이 존재하지 않는다는 의미일 수 있습니다. 예, 방금 플러그인을 구축했습니다. 데이터베이스에 데이터를 저장하는 경우 테이블도 생성해야 합니다. 여기서는 데이터베이스에 직접 구축하지 않습니다. 왜냐하면 그렇게 하는 것은 매우 비인간적이기 때문입니다. 그러면 플러그인을 설치할 때 플러그인을 설치하고 데이터베이스를 생성하는 기능을 찾아보겠습니다. 먼저, 모든 시스템 플러그인은 루트 디렉터리인 /Addons/ 폴더에 저장되어 있습니다. 이 폴더를 열면 방금 생성한 플러그인이 하나의 폴더에 해당합니다. Links 폴더를 열면 그 안에 2개의 파일과 2개의 폴더가 있습니다.

4. 실제로 oneThink는 점점 더 간결해지고 있습니다. PHP를 이해하지 못하는 사람들도 플러그인을 만들 수 있으며 나중에 알게 될 것입니다. 물론 자신만의 아이디어가 있고 공식적인 제한에 얽매이고 싶지 않다면 여전히 PHP를 잘 배워야 합니다.

5. 플러그인 항목 파일인 LinksAddon.class.php를 엽니다. 여기에는 LinksAddon 클래스가 있습니다.

플러그인에 대응하기 위해 $admin_list 배열의 모델 값을 여기 링크로 변경했습니다. 다음으로 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程序设计有所帮助。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿