Pro práci jak v developerském, tak v administrátorském rozhraní doporučujeme používat internetový prohlížeč Mozilla Firefox, na jehož základě je vzhledem ke stabilitě, dodržování standardů konzorcia W3C a ochranným prvkům prohlížeče celý software vyvíjen.
V předchozím článku jsme si ukázali, jak lze generovat XML soubor pro vyhledávače zboží. Při velkém množství záznamů ale může dojít k velmým prodlevám při ukládání změn v admnistraci zboží v katalogu nebo dokonce tzv. memory_limit, případně max_execution_time, a proto si ukážeme, jak lze tento skript implementovat pomocí skriptů běžících na pozadí, na které tyto serverové limity nemají vliv.
$this->xmlFileName = PROJECTPATH."zbozi-seznam.xml";
$this->tmpXmlFileName = PROJECTPATH."repository/temp/".createUUID().".xml";
$this->mtids = array();
$file = fopen($this->tmpXmlFileName, "a+");
fwrite($file, '<?xml version="1.0" encoding="utf-8"?>');
fwrite($file, '<SHOP>');
fclose($file);
$recordCount = getTable("m_shop_catalogue")->getContentRecordCount();
return($recordCount);// vytvoří se prázdný soubor s právy zápisu 777
//_file_put_contents(MAINPATH."zbozi-seznam.xml", "");
$file = fopen($this->tmpXmlFileName, "a+");
for ($i = $this->progressIndex ; $i < $this->progressTotal ; $i++)
{
// funkce getContentRecords načítá záznamy podobně jako getRecords() s tím rozdílem, že aplikuje výchozí filtry (nejsou tedy načítány záznamy, které jsou v archívu)
$records = getTable("m_shop_catalogue")->getContentRecords("begin=".$i.",limit=1");
$record = $records[0];
processProgressText("Processing item ".($i+1)." of ".$this->progressTotal." - ".translate($record["name"]));
processProgressByIndex($i);
fwrite($file, '<SHOPITEM>');
fwrite($file, '<PRODUCT>'.htmlspecialchars($record["name"]).'</PRODUCT>');
fwrite($file, '<DESCRIPTION>'.htmlspecialchars(_substr(strip_tags($record["description"]),0,500)).'</DESCRIPTION>');
fwrite($file, '<URL>'.htmlspecialchars(parseFileLinks('m_shop_catalogue.php?id='.$record["id"])).'</URL>');
fwrite($file, '<IMGURL>'.htmlspecialchars(getTable("m_shop_catalogue")->getComponent("image")->getUrl($record, "resizeWidth=200,resizeHeight=200,resizeMethod=scale,resizeSmall=true")).'</IMGURL>');
fwrite($file, '<VAT>'.$record["tax"].'</VAT>');
fwrite($file, '<PRICE_VAT>'.$record["taxPrice"].'</PRICE_VAT>');
$category = array();
$MenuItem = getObject("Menu")->getItemById($mid);
while($MenuItem)
{
$text = translate($MenuItem->values["name"]);
if ($text)
$category = array_merge(array($text), $category);
$MenuItem = $MenuItem->ParentItem;
}
fwrite($file, '<CATEGORYTEXT>'.htmlspecialchars(implode(" | ", $category)).'</CATEGORYTEXT>');
fwrite($file, '<AVAILABILITY>0</AVAILABILITY>');
fwrite($file, '</SHOPITEM>');
if ($this->resumeNeeded())
{
fclose($file);
$this->progressIndex = $i+1;
$this->resumeInBackground();
}
}
fclose($file);
$this->finish();
$file = fopen($this->tmpXmlFileName, "a+");
fwrite($file, '</SHOP>');
fclose($file);
@unlink($this->xmlFileName);
// vytvoří se prázdný soubor s právy zápisu 777
_file_put_contents(MAINPATH."zbozi-seznam.xml", "");
rename($this->tmpXmlFileName, $this->xmlFileName);
processProgressText("Finished ".$this->progressTotal." items");
runProcessScript("zbozi_xml");
Na časový skript nemusíte čekat, ale můžete jej spustit ihned zavoláním této URL:http://www.domain.com/cron.php?tid=zbozi_xmlPrůběh provádění skriptu na pozadí můžete sledovat v Nástroje -> Správce procesů -> Všechny procesy.
Některé vlastnosti publikované v tomto článku mohou být funkční pouze s nejnovější verzí jádra. Pokud máte starší verzi jádra, doporučujeme provést aktualizaci na nejnovější verzi.
| Fotogalerie | 10.5.2012 |
| Sekce: Tvorba prezentací | |
| Chyba v hromadné korespondenci, nelze odeslat příloha (nová verze | 6.4.2012 |
| Sekce: Bug reporty | |
| AntiSpam obrázek | 6.4.2012 |
| Sekce: Programování | |
| Chyba při opravách textů | 4.4.2012 |
| Sekce: Bug reporty | |
| Admin může smazat Developera, je to ok? | 27.3.2012 |
| Sekce: Bug reporty | |
| Mapa webu | 19.3.2012 |
| Sekce: Tvorba prezentací | |
| Update komponenty Weather
18.listopad 2011 |
Server weather.com se rozhodl ukončit poskytování informací o počasí zdarma a přešel na placenou variantu (cca 60$ měsíčně). Z tohoto důvodu jsme byli nuceni upravit komponentu Weather tak, aby stahovala informace o počasí z jiného zdroje dat a to konkrétně ze serveru www.worldweatheronline.com. Tento server také poskytuje informace o počasí z celého světa, nicméně množství informací je oproti původnímu zdroji menší.
Ke správné funkčnosti komponenty počasí aktualizujte jádro na verzi 1.7.9.638. |
| Přidány nové návody
4.říjen 2011 |
Byl přidán nový návod "Použití jiného HTML editoru"
|
Česky

