zmatlik.eu


osobní blog

AC Sparta Praha, SYNOT liga - rozpis zápasů

update 13.8.2016 změna sponzora ligy = změna stránek a nutnost úpravy skriptu B) update 1.7.2015 přidal jsem sezónu 2015/16 a přesunul náhled na acs.zmatlik.eu B)
update 4.6.2015 „sezóna skončila a tak jsem alespoň přidal historické zápasy od roku 1994“ :)

Vytvořil jsem v google kalendáři rozpis zápasů AC Sparty Praha v rámci SYNOT ligy. Jedná se o script napsaný v google apps script, který by se měl :) vždy o půlnoci aktualizovat (výsledek již odehraných zápasů a datum + čas nadcházejících zápasů).

ID Kalendáře: gfp7s5hui9bphde8g7l5ulfqu8@group.calendar.google.com

Vytvoření přehledu událostí v google kalendáři pomocí skriptu

Používám telefon, který běží na androidu ( UMI X1 s LeWa OS B) ) a analogicky k tomu také kalendář od google. V celku příjemné rozhraní od google postrádá pro mě zajímavou funkcionalitu a to výpis určitých událostí za dané období. Hledal jsem v diskuzích a našel prima skript, který tento výpis vygeneruje do tabulky na Disku Google (už nevím zdroj, tak zveřejním pouze výsledný, mnou upravený).

Postup pro vytvoření skriptu v Disk Google je velmi jednoduchý: Disk Google / vytvořit / skript / tabulka, následně se otevře okno pro psaní skriptu. Později se lze do editačního okna dostat z rozhraní tabulky skrze Nástroje / Editor skriptů ….

Ve skriptu jsem napsal vše potřebné do komentářů :) snad jen, že výsledkem je menu (v tabulce Google) Kalendář s položkou Přehled událostí, kterou výsledný skript spustíme.

náhled zdrojového kódu
function prehledUdalosti() {
 
  var dnes = new Date();
  //Zde zadejte adresu na kalendář, kterou najdete moje kalendáře / nastavení / kliknutí na vybraný kalendář / adresa kalendáře - ID Kalendáře
  var Kalendar  =  CalendarApp.getCalendarById("xxxxxx@group.calendar.google.com");
 
  //Nastaveni objektu Kalendar pro standardní (default) kalendář
  //var Kalendar  =  CalendarApp.getDefaultCalendar();
 
  //načítám události za letošní rok
  var udalosti = Kalendar.getEvents(new Date(dnes.getFullYear(),1,1), new Date(dnes.getFullYear(),12,31));
 
  var vypis = new Array();
 
  var pocitadlo = 0;
 
  //první řádek ve výpisu bude nadpis, hlavička tabulky
  vypis.push(Array("Nadpis", "Místo", "Začátek", "Konec", "Popis"));
 
  for (var i = 0; i<udalosti.length; i++)
  {
 
    //pokud nadpis události obsahuje x nebude zahrnut do výpisu
    if (udalosti[i].getTitle().indexOf('x') == -1)
    {
 
    var radekVypis = new Array();
 
      radekVypis.push(udalosti[i].getTitle());
      radekVypis.push(udalosti[i].getLocation());
      radekVypis.push(udalosti[i].getStartTime());
      radekVypis.push(udalosti[i].getEndTime());
      radekVypis.push(udalosti[i].getDescription());
 
      vypis.push(radekVypis);
 
    pocitadlo++;
 
    }
  }
 
  //poslední řádek výpisu obsahuje počet událostí vybraných (bez "x") a všechny
  vypis.push(Array("Počet událostí vybrané / všechny:", "","", pocitadlo + " / " + udalosti.length,""));
 
  var list = SpreadsheetApp.getActiveSheet().getRange(1, 1, vypis.length, vypis[0].length).setValues(vypis);
}
 
function onOpen() {
 
  var sesit = SpreadsheetApp.getActiveSpreadsheet();
 
  var polozkyMenu = [{
    name : "Přehled událostí",
    functionName : "prehledUdalosti"
  }];
 
  sesit.addMenu("Kalendář", polozkyMenu);
 
};

Obnovení zdrojové stránky z iframe

Narazil jsem na rozepsanou poznámku a tak jí zveřejním, nicméně mezitím jsem přišel na nepříjemnou vlastnost prohlížečů na androidu a to že většinou nespolupracují s IFRAME :( , tudíž velice doporučuji načítat formuláře skrze AJAX, do TAGu, který je již vložen do stránky při jejím načtení (osobně používám řešení od modal.js od Bootstrap) ..... a teď již zmíněná poznámka ;-)

Používam při zabezpečení webu time limit. Po nastavené nečinnosti je uživatel odhlášen. Problém nastane pokud načítám formulář (např. pro úpravu) skrze iframe do modálního okna. Při překročení time-limit se právě v tomto okně načte přihlašovací okno.

Odstranil jsem to pomocí JS a to jednoduchým obnovením původního okna, kdy se následně script již správně přesměruje na přihlašovací stránku.

if (window.self != window.top) { window.parent.location.reload(true); }

Pozn. editační (modální okno) zobrazuji pomocí knihovny Colorbox.

Jak spojit PDF dokumenty (pomocí PDFCreatoru)

Občas potřebuji spojit dva (a více :) ) souborů ve formátu PDF. Existují různé free nástroje bohužel většinou s různou mírou stability.

Až do nedávné doby :) jsem netušil, že ke spojení souborů lze velmi jednoduše použít program PDFCreator, který již velmi dlouho používám pro vytváření PDF souborů. A teď odkaz na poradnu časopisu CHIP.

Snad jen poznámka k uvedenému návodu: nemusí se označovat jednotlivé soubory pomocí klávesy shift, stačí je seřadit a stisknout ikonku „kombinovat vše“.

1 2 3 4 5