Archief - drupal:module zelf "patchen"

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

demon326

Legacy Member
Hallo iedereen, zeer binnenkort gaan we onze gebruikers laten gebruik maken van de invite module van drupal, maar gezien we op een shared host zitten zouden we gebruiken maken van de Job queue module, maar als ik de uitleg daar toepas op de regel die de mails verzend krijg ik pars erros, en dat is niet de bedoeling hé

PHP:
 if (!($success = drupal_mail('invite-mail', $recipient, $subject, wordwrap($body, 72), $from, $headers))) {
    static $error_shown = FALSE;
    if (!$error_shown) {
      drupal_set_message(t('Problems occurred while sending the invitation(s). Please contact the site administrator.'), 'error');
      $error_shown = TRUE;
    }
    watchdog('invite', t('Failed sending invitation. To: @email From: @from', array('@email' => '<'. $recipient .'>', '@from' => '<'. $from .'>')));
  }

  return $success;
}

de block code waar het mij dus niet lukt.

uitleg:
Normally, to send email from Drupal, the drupal_mail function is used directly to send email. If many emails must be sent at one time, however, this process may cause PHP to time out. Instead, job_queue_add() may be used to queue the job to eventually be executed as cron runs and the job_queue module processes the job queue.

PHP:
<?php
drupal_mail('some-email-id', $to, $subject, $body, $from, $headers);
?>
becomes

PHP:
<?php
job_queue_add('drupal_mail', 'Description of the email process', array('some-email-id', $to, $subject, $body, $from, $headers), '', TRUE);
?>

Wie me hier mee kan helpen zal ik heel dankbaar zijn :D.

Mvg,
Benny

passero

Legacy Member
t is de translate functie van drupal. Hiermee kan je een string gewoon vertalen als je de interface in het nederlands wil hebben.

demon326

Legacy Member
koebeest zei:
wat staat die t te doen bij watchdog en set message?

passero zei:
t is de translate functie van drupal. Hiermee kan je een string gewoon vertalen als je de interface in het nederlands wil hebben.

Zoals passero zegt, dan kan je simpel de modules in je eigen taal zetten indien gewenst :D

Tyfius

Legacy Member
Even terzijde: die t() bij watchdog mag er trouwens niet staan. Dat is een fout in die invite module.

demon326

Legacy Member
Tyfius zei:
Even terzijde: die t() bij watchdog mag er trouwens niet staan. Dat is een fout in die invite module.

Toch wel hoor ;), zit zo ook in de core gebouwd:
PHP:
watchdog('aggregator', t('Updated URL for feed %title to %url.', array('%title' => $feed['title'], '%url' => $feed['url'])));

Maar dit is natuurlijk wel nog D5;)

Tyfius

Legacy Member
Excuses. Ik heb voor D5 indertijd alleen maar gethemed, pas in D6 ben ik met module development begonnen.

dJeez

Legacy Member
Het probleem is uiteraard dat als je het verzenden van de mails asynchroon laat lopen (wat job queue zal doen), je uiteraard geen return waarde van de functie terugkrijgt. Eigenlijk heeft dat volledige blok code dat je hebt gepost dan ook geen enkel nut meer.

Nu, afgaande op de uitleg bij job_queue kan je wel een wrapper functie creëren voor drupal_mail die de logging die dat block code uitvoerde gaat afhandelen. En dan geef je die functie door aan job_queue_add als 1e parameter ipv drupal_mail.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan