[ISSPRESTA] Naujienos ir Mailer

Lietuviškas CMS Made Simple forumas

Moderator: Augustas

Post Reply
Airidas
Forum Members
Forum Members
Posts: 46
Joined: Sun Mar 21, 2010 1:32 pm

[ISSPRESTA] Naujienos ir Mailer

Post by Airidas »

Sveiki,

Norejau pasiteirauti ar imanoma padaryti taip, kad idejus i portala naujiena, ji butu issiusta el. pastu nurodytiems adresatams?

Jeigu, kas numanot, gal galite patarti nuo ko pradeti :)?

Pagarbiai,
Airidas
Last edited by Airidas on Thu May 20, 2010 2:49 pm, edited 1 time in total.
vilkis

Re: Naujienos ir Mailer

Post by vilkis »

Naujienlaikraščių siuntimui skirtas yra NMS modulis.

vilkis
Airidas
Forum Members
Forum Members
Posts: 46
Joined: Sun Mar 21, 2010 1:32 pm

Re: Naujienos ir Mailer

Post by Airidas »

Sveikas vilki,

Nesu anksciau susidures su tokio tipo moduliu, kol kas perziurejes nesuprantu kaip ji reikia sukonfiguruoti.
Kaip suprantu jo paskirtis siusti sukurtus mailus kas kazkiek laiko prisiregistravusiems vartotojams.
Na man viskas tinka, tik mano ideja yra padaryti taip, jog editoriuo idejus naujiena, ja gautu visi i emaila, (kaip facebook notifications)...

Pagarbiai,
Airidas
vilkis

Re: Naujienos ir Mailer

Post by vilkis »

Airidai,
man kažkada irgi reikėjo tokio funkcionalumo, bet tai nebuvo pirmos būtinybės dalykas, taigi dėl darbų gausos atsisakiau tokios idėjos.
Yra keletas galimybių:
1. naudoti tik NMS modulį:
Prikabinu trumpą NMS aprašymą (doc failas). Principas sukuri naujieną ir siunti ją užsiregistravusiems naudotojams. Jei išsiųstos naujienos neištrinsi, tai yra galimybė rodyti jau išsiųstas naujienas svetainėje. Šitu atveju žinoma netenki galimybės turėti naujienų kategorijų, rodymo/nerodymų ir kitų News modulio privalumų, todėl man toks variantas netiko.

2. Sukurti savo UDT, kuris 'gaudytų' News įvykį NewsArticleAdded ir  siųstų laiškus pasirinktais e. pašto adresais. Trūkumai: gali būti sunkumų, jei naujienoje bus paveiksliukų; e pašto adresus reiks rankiniu būdu įrašyti į UDT, o tai paprastam naudotui patartina neleisti daryti.

3. Sukurti UDT, kuris 'gaudytų' News įvykį NewsArticleAdded ir naudodamasis NMS funcijomis siųstų laiškus atitinkamo NMS sąrašo (žr. prikabintą aprašymą) naudotojams. Man toks variantas atrodo geriausias.

Deja 2 ir 3 atvejais teks paprogramuoti.

vilkis
Attachments

[The extension doc has been deactivated and can no longer be displayed.]

Airidas
Forum Members
Forum Members
Posts: 46
Joined: Sun Mar 21, 2010 1:32 pm

Re: Naujienos ir Mailer

Post by Airidas »

Sveikas vilki,

Pasirinkau antra varianta ir tikiuosi kiek pagilinti savo programavimo zinias, na jos yra menko, todel jei turi kazkiek laiko labai prasysiu padeti :). (Antra varianta pasirinkau, nes naudotojui prideti adresu nereikes)

Taigi,  UTD:

Kol kas ieskojau funkcijos NewsArticleAdded, ir viskas ka radau:

@CmsEvents::send_event(($this->id == -1 ? 'NewsArticleAdded' : 'NewsArticleEdited'),
      array('news_id' => $this->id, 'category_id' => $this->category_id, 'title' => $this->title, 'content' => $this->content,
      'summary' => $this->summary, 'status' => $this->status, 'start_time' => $this->start_time, 'end_time' => $this->end_time,
      'useexp' => $this->use_expiration));
  }

Nesu dares nieko panasaus, bet principa pagaunu.

Dabar reikia sugeneruoti {if} kad pamatytu jei nauja naujiena atsirado, ir tada nurodyti, kad naujos naujienos medziaga siustu nurodytiems adresatams.

Na pirmiausia tai nezinau, kaip patikrinti, ar atsirado nauja naujiena.
Tada galvoju naudoti php mail funkcija:



Na ieskojau bet gerai nesupratau, kaip istraukti news modulio medziaga i UTD turbut naudojant smarty.

