ホームページ >バックエンド開発 >PHPチュートリアル >Typechoプラグイン作成チュートリアル(5):コアコード、typechoプラグイン_PHPチュートリアル
以前は冗長でしたが、ここでコア コードを書き始めます。
分析すると、記事を公開するときに必要な情報は現在の記事の 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 サーバーに送信することです。
このセクションは終了です!