Zde přihlašte do soutěže své Windows 8 aplikace
Před 14 dny byla na MyWindows.cz vyhlášena soutěž pro vývojáře Windows 8 aplikací.
Své aplikace můžete přihlásit do soutěže pomocí tohoto formuláře:
http://mywindows.cz/soutez.php
Uzávěrka prvního kola je 10.7. a druhého pak 28.8.
Jako vývojář dostanete bezplatně pozvánku do Windows Store (který zatím není otevřen pro vývojáře z ČR), propagaci a recenzi aplikace na MyWindows.cz, tiskovou zprávu pro další média, odkazy z dalších webů (včetně Twitter / Facebook s 10 000 followers), výherce pak XBox 360.
Související články:
- Vývojáři, předběhněte konkurenci! Soutěž o pozvánky do Windows Store pro Metro aplikace
- Začínáme s vývojem Metro aplikací
- Jak připravit aplikaci pro Windows 8 pomocí HTML5, CSS3 a JavaScript – den 0
- Jak připravit aplikaci pro Windows 8 pomocí HTML5, CSS3 a JavaScript – den 1
- Jak připravit aplikaci pro Windows 8 pomocí HTML5, CSS3 a JavaScript – den 2
- Jak připravit aplikaci pro Windows 8 pomocí HTML5, CSS3 a JavaScript – den 3
- Jak připravit aplikaci pro Windows 8 pomocí HTML5, CSS3 a JavaScript – den 4
Programujeme aplikaci pro Windows 8 pomocí HTML5, CSS3 a JavaScriptu
Cílem těchto pěti článků je poskytnout praktický recept, podle něhož lze zcela od začátku vytvořit aplikaci pro Windows 8.

