我看了 这个的 http://www.typechodev.com/ind... 之后感觉非常愣逼
class MyPlugin_NewPost extends Widget_Abstract_Contents implements Widget_Interface_Do {
public function __construct($request, $response, $params = NULL) {
parent::__construct($request, $response, $params);
}
public function action() {
$user="创建此文章的用户,注意要有权限";
$password="用户对应的密码";
if (!$this->user->hasLogin()) {
if (!$this->user->login($user, $password, true)) { //使用特定的账号登陆
die('登录失败');
}
}
$request = Typecho_Request::getInstance();
$title = $request->get('title');
$text = $request->get('text');
//填充文章的相关字段信息。
$request->setParams(
array(
'title'=>$title,
'text'=>$text,
'fieldNames'=>array(),
'fieldTypes'=>array(),
'fieldValues'=>array(),
'cid'=>'',
'do'=>'publish',
'markdown'=>'1',
'date'=>'',
'category'=>array(),
'tags'=>'',
'visibility'=>'publish',
'password'=>'',
'allowComment'=>'1',
'allowPing'=>'1',
'allowFeed'=>'1',
'trackback'=>'',
)
);
//设置token,绕过安全限制
$security = $this->widget('Widget_Security');
$request->setParam('_', $security->getToken($this->request->getReferer()));
//设置时区,否则文章的发布时间会查8H
date_default_timezone_set('PRC');
//执行添加文章操作
$widgetName = 'Widget_Contents_Post_Edit';
$reflectionWidget = new ReflectionClass($widgetName);
if ($reflectionWidget->implementsInterface('Widget_Interface_Do')) {
$this->widget($widgetName)->action();
echo 'Successful';
return;
}
}
}
应该是两个页面
第一个是Plugin.php 真不会写....
<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
/**
* Hello World
*
* @package HelloWorld
* @author qining
* @version 1.0.0
* @link http://typecho.org
*/
class HelloWorld_Plugin implements Typecho_Plugin_Interface
{
/**
* 激活插件方法,如果激活失败,直接抛出异常
*
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function activate()
{
Typecho_Plugin::factory('admin/menu.php')->navBar = array('HelloWorld_Plugin', 'render');
}
/**
* 禁用插件方法,如果禁用失败,直接抛出异常
*
* @static
* @access public
* @return void
* @throws Typecho_Plugin_Exception
*/
public static function deactivate(){}
/**
* 获取插件配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form 配置面板
* @return void
*/
public static function config(Typecho_Widget_Helper_Form $form)
{
/** 分类名称 */
$name = new Typecho_Widget_Helper_Form_Element_Text('word', NULL, 'Hello World', _t('说点什么'));
$form->addInput($name);
}
/**
* 个人用户的配置面板
*
* @access public
* @param Typecho_Widget_Helper_Form $form
* @return void
*/
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
/**
* 插件实现方法
*
* @access public
* @return void
*/
public static function render()
{
echo '<span class="message success">'
. htmlspecialchars(Typecho_Widget::widget('Widget_Options')->plugin('HelloWorld')->word)
. '</span>';
}
}
这是官方的helloword我改怎么进行修改呢?
在Plugin中通过添加路由
Helper::addAction('import', 'MyPlugin_NewPost');
到那一行...
第二页面是 NewPost.php 代码在上最后的}}}后要不要加上
?>
第一个文件就不是typecho自带的,第二个文件不要贴官方的插件示例,你贴你写的就行。这个就在加个Action
,插件要在后台启用。然后通过post提交到那个地址。