欢迎各位兄弟 发布技术文章
这里的技术是共享的
诗人兄,你好!
我打算换另外一种PHP框架,做drupal数据node表的增删改查,但还是用drupal自己的后台管理。
请问是不是node和node_revision表内容一致就行了?
node表nid=1 vid=2
node_revision表nid=1 vid=2
我试着在这两个表里手工直接插入一样的数据,但是后台的内容管理,不显示的。
请指点,谢谢!
其实你参考drupal_write_record() 的方式就可以知道如何写了。给你一个drupal_write_record() 写入节点内容的方法:
function
amnode_save(&
$node
) {
//定义存储函数,如果有相同asin码就更新,没有就插入。
node_invoke_nodeapi(
,
'presave'
);
global
$user
;
->is_new = FALSE;
$result
= db_query(
'SELECT `nid`,`field_asin_value` FROM `content_type_story`'
while
(
$data
= db_fetch_object(
)){
if
->field_asin_value ==
->field_asin[
'0'
][
'value'
]) {
->is_new = TRUE;
->vid =
->nid;
->nid =
}
else
{
empty
->log)) {
unset(
->log);
->created)) {
->created = time();
->changed = time();
->timestamp = time();
->format = isset(
->format) ?
->format : FILTER_FORMAT_DEFAULT;
->is_new != 1) {
echo
'aaa'
_node_save_revision(
->uid);
drupal_write_record(
'node'
db_query(
'UPDATE {node_revisions} SET nid = %d WHERE vid = %d'
->nid,
->vid);
$op
=
'insert'
'bbb'
'nid'
(!
->revision)) {
'UPDATE {node} SET vid = %d WHERE nid = %d'
->vid,
->nid);
->uid,
'vid'
'update'
node_invoke(
node_access_acquire_grants(
cache_clear_all();
另外框架建议用symfony 2 或者yii。
2 个回答
其实你参考drupal_write_record() 的方式就可以知道如何写了。给你一个drupal_write_record() 写入节点内容的方法:
function
amnode_save(&
$node
) {
//定义存储函数,如果有相同asin码就更新,没有就插入。
node_invoke_nodeapi(
$node
,
'presave'
);
global
$user
;
$node
->is_new = FALSE;
$result
= db_query(
'SELECT `nid`,`field_asin_value` FROM `content_type_story`'
);
while
(
$data
= db_fetch_object(
$result
)){
if
(
$data
->field_asin_value ==
$node
->field_asin[
'0'
][
'value'
]) {
$node
->is_new = TRUE;
$node
->vid =
$data
->nid;
$node
->nid =
$data
->nid;
}
else
{
if
(
empty
(
$node
->log)) {
unset(
$node
->log);
}
}
}
if
(
empty
(
$node
->created)) {
$node
->created = time();
}
$node
->changed = time();
$node
->timestamp = time();
$node
->format = isset(
$node
->format) ?
$node
->format : FILTER_FORMAT_DEFAULT;
if
(
$node
->is_new != 1) {
echo
'aaa'
;
_node_save_revision(
$node
,
$user
->uid);
drupal_write_record(
'node'
,
$node
);
db_query(
'UPDATE {node_revisions} SET nid = %d WHERE vid = %d'
,
$node
->nid,
$node
->vid);
$op
=
'insert'
;
}
else
{
echo
'bbb'
;
drupal_write_record(
'node'
,
$node
,
'nid'
);
if
(!
empty
(
$node
->revision)) {
_node_save_revision(
$node
,
$user
->uid);
db_query(
'UPDATE {node} SET vid = %d WHERE nid = %d'
,
$node
->vid,
$node
->nid);
}
else
{
_node_save_revision(
$node
,
$user
->uid,
'vid'
);
}
$op
=
'update'
;
}
node_invoke(
$node
,
$op
);
node_invoke_nodeapi(
$node
,
$op
);
node_access_acquire_grants(
$node
);
cache_clear_all();
}
孤魂LV 8
另外框架建议用symfony 2 或者yii。