この記事では、主に Typecho プラグイン作成チュートリアル (V): コア コードを説明します。参考になります
前にたくさん話しましたが、今はコアのコードを書き始めています。
分析すると、記事を公開するときに必要な情報は現在の記事の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');
「プラグインは正常にインストールされました。設定を入力し、アクセス キーを入力してください」を返します。
}
パブリック静的関数 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'), '取得するには百度ウェブマスタープラットフォームにログインしてください');
$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');
「プラグインは正常にインストールされました。設定を入力し、アクセス キーを入力してください」を返します。
}
パブリック静的関数 deactivate(){
// 何かをする
return 'プラグインは正常にアンインストールされました';
}
public static function config(Typecho_Widget_Helper_Form $form){
//インターフェース呼び出しアドレスを保存します
$element = new Typecho_Widget_Helper_Form_Element_Text('api', null, null, _t('インターフェース呼び出しアドレス'), '取得するには百度ウェブマスタープラットフォームにログインしてください');
$form->addInput($element);
}
パブリック静的関数personalConfig(Typecho_Widget_Helper_Form $form){}
/**
*データの準備
* @param $contents 記事内容
* @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 サーバーに送信することです
このセクションは終了です!
。