Posts Tagged ‘print_r’

drupal anywhere 8: 用代码修改编辑任意文章:node_save

April 25th, 2010

drupal anywhere 6 时介绍过强大的一个API叫node_load ,他是读,那么修改和保存呢,而且在drupal anywhere 7时介绍过chdir在任意文件夹下调用drupal的全部组件。这样的方法你会发现我经常用到。

今天介绍一下用代码去修改文章,就是drupal所谓的node了,同node_load一样,你需要先确定一个node_id:例如1吧。详细的使用

1.在根目录建立文件夹叫test,以后所有的测试文件都放里面

2.在这个文件夹上,使用drupal anywhere 7时介绍过chdir , 建立文件node_load.php

3.文件开始:

<?php
chdir(‘/home2/crawgirl/public_html/feedme/’);
require_once ‘./includes/bootstrap.inc’;
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

//////////////////////

$nid=1;

$node=node_load($nid);//读取

print_r($node);//了解一下这个node的结构,如果你不记得了

//////////////////////

$body=$node->body;//读取内容,准备修改

$body=”我想修改的内容放这里,或者使用正则表达式”;

$node->body=$body;//修改完后,给body重新赋值

node_save($node);//保存

$node=NULL;//养成习惯,不用的对象马上清空了

/////////////////////

?>

就是如此简单,用同样的方法,能修改node的任何内容。注意了,如果你打开了drupal 的cache,那么可能页面还没改过来,你需要打开这个node的编辑页面才行。

——————————————

drupal 7 : node_save 的改变

Share

drupal anywhere 6 : 入题,node_load,使用API

April 24th, 2010

感性认识一下drupal,这里会出现一些编程,是drupal anywhere 的核心,如果用drupal不想自己编程的话,那可以不要考虑再使用drupal了

1.发表一篇文章,随便就可以,不会发布文章的话查看drupalchina.org的中文教程。发表完后记下它的url. 例如,如果url是http://www.youdomain/node/1  , 那我们需要的只是这个最后的数字,我们叫他node id .   以 nodeid=1为例吧

2.在drupal的安装根目录下,复制index.php改为为node.php(什么都可以,只要是php结尾),只需要下面几行,其它行都删除

<?php

require_once ‘./includes/bootstrap.inc’;
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

?>

然后增加一行:

<?php

require_once ‘./includes/bootstrap.inc’;
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

print_r(node_load(1));

?>

如果你想先看看效果的话,可以看看:http://feedme.trackself.com/api/node_load.php的源文件(是源文件!)

这时输出的结果,应该是你刚才创建的文章的结构了。

这一步成功的话,drupal anywhere 就成功了一小步了,如果够熟悉php的话,你现在已经能自由的调用drupal的所有文章信息了

再进一步,修改一下,增加一句php的输出语句“print”,只输出任意想要输出的行

<?php

require_once ‘./includes/bootstrap.inc’;
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

$node=node_load(1);

print $node->nid;

?>

如此简单的一行就搞定了,何必去看烦人的说明文档?自由的输出文章了,何必再学themes?

drupal的界面很丑,而官方提供的模板更丑,但现在你已经能自由的调出文章了,随便在网上找个漂亮的静态模板,就可以利用drupal的后台发文章,而自由设计文章在任何页面的任何地方显示了。

如果再能自由输入文章了,那drupal不就搞定一小半了吗?对的。

到这里,希望你千万别急着去了解每一行代码的意思,照做然后有个印象就行了,drupal anywhere 主要目的并不是去学习drupal,而是利用drupal而已,将drupal 当工具,正如你有必要去了解一个板手是怎么制作出来的吗,你知道什么时候该用板手就行了。

node_load就是一个常用的API,你可以通过http://api.drupal.org/ 了解更多的drupal api

将node_load换成这个页面的其它api试试吧,这样就又进一大步了。

Share