Pro jednotlivé díly se podívejte na:
- Den 0 - vytvoření projektu, připojení k datům, příprava úvodní stránky, použití stylů ve stránce, vytvoření výchozí obrazovky
- Den 1 - obrazovka rozšíření, různé úrovně přiblížení, nastavení aplikace, režim off-line, filtry
- Den 2 - podpora mezinárodního prostředí, správa aktivace režimu offline, přidání ovládacího prvku flipView na stránky karet, podpora přichyceného zobrazení, podpora různých rozlišení, podpora různých velikostí karet
- Den 3 - kontrakt Hledání, kontrakt Sdílení, kontrakt Výběr souboru, živá dlaždice, sekundární dlaždice
- Den 4 - přidání souboru se stavem sbírky, připojení ke službě SkyDrive, aktualizace sbírky uživatele ve službě SkyDrive
Pro obecný úvod se vám bude hodit článek Začínáme s vývojem Metro aplikací a poté zde máme Soutěž o pozvánky do Windows Store pro Metro aplikace.
Automatické načtení sídla firmy a verifikace DIČ (VAT) pro celou EU
Minulý rok jsem publikoval krátký článek ohledně automatické načtení sídla české firmy a DIČ podle zadaného IČ z ARES XML pomocí PHP a jQuery. Uvedenou službu je možné snado rozšířit na celou EU pomocí webové služby dostupné na adrese ec.europa.eu. Tato službá má totiž veřejně dostupné WSDL a pomocí SOAP klienta ji snadno můžete dotazovat.
Zjednodušený kód produkující stejný výstup jako dříve odkazovaný skript pro ARES může vypadat takto - vstupem je dvouznakový kód země a IČ (přesněji DIČ bez počátečního kódu země, což v praxi bývá IČ):
<?php
header("Content-Type: application/json; charset=UTF-8");
$a = array();
try {
$ic = $_REQUEST['ic']; // IČ
$country = $_REQUEST['country']; // Country code
$soap = new SoapClient(
'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl');
$params = array('countryCode' => $country, 'vatNumber' => $ic);
$result = $soap->checkVatApprox($params);
if (!$result->valid) {
$a['stav'] = 'DIČ '.$country.$ic.' nebylo nalezeno';
} else {
$a['ic'] = strval($result->vatNumber);
$a['dic'] = $country.$a['ic'];
$a['firma'] = strval($result->traderName);
if (!$result->traderCity && $result->traderAddress) {
$t = explode("\n",$result->traderAddress);
$result->traderStreet = $t[0];
$result->traderCity = $t[1];
$result->traderPostcode = $t[2];
}
$a['ulice'] = strval($result->traderStreet);
$a['mesto'] = strval($result->traderCity);
$a['psc'] = strval($result->traderPostcode);
$a['stav'] = 'ok';
}
} catch (Exception $e) {
$a['stav'] = 'EC služba právě není dostupná';
}
echo json_encode($a);
?>
A výstupem třeba pro Mladá fronta a.s. je takovýto JSON:
{
"ic":"49240315",
"dic":"CZ49240315",
"firma":"Mlad\u00e1 fronta a.s.",
"ulice":"Mezi Vodami 1952\/9",
"mesto":"PRAHA 12 - MOD\u0158ANY",
"psc":"143 00 PRAHA 412",
"stav":"ok"
}
(PHP) den nemá 86 400 sekund?
Víte kolik má den sekund? Občas jsem viděl v PHP toto počítat jako 24 (hodin) * 60 (minut) * 60 (sekund). Nefunguje to.
setlocale(LC_ALL, "czech"); date_default_timezone_set("Europe/Paris"); function p($t) { $d = getdate( $t ); echo $d['mday'],' '; } $o = 24*60*60; // 86 400 $t = mktime(0,0,0,10,29,2011); p($t); for ($i = 1; $i<=4; $i++) { $t += $o; p($t); }
Vypíše:
29 30 30 31 1
Automatické načtení sídla firmy a DIČ podle zadaného IČ (ARES XML) pomocí PHP a jQuery
V eshopu zaměřeném na firemní zákazníky můžete těmto usnadnit nákup a prvotní registraci tím, že podle zadaného IČ načtete kompletní informace o sídle a DIČ z databáze ARES. MFČR ji poskytuje jako webovou službu vracející přehledný XML feed.
Implementace s pomocí jQuery je velice jednoduchá, stačí si vytvořit JSON feed reagující na AJAXový požadavek pod názvem ares.php:
<?php
header("Content-Type: application/json; charset=UTF-8");
define('ARES','http://wwwinfo.mfcr.cz/cgi-bin/ares/darv_bas.cgi?ico=');
$ico = intval($_REQUEST['ico']);
$file = @file_get_contents(ARES.$ico);
if ($file) $xml = @simplexml_load_string($file);
$a = array();
if ($xml) {
$ns = $xml->getDocNamespaces();
$data = $xml->children($ns['are']);
$el = $data->children($ns['D'])->VBAS;
if (strval($el->ICO) == $ico) {
$a['ico'] = strval($el->ICO);
$a['dic'] = strval($el->DIC);
$a['firma'] = strval($el->OF);
$a['ulice'] = strval($el->AA->NU).' '.strval($el->AA->CO);
$a['mesto'] = strval($el->AA->N);
$a['psc'] = strval($el->AA->PSC);
$a['stav'] = 'ok';
} else
$a['stav'] = 'IČ firmy nebylo nalezeno';
} else
$a['stav'] = 'Databáze ARES není dostupná';
echo json_encode($a);
?>
Rychlý export HTML stránky do PDF v PHP
Pokud potřebujete rychle vytvořit z HTML stránky PDF soubor a nabídnout jej ke stažení či poslat jej emailem v PHP, existuje na to výborná knihovna mPDF. Podporuje zpracování řady formátovacích prvků v CSS, nemusíte tedy HTML stránku či layout nijak speciálně upravovat.
Pokud máte třeba fakturu v eshopu připravenou jako HTML, je její převod do PDF otázkou pár řádků kódu:
require("mpdf/mpdf.php");
$mpdf = new mPDF('utf-8','A4');
$mpdf->useOnlyCoreFonts = true;
$mpdf->SetDisplayMode('fullpage');
$mpdf->SetAutoFont(0);
// CSS soubor
$stylesheet = file_get_contents('faktura.css');
// faktura v HTML (PHP, atd.)
$html = file_get_contents('faktura.html');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($html,2);
$name = "danovy-doklad.pdf";
$mpdf->Output($name,"D"); // download
Rychlý export databázové tabulky do Excelu (2007/2010) v PHP
Pokud potřebujete rychle exportovat nějaká data - tabulku či VIEW - z MySQL databáze do Excelu, je to v PHP velice snadné díky PHPExcel knihovně na Codeplexu. Kromě moderního XLSX umí tato knihovna i XLS, PDF, CSV a další formáty.
Tento jednoduchý skript vezme VIEW v MySQL databázi (v tomto případě čtenost článků, které nějak souvisí s Microsoftem), vytvoří z nich Excelovský soubor, a nabídne jej ke stažení v Excel 2010 formátu.
class createXLSX {
var $xlsxrow = 1;
var $xlsxcolumn = 1;
var $maxcolumn = 0;
function getColumn($column) {
if ($this->maxcolumn < $column)
$this->maxcolumn = $column;
if ($column > 26)
return chr(ord('A') + floor(($column - 1)/26) - 1) . chr(ord('A') + ($column % 26) - 1);
else
return chr(ord('A') + $column - 1);
}
function writeRow($x, $data, $bold = false) {
$i = 0;
foreach ($data as $s) {
$c = $this->getColumn($this->xlsxcolumn + $i++).strval($this->xlsxrow);
$x->setActiveSheetIndex(0)->setCellValue($c,$s);
if ($bold)
$x->getActiveSheet()->getStyle($c)->getFont()->setBold(true);
}
$this->xlsxrow++;
}
}
Dotaz: Skloňování a synonyma (v PHP)
Pro jeden projekt potřebuji získat pro každé slovo nejen databázi všech jeho možných tvarů, ale i synonyma. Takže třeba pro slovo "zelená" získat i tvary "zelený", "zelené" a další, pro slovo "gauč" získat ekvivalentní "sedací souprava". Potřeboval bych ideálně poznat i kořen slova.
Zkoušel jsem pspell_suggest a podobné funkce v PHP, ale jsou zcela nespolehlivé, české slovníkové podklady pspellu jsou strašné.
Teoreticky by šel vzít slovník třeba z OpenOffice.org, převést jej do databázové podoby a používat alespoň pro ona synonyma.
Řešil jste někdo podobný problém?
Automatické ukládání a obnova libovolných HTML formulářů pomocí jQuery
Pro jednoho klienta dodáváme analyticky i programátorsky hodně zajímavý projekt - Monitoring druhů. Jedná se o sledování parametrů u stovek druhů, přičemž každý druh má nejen velice rozsáhlou, ale také rozdílnou množinu často unikátních parametrů. Realizace je provedena pomocí uživatelské definice formulářů administrátorem systému. Tyto formuláře používají před-definované datové typy, číselníky, našeptávače, subformuláře (včetně neomezeného zanořování) a další prvky. Veškeré hodnoty mohou mít jak 1:1, tak 1:N relace, mohou být povinné či nepovinné. Data z těchto formulářů se ukládají jako XMLType do Oracle 10g.
Samotné řešení XML formulářů je tak zajímavé, že bude předmětem několika dalších článků, ale v tomto budu psát o něčem jiném - automatickém ukládání těchto formulářů při jejich editaci uživatelem.
Poslání embedované fotky v HTML emailu
Pokud posíláte email s obrázky klientům, máte v zásadě tři možnosti:
- odkázat se v HTML na váš externí server, čímž sice zmenšíte velikost emailu, ale email aplikace externí obrázky většinou blokují (takže se stránka zobrazí neúplná)
- dát obrázek jako přílohu emailu, jenže to také vyžaduje aktivitu klienta (kliknutí na obrázek)
- embedovat obrázky přímo do HTML
Ta poslední metoda je často ideální, protože typická emailová aplikace takovýto obrázek zobrazí bez jakékoliv požadované aktivity na straně příjemce.
Pro snadnou tvorbu takovéhoto emailu je možné použít třeba knihovnu phpMailer:
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsMail();
$mail->From="vas email";
$mail->FromName="vase jmeno";
$mail->AddAddress("prijemce email");
$mail->Subject = "Subjekt emailu";
$mail->IsHTML(true);
$mail->AddEmbeddedImage(
'/dir/soubor.jpg', // lokalni soubor
'logoimg', // ID shodné s HTML
'fotografie.jpg', // zobrazený název souboru
'base64',
'image/jpeg'); // MIME typ
$mail->Body = "<p><img src=\"cid:logoimg\" /></p>";
$mail->AltBody="Fotografie";
$mail->Send();
Základem je uvedení anchoru v HTML pro daný obrázek, zde cid:logoimg, na který se poté odkážete v metodě AddEmbeddedImage(). Důležité je také správné uvedení MIME Type (pátý parametr) a volitelné jméno souboru (třetí parametr).

