Chrome zmenšování obrázků

Chrome ve windows je tak trochu retard. Ve výchozím nastavení zmenšuje obrázky tak, že se mohou jevit jako rozmazané. V žádném jiném prohlížeči se to neděje.

Pokud tedy po něm potřebujete zobrazovat obrázky v jiné velikosti, než v jaké máte zdroj, je zapotřebí přidat do CSS toto:

Zabrání to tomu extrémnímu rozmazání, a přitom to pořád bude vyhlazené a nebude to rozpixelované.

Bohužel, toto řešení však negativně ovlivní safari na macu (kvůli stejnému webkit jádru), kdy naopak při změně obrázků k žádnému vyhlazování nedochází anebo jen minimálně, takže je nutné tento zásah omezit jen pro chrome. Na řadu tedy přichází CSS hack:

Snad to bude nějakou dobu fungovat.

Gitlab si smazal produkční databázi

Někdo ve firmě Gitlab (padáka prý nedostane) udělal rm -rf na produkční databázi, tzn. smazal všechna data z ní…to se stát mě, tak to si pomalu hodím. Zálohu měli 6 hodin starou a tu dělali ručně kvůli nějakému útoku, který aktuálně řešili a který jim zatížil systém. Kdyby ji předtím ručně neudělali, tak jsou v řiti úplně, protože jim automatické zálohy nefungovaly správně, fail jak prase. A to těch automatických záloh dělali více různými metodami, ani jedna z nich neprodukovala korektní data. Mazec!

Pozitivní je přístup, kterým to firma řešila. Pravidelné informování o stavu (v dokumentu na google docs a na twitteru), v jakém se nálézá oprava a obnovat dat. Videostream (!), ve kterém několik lidí systém opravovalo a reagovalo na lidi v chatu.

Co si z toho vzít? Že na kritická data je ideální používat online mirror databáze, kdy se budou data replikovat a v případě podobného průseru nebude po obnově tak velká časová díra. Pokud toto není možné, tak dělat nějaké dumpy databáze co nejčastěji to bude možné. Aspoň co hodinu? Pokud je db velká nebo chceme šetřit výkon, tak alespoň kritické tabulky (u eshopu asi hlavně objednávky, stavy zboží skladu).

Ale hlavně, kontrolovat pravidelně, jestli zálohy fungují  v pořádku! Protože bez toho vám to bude na dvě věci…viz gitlab ;) Výpadek téměř celý den a záloha stará 6 hodin.

Stahování obrázků z pinterestu

Následující skript je jednoduchý parser, který dokáže stáhnout obrázky z nástěnky jakéhokoliv pinterest účtu spolu s odkazem na detail obrázku.

Nejprve funkce, která ukládá obrázky do adresáře temp.

