ホームページ >バックエンド開発 >PHPチュートリアル >Typechoプラグイン作成チュートリアル(5):コアコード、typechoプラグイン_PHPチュートリアル

Typechoプラグイン作成チュートリアル(5):コアコード、typechoプラグイン_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:52:27896ブラウズ

Typecho プラグイン作成チュートリアル (5): コア コード、Typecho プラグイン

以前は冗長でしたが、ここでコア コードを書き始めます。

分析すると、記事を公開するときに必要な情報は現在の記事の URL であり、それを $contents と $class から取得する方法を見つける必要があります。

現在のプラグインクラスコードは次のとおりです(レンダリングを送信に変更していることに注意してください)

コードをコピーします コードは次のとおりです:
クラス BaiduSubmitTest_Plugin は Typecho_Plugin_Interface を実装します
{

パブリック静的関数 activate(){
//記事とページを公開するためのインターフェースをマウントします
Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
return 'プラグインは正常にインストールされました。設定を入力し、アクセス キーを入力してください';
}

パブリック静的関数 deactivate(){
// 何かをする
return 'プラグインは正常にアンインストールされました';
}

public static function config(Typecho_Widget_Helper_Form $form){
$element = new Typecho_Widget_Helper_Form_Element_Text('api', null, null, _t('Access Key'), '取得するには、Baidu ウェブマスター プラットフォームにログインしてください');
$form->addInput($element);
}

パブリック静的関数personalConfig(Typecho_Widget_Helper_Form $form){}

パブリック静的関数 send($contents, $class){
//何かする
}
}

URLを取得

永久リンクを取得するには、ルーティング ルール + Typecho_Common::url を通じて生成する必要があります。

コードをコピーします コードは次のとおりです:
クラス BaiduSubmitTest_Plugin は Typecho_Plugin_Interface を実装します
{

パブリック静的関数 activate(){
//記事とページを公開するためのインターフェースをマウントします
Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array('BaiduSubmitTest_Plugin', 'send');
return 'プラグインは正常にインストールされました。設定を入力し、アクセス キーを入力してください';
}

パブリック静的関数 deactivate(){
// 何かをする
return 'プラグインは正常にアンインストールされました';
}

パブリック静的関数 config(Typecho_Widget_Helper_Form $form){
//インターフェース呼び出しアドレスを保存します
$element = new Typecho_Widget_Helper_Form_Element_Text('api', null, null, _t('インターフェイス呼び出しアドレス'), '取得するには、Baidu ウェブマスター プラットフォームにログインしてください');
$form->addInput($element);
}

パブリック静的関数personalConfig(Typecho_Widget_Helper_Form $form){}

/**
*データを準備します
* @param $content 記事の内容
* @param $class インターフェースを呼び出すクラス
* @throws Typecho_Plugin_Exception
​​*/
パブリック静的関数 send($contents, $class){

//記事属性が非表示または公開が遅れている場合
If( 'publish' != $contents['visibility'] || $contents['created'] > time()){
戻る;
}

// システム構成を取得する
$options = Helper::options();

// API が適切に設定されているかどうかを確認します
If( is_null($options->plugin('BaiduSubmitTest')->api) ){
戻る;
}

//記事タイプを取得する
$type = $contents['type'];

//ルーティング情報を取得する
$routeExists = (NULL != Typecho_Router::get($type));

// 永続的な接続を生成します
$path_info = $routeExists ? Typecho_Router::url($type, $contents) : '#';
$permalink = Typecho_Common::url($path_info, $options->index);
}
}

コード内にコメントがあるので、詳細は説明しません。

これで記事の永久リンクを取得できました。次のステップは、データを Baidu サーバーに送信することです。

このセクションは終了です!

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1008004.html技術記事 Typecho プラグインの作成チュートリアル (5): コア コード Typecho プラグインはこれまで非常に冗長でしたが、ここでコア コードの作成を開始します。 分析後、記事を公開する際に必要な情報は...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。