OneThink その便利な Web サイト構築、豊富な拡張機能、柔軟な二次開発、およびクラウド サービスのサポートにより、大多数の個人およびユーザーに新しいイノベーションをもたらします。企業の Web サイト構築の機会とチャンスが広がり、やがてインターネットの新たなトレンドセッターとなるでしょう。
OneThink 機能の紹介:
1. ThinkPHP の最新バージョン、Thinkphp3.2 に基づいています。
2. モジュール性: 新しいアーキテクチャとモジュール型開発メカニズムにより、柔軟な拡張と二次開発が容易になります。
3. 文書モデル/分類システム: 文書モデルとさまざまな文書タイプにバインドすることで、さまざまな分類が差別化された機能を実現し、情報、ダウンロード、ディスカッション、画像などの機能を簡単に実装できます。
4. オープンソースで無料: OneThink は Apache2 オープンソース契約に従っており、無料で使用できます。
5. ユーザーの行動: カスタマイズされたユーザーの行動をサポートし、個々のユーザーまたはユーザーのグループの行動を記録して共有し、運用上の決定に有効な参照データを提供します。
6. クラウド展開: プラットフォームの展開はドライバーを通じて簡単にサポートされ、Web サイトのシームレスな移行がすでにサポートされています。
7. クラウド サービスのサポート: クラウド ストレージ、クラウド セキュリティ、クラウド フィルタリング、クラウド統計などのサービスが間もなく開始され、Web サイトの安全性が高まります。
8. 安全で堅牢: バックアップとリカバリ、フォールト トレランス、悪意のある攻撃によるログインの防止、Web ページの改ざん防止、その他多くのセキュリティ管理機能を含む堅牢なセキュリティ戦略を提供し、システムの安全、信頼性、安定した動作を保証します。
9. アプリケーション ウェアハウス: 公式アプリケーション ウェアハウスには、Web サイトを "One" 美しくするためのサードパーティのプラグイン、アプリケーション モジュール、テンプレート テーマ、およびオープン ソース コミュニティからの多くの貢献が含まれています。
プラグインを 1 つに追加する手順背景を考えてください:
バージョン: V1.1.141212 (注: v1.1 には多くのバージョンがあります。誤って V1.1.140202 にダウンロードしてしまいました。他のバージョンもあります。コード ホスティング プラットフォームから最新バージョンをダウンロードすることをお勧めします)
私も怠け者ではないので、すべてのステップを記録します。
1. バックエンドに入り、プラグインを作成します
ここのフックでは、フロントページの下部にフレンドリーリンクを表示するだけでよいため、新しいindexFooterを作成しました。上記で確認する必要がある箇所をすべてチェックします。違いについては、生成されたファイルが同じかどうかを区別するためにいくつかの例を作成します。わかりました!これでフレンドリーリンクプラグインが作成されました。 「OK」をクリックします。 (ここではカスタム テンプレートをすべて空白のままにしてください。カスタム テンプレートを追加した効果については次の記事で説明します)
2. [インストール] をクリックし、インストールしたリンク プラグインを見つけます。 [設定] をクリックすると、デフォルトの [ランダム化を有効にするかどうか] オプションが設定されていることがわかります。必要ありませんので、後で削除します。インストール後、左側のナビゲーション「インストールされたプラグイン バックエンド」に新しい「フレンドリー リンク」が表示されます
3. 左側のナビゲーションで [フレンドリー リンク] をクリックすると、特定のテーブルが存在しないことを意味するエラーが表示されます。はい、プラグインを構築しました。データベースにデータを保存する必要がある場合は、テーブルも作成する必要があります。非常に非人道的であるため、ここではデータベースに直接構築しません。次に、プラグインをインストールする機能を見つけて、プラグインをインストールするときにデータベースを作成します。まず、すべてのシステム プラグインはルート ディレクトリ /Addons/ フォルダーに保存されています。このフォルダーを開くと、先ほど作成した 1 つのプラグインが 1 つのフォルダーに対応しています。 Links フォルダーを開くと、中に 2 つのファイルと 2 つのフォルダーがあります。
4. 実際、oneThink はますます簡潔になりつつあり、PHP を理解していない人でもプラグインを作成できることがわかります。もちろん、独自のアイデアがあり、公式の制限に限定されたくない場合でも、PHP をよく学ぶ必要があります。
5. プラグイン エントリ ファイル LinksAddon.class.php を開きます。まずこのファイルを分析しましょう。
ここではプラグインに対応させるため、$admin_list配列のmodel値をリンクに変更しました。次に、新しいデータベースを作成するステートメントを install メソッドに追加します。これにより、プラグインをインストールすると、新しいデータベースが作成されます。
リーリー
ここでは細かい判断を省略しましたが、誰もが自分で改善できます。
六、既然在安装插件的时候,新建了表,我们在卸载的插件的时候就要把表给删除,不然下次安装该插件的时候就会出问题。所以我们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程序设计有所帮助。