Twitter模块-Drupal 7

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-

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->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();
}
希望这可以帮助任何人谁是寻找相同的东西,因为我