Twitter模块-Drupal 7
Twitter模块正在与我的Drupal7站点一起使用finde。我想做一个tweek,这样没有隐藏的节点就可以被推特,我可以通过改变twitter\u post\u node\u插入twitter/twitter\u post来做到这一点。我所做的只是添加了一个新的条件$节点->隐藏。它工作得很好Twitter模块-Drupal 7,twitter,drupal-7,Twitter,Drupal 7,Twitter模块正在与我的Drupal7站点一起使用finde。我想做一个tweek,这样没有隐藏的节点就可以被推特,我可以通过改变twitter\u post\u node\u插入twitter/twitter\u post来做到这一点。我所做的只是添加了一个新的条件$节点->隐藏。它工作得很好 function twitter_post_node_insert($node) { if (!empty($node->status) && !empty($node-
function twitter_post_node_insert($node) {
if (!empty($node->status) && !empty($node->twitter) && !empty($node->twitter['post'])
&& !$node->hidden) { ......
我的问题是,只有当我直接编辑并保存一个节点时,才会调用Twitter模块中的这段代码。现在,我想说的是,当我以编程方式编辑节点时,代码也会被调用,在这里我使用$node_wrapper->save;保存它。推特代码不会被调用。我还尝试了node_save$node,而不是使用我的$node\u包装器。没什么
我还尝试将文件twitter_post.module包含在twitter/twitter_post中,然后调用负责发布tweet的函数:
module_load_include('module', 'twitter', '../twitter/twitter_post/twitter_post');
twitter_post_node_update($node);
不会发生任何事情,也不会显示任何错误。我想知道的是,当您通过接口编辑一个节点并保存它时,Drupal 7函数的核心调用了什么。这样我就可以把这个函数放在代码中,通过编程编辑我的节点,这样Twitter代码也会被调用。或者,有人有更好的方法吗
谢谢。在查看了Twitter模块之后,为了以编程方式发布节点,我已经完成了这项工作 我在twitter/twitter\u post/twitter\u post.module中添加了以下函数。它是在同一个文件中找到的函数twitter\u post\u node\u insert$node的副本。我复制了一份,这样它就不会打印出成功发布的推特消息。这样,我从另一个地方调用复制的函数来发布tweet
/**
* Function called from custom .module to insert tweets from "Editar Pesos" tab
*/
function twitter_post_node_custom_insert($node) {
if (!empty($node->status) && !empty($node->twitter) && !empty($node->twitter['post']) && !$node->hidden ) {
module_load_include('inc', 'twitter');
$twitter_account = twitter_account_load($node->twitter['account']);
$replacements = array(
'!title' => truncate_utf8($node->title, 90, false, true),
'!url' => url('node/' . $node->nid, array('absolute' => TRUE, 'alias' => TRUE)),
'!url-alias' => url('node/' . $node->nid, array('absolute' => TRUE))
);
// Only generate the shortened URL if it's going to be used. No sense
// burning through TinyURLs without a good reason.
if (strstr($node->twitter['status'], '!tinyurl') !== FALSE) {
$replacements['!tinyurl'] = twitter_shorten_url(url('node/' . $node->nid,
array('absolute'=> TRUE)));
}
$status = strtr($node->twitter['status'], $replacements);
return twitter_set_status($twitter_account, $status);
}
}
下面是魔术,每当我想把节点发布为tweet时,就会调用它
function post_to_twitter($node){
module_load_include('module', 'twitter', '../twitter/twitter_post/twitter_post');
$twitter = array(
'account' => getTwitterUid(),
'post' => 'POST',
'status' => "!title !tinyurl"
);
$node->twitter = $twitter;
return twitter_post_node_custom_insert($node);
}
function getTwitterUid(){
return db_query("select twitter_uid from {twitter_account} where screen_name = :screen_name
limit 1", array(":screen_name" => 'YOUR_TwitterScreenName'))->fetchField();
}
希望这可以帮助任何人谁是寻找相同的东西,因为我