Использование $ object в Actions. Я создал модуль, но параметр _action ($ object) не работает - PullRequest
0 голосов
/ 15 марта 2011

Использование объекта $ в действиях. $ object: многие действия действуют на один из встроенных объектов Drupal: узлы, пользователи, термины таксономии и т. д. Когда действие выполняется в trigger.module, объект, над которым в данный момент выполняется, передается действию в параметре $ object. Например, если задано действие для выполнения при создании нового узла, параметр $ object будет содержать объект узла. $ объект не имеет значения.i получит заголовок узла и будет использовать его в коде.

function beep_action($object, $context) {
    global $user;
    //$q_mailfrom = db_query("SELECT mail FROM {users} WHERE uid = '%d'", 1);
   // $f_mailfrom = db_fetch_object($q_mailfrom);

    $q_mailuser = db_query("SELECT uid, mail  FROM {users}");
   // $a_mailto=array();
  //  $i=0;
    while($f_mailuser = db_fetch_object($q_mailuser)){
        if($f_mailuser->uid==1){
         $mailfrom = $f_mailuser->mail;
        }
     $q_mailer = db_query("SELECT news,proudcts,privilagecard,occassioncard,others  FROM {beep} WHERE uid = '%d'", $f_mailuser->uid);
     $f_mailer = db_fetch_object($q_mailer);
     if($f_mailer->news==1 OR $f_mailer->proudcts==1 OR $f_mailer->privilagecard==1 OR $f_mailer->occassioncard==1 OR $f_mailer->others==1 ){
        if($f_mailer->news==1){

            $mailto = $f_mailuser->mail;

            $subject = "... Group";
            $message = "<h2>... Group Latest News </h2>".$object->nid."<br/>Test";
            drupal_mail('beep', 'reply', $mailto, language_default(),
                 array('body' => $message, 'subject' => $subject), $mailfrom, TRUE);
        }
      //   $a_mailto[$i]= $f_mailto->mail;
      //  $i++;
     }
    }

}

Ответы [ 2 ]

0 голосов
/ 15 марта 2011

Я вижу, что вы хотите

function MYMODULE_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL){
  switch($op){
    case 'insert':
      if($node->type == 'mytype'){
        beep_action($node);
      }
      break;
  }
}
0 голосов
/ 15 марта 2011

Показать функцию вызова. Что вы публикуете в $ object?

И читай стандартные коды друпалов.

<code>function beep_action($object, $context) {
  _vdump($object);
  global $user;
  $default_from = variable_get('site_mail', ini_get('sendmail_from'));

  $query = "SELECT user.uid, user.mail  FROM {users} user WHERE status <> %d";

  $result = db_query($query, 0);
  $subject = t("Azaran Mehr Group");

  while ($row = db_fetch_object($result)) {
    $query = "SELECT beep.news, beep.proudcts, beep.privilagecard, beep.occassioncard, beep.others FROM {beep} beep WHERE uid = %d"; // Do not use ' on integer values

    $f_mailer = db_fetch_object(db_query($query, $row->uid));
    if ($f_mailer->news == 1 && ($f_mailer->proudcts == 1 || $f_mailer->privilagecard == 1 || $f_mailer->occassioncard == 1 || $f_mailer->others == 1)) {
      $message = '<h2>'. t('Azaran Mehr Group Latest News - !nid', array('!nid' => $object->nid)) .'</h2><br/>Test';

      drupal_mail('beep', 'reply', $row->mail, language_default(),
              array('body' => $message, 'subject' => $subject), $default_from, TRUE);
    }
  }
}

function _vdump($var, $keys = FALSE) {
  if($keys){
    drupal_set_message('<pre>' . print_r(array_keys($var), 1) . '
'); } еще { drupal_set_message ( '
' . print_r($var, 1) . '
'); } }
...