Saturday, December 14, 2013

Mám ještě dotaz


Pokud organizujete nějaké akce, sbíráte e-maily do newsletteru, nebo jednoduše provádíte nějakou činnost, myp2p která vyžaduje potvrzování vložení (např. registrace) myp2p na e-mail, asi často litujete, že nástroj dostupný zdarma, Google Docs Forms, tuto funkci neumí.
Google myp2p Docs však disponují poměrné kvalitním skriptovacím jazykem, Google Apps Script. Tento skriptovací myp2p jazyk nám to umožní obejít. Hlavně nezapomeňte na skutečnost, že odesílaný e-mail se bude tvářit jako odeslaný z účtu pod kterým jste přihlášený v době tvorby formuláře.
Projekt vhodně pojmenovat.
var EMAIL_SENT = "E-mail odeslán"; // Confirmation e-mail sent var SUBJECT = "Potvrzení vyplnění vtipu."; var MESSAGE = "Ahoj, \npotvrzuji, že tvůj vtip byl uložen."; var COL_EMAIL_ADRESS = 1; // Column e-mail (indexed from 0) var COL_EMAIL_SENT myp2p = 3; // Column e-mail sent (indexed from 0) var START_ROW = 1; // First row of data to process (indexed from 0) var LAST_COLUMNS = 3; // Last columns of data to process (indexed from 0) function SendGoogleForm(e) { try { var startRow = START_ROW + 1; var lastColumns = LAST_COLUMNS + 1; var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getMaxRows(); for(lastRow; myp2p lastRow >= startRow; lastRow--) if(sheet.getRange(lastRow, 1).getValue() != "") { break; } if(lastRow >= startRow) { var dataRange = sheet.getRange(startRow, 1, lastRow - startRow + 1, lastColumns); var data = dataRange.getValues(); for (var i = 0; i < data.length; i++) { var row = data[i]; var emailAddress = row[COL_EMAIL_ADRESS]; var emailSent = row[COL_EMAIL_SENT]; if (emailSent != EMAIL_SENT) { var subject = SUBJECT; var message = MESSAGE; try { MailApp.sendEmail(emailAddress, subject, message); sheet.getRange(startRow + i, COL_EMAIL_SENT + 1).setValue(EMAIL_SENT); } catch(e) { sheet.getRange(startRow + i, COL_EMAIL_SENT + 1).setValue(EMAIL_SENT); Logger.log(e.toString()); } SpreadsheetApp.flush(); } } } } catch (e) { Logger.log(e.toString()); } }
12
28
44
var START_ROW              = 1 ;              // First row of data to process (indexed from 0)
       if ( sheet . getRange myp2p ( lastRow , 1 ) . getValue ( ) != "" ) {
             MailApp . sendEmail ( emailAddress , subject , message ) ;
SUBJECT : Předmět odesílané zprávy.
Absolvent Univerzity Pardubice (FEI), člen Google Developer Group Pardubice (GUG.cz), Developer (hlavně Java :-). Dále mám rád sci-fi, fantasy, všechny možné moderní technologie a slackline (aby to nevypadalo, že jenom sedím za počítačem).
Mám ještě dotaz – prosbu, zda by šel script modifikovat tak, aby do potvrzovacího emailu vložil alespoň dvě pole z vyplňovaných polí ve formuláři myp2p – příklad : vyplnili jste tyto údaje: pole 1: zvolili jste termín 25.11.2013 pole 2: vyhovuje mi čas: večerní hodiny
1) Nejprve je potřeba přidat myp2p index sloupce ve kterém je hodnota, kterou chceme vložit do zprávy. To provedeme tak, že za 6 řádek (var COL_EMAIL_SENT = 3;) vložíme nový řádek, který bude vypadat takto: var COL_JOKE = 2; Dvojka tam je proto, že text vtipu se ukládá do třetího sloupce a protože se indexuje od 0 tak má třetí sloupce index 2.
Tak a je to hotovo. Snad jsem na nic nezapomněl. Ve vašem případě budete v prvním kroku přidávat indexy na dva sloupce a to ty které chcete aby byly zahrnuty do emailu (nezapomeňte na indexování od nuly). Ve druhém kroku budete přidávat také dva řádky kde místo joke zvolíte nějaký jiný vhodný název a místo COL_JOKE zadáte název indexu z prvního kroku. A ve třetím kroku sestavíte zprávu emailu. Proměnné s řetězci znaků se dají jednoduše spojovat znaménkem +.
Můžete používat následující HTML značky a atributy: myp2p <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> myp2p <q cite=""> <strike> <strong> <pre class="" myp2p title="" data-url=""> <span class="" title="" data-url="">


No comments:

Post a Comment