A následuje skript, který uloží posledních 12 pinů z nástěnky uživatele pinterest (https://cz.pinterest.com/pinterest/pins/) jako obrázky a vrátí řetězec obrázků s odkazy v proměnné $data.

Volání funkce ulozobrazek si můžete upravit a nstavit potřebnou maximální šířku, případně i výšku uloženého obrázku.

Swiftmailer dvojité tečky (double dot)

Pokud jste si oblíbili pro odesílání emailů knihovnu swiftmailer, možná jste při rozesílce hromadných emailů narazili na problém tzv. double dot.

Projevuje se to tak, že v rámci odesílacího cyklu při každém druhém a dalším emailu se nahradí tečka dvěmi tečkami na začátku každého řádku začínajího právě tečkou. Pokud do emailu vkládáte css styly, tak je velmi pravděpodobné, že se vás to dotýká. Aktuálně funguje následující kus kódu, který stačí vložit do odesílacího skriptu.

Zvýraznění výsledků vyhledávání

Jednoduchá funkce pro zvýraznění výsledků ve vyhledávání. Všechny nálezy označí třídou marked.

 

Načítání recenzí z heureky

Pokud chcete na eshop načítat recenze obchodu z heureky, můžete použít mnou vytvořený skript, který se o vše postará. Součástí jsou také obrázky hvězdiček a css soubor pro zobrazení na stránkách.

Celé to funguje tak, že se nejprve stáhne XML soubor z heureky (je zapotřebí nejprve nastavit v souboru heureka-recenze.php URL), ten se celý projde a rozparsuje, a následně se data uloží do textových souborů. Můžete si to vše upravit, aby se to nahrávalo do databáze. Pro každý rok se vytváří jeden textový soubor, ten pak stačí includovat do stránky.

Načítání se spouští přes soubor heureka-recenze.php, doporučuji dát do cronu jednou denně. Adresáři heureka_recenze nastavte právo zápisu (777). A tady je to celé ke stažení.

Stahování a aktualizace poboček ze zásilkovny

Asi nemusím představovat službu zasilkovna.cz. Každopádně, pokud ji máte implementovanou v eshopu, možná chcete, aby se automaticky stahovaly a aktualizovaly její pobočky u Vás. Kdysi jsem napsal jednoduchý skript, který stačí spouštět jednou denně a pobočky se Vám budou vkládat do databáze, případně v ní aktualizovat. Se všemi nezbytnými údaji.

Data se stahují z XML exportu zásilkovny, jehož URL najdete v administraci zásilkovny. Součástí balíku je i sql dump tabulky zasilkovna z databáze. Takže stahovat můžete zde.

Výpočet místa na disku

Zadání: vypočítat místo na disku dle adresářové struktury (tzn. výstupem bude seznam všech adresářů v definovaném umístění a jejich obsazenost na disku), uložení jako textový dokument a zaslání e-mailem.

Řešení: Pro výpočet místa poslouží dobře knihovna CDiskUsage, kterou jsem includoval do skriptu, který udělá tu omáčku kolem. Tzn. nadefinujete root adresář, ze kterého se má vycházet, a následně můžete vše spustit.

Dá se to použít na pravidelný report o obsazenosti disku na serveru, resp. obsazenosti jednotlivých webů/prezentací. A spouštět cronem třeba každý týden.

Tady je to celé ke stáhnutí. Obsahuje třídu pro výpočet místa a space.php s pár komentáři, abyste se v tom neztratili. Pokud budete chtít odesílat výsledek na e-mail, budete muset ještě stáhnout nějakou knihovnu pro odesílání e-mailů. Na ukázku jsem tam dal příklad pro použití přes phpmailer. To pochopíte, až se na to podíváte :)

Čtení emailů přes IMAP v PHP

V dnešním článku se zaměříme na to, jak zpracovat příchozí e-maily. Pokud potřebujete deaktivovat odběratele newsletteru, kteří mají nedostupnou schránku a vám se vrací emaily o nedoručitelnosti, je řešením takovéto emaily projít a adresu odstranit. Nemusíme to však dělat ručně, dá se to zautomatizovat.

Předpokládám, že na odesílání newsletteru se bude používat spíše samostatná schránka, něco jako no-reply@domena.cz. Pokud by se používala nějaká pracovní, tak by se mohlo stát, že byste prošvihli e-mail o nedoručení, který jste prošvihnout nechtěli.

Následující skript se tedy nejprve připojí do schránky přes imap. Projde všechny zprávy a přečte si jejich obsah. V textu zprávy najde všechny e-mailové adresy, vyloučí ty, které mají co dočinění s doménou odesílatele, a naznačí zpracování co se s těmi adresami dá udělat, typicky smazat nebo deaktivovat.

 

Načtení kategorií z heureky

Pokud chcete úspěšný eshop, budete pravděpodobně párovat u zboží kategorie s heurekou. K tomu potřebujete ideálně do databáze dostat všechny heureka kategorie, a následně je buď u kategorií nebo u zboží spárovat. Budu se nyní zabývat tím, jak dostat celý strom kategorií na lokální server do databáze.

V databázi předpokládám tabulku s názvem heureka_kategorie a s jediným sloupcem pojmenovaným nazev. Níže uvedený kód načte všechny kategorie heureky a uloží je do dočasného XML souboru na disku. Následně tento soubor zpracuje a všechny kategorie uloží do databáze, přičemž je ukládá jako textový řetězec včetně celé cesty, tzn. názvy kategorií odděleny oddělovačem |.