Taigi, vilki paprasysiu, kad nukreiptum, kaip istraukti info is news modulio ir kaip patikrinti NewsArticleAdded :)

Busiu labai dekingas uz pagalba,
Airidas
vilkis

Re: Naujienos ir Mailer

Post by vilkis »

dėl NewsArticleAdded: nieko programuoti nereikia. Kai sukursi UDT tiesiog reiks nueiti į Extensions->Event Manager rasti įvykį NewsArticleAdded ir  priskirti jam tavo UDT.

vilkis

EDIT: Kita irgi galima kultūringiau padaryti (pvz išsiųsti laiškus naudojant CMSMailer modulį, galėsiu vėliau parašyti, dabar neturiu laiko.
Last edited by vilkis on Wed May 19, 2010 3:16 pm, edited 1 time in total.
Airidas
Forum Members
Forum Members
Posts: 46
Joined: Sun Mar 21, 2010 1:32 pm

Re: Naujienos ir Mailer

Post by Airidas »

Radau UTD skirta ispeti kai pakeistas turinys.
Tai priskiriame sia UTD ContentEditPost veiksmui.
Pats UTD:

global $gCms;
$content =& $params['content'];

$editedby = $gCms->variables['username'];

$bodytext = '
A page on the web site has been changed.

Page Name: '.$content->Name().'
Page Alias: '.$content->Alias().'
Page Type: '.$content->Type().'
Page Created: '.$content->GetCreationDate().'
Modified on: '.$content->GetModifiedDate().'
Modified by: '.$editedby.'
Page URL: '.$content->GetURL();

$cmsmailer =& $gCms->modules['CMSMailer']['object'];
$cmsmailer->AddAddress('info@pavyzdys.lt');
$cmsmailer->SetBody($bodytext);
$cmsmailer->IsHTML(false);
$cmsmailer->SetSubject('Page change notification--' .$content->Name());
$cmsmailer->Send();


Sis UTD veikia, bet pakeitus Extensions veiksma i --> NewsArticleAdded
Mailai i pasta neateina, pridejus naujiena.
Nezinau kur detis, bandziau supaprastinti vis UTD iki:

global $gCms;

$bodytext = '
A page on the web site has been changed.

$cmsmailer =& $gCms->modules['CMSMailer']['object'];
$cmsmailer->AddAddress('info@pavyzdys.lt');
$cmsmailer->SetBody($bodytext);
$cmsmailer->IsHTML(false);
$cmsmailer->SetSubject('Page change notification--' .$content->Name());
$cmsmailer->Send();

Vis tiek su naujienom neveikia. Ieskau bet niekur nerandu news articlia params. ($news =& $params['xxxxxx'];

Na jei kas atsilieps i pagalbos sauksma busiu dekingas ;)

Pagarbiai,
Airidas
Last edited by Airidas on Wed May 19, 2010 5:38 pm, edited 1 time in total.
vilkis

Re: Naujienos ir Mailer

Post by vilkis »

Supaprastintas variantas ir neturi veikti - jame yra klaida.
vilkis
vilkis

Re: Naujienos ir Mailer

Post by vilkis »

Na ir nekantrus gi tu.

pratestavau - žemiau esantis kodas veikia - žinoma jį dar galima ištobulinti.

Code: Select all

global $gCms;
$bodytext = $params['content'];
$cmsmailer =& $gCms->modules['CMSMailer']['object'];
$cmsmailer->AddAddress('vilkis@gmail.com');
$cmsmailer->SetBody($bodytext);
$cmsmailer->IsHTML(true);
$cmsmailer->SetSubject($params['title']);
$cmsmailer->Send();

return;
vilkis
Airidas
Forum Members
Forum Members
Posts: 46
Joined: Sun Mar 21, 2010 1:32 pm

Re: Naujienos ir Mailer

Post by Airidas »

Dekoju vilki, man irgi veikia. Prapleciau savo UDT:

global $gCms;

$to  = 'ex@ex.com' . ', '; // note the comma
$to .= 'ex@ex.com';


$bodytext = $params['content'];


$cmsmailer =& $gCms->modules['CMSMailer']['object'];
$cmsmailer->AddAddress($to);
$cmsmailer->SetBody($bodytext);
$cmsmailer->IsHTML(true);
$cmsmailer->SetSubject($params['title']);
$cmsmailer->Send();

return;

Dabar siuncia i visus nurodytus adresus. Funkcija tiesiog puiki.
Labai dekingas vilki :)
Tikiuosi kada nors galesiu atsilyginti.

Pagarbiai,
Airidas
Last edited by Airidas on Wed May 19, 2010 8:05 pm, edited 1 time in total.
Post Reply

Return to “Lithuanian - Lietuviškai”