Přihlásit se

export ve formatu xml

30. kvě 2012 20:47 #94110
export ve formatu xml od lukas hajek
Pokročilý uživatel
Dobry den,

potrebuji vyresit export clanku do formatu xml. Prekvapive pro J2.5 neni moc vyber mezi rozsirenimi. Mate nekdo zkusenost s DM XML Exporter? Nebo jak jinak resite xml feed?
Mam trosku zmatek v terminologii (rss syndicate vs. data import&export na JED), takze si nejsem jisty jestli postupuji spravne.

Jakakoliv napovede velice vitana, dekuji.

30. kvě 2012 21:04 - 30. kvě 2012 21:06 #94111
Odpověď od H13
Admin
Ahoj,

no záleží na tom, na co to XML budeš potřebovat ... XML je v podstatě formát - podobně jako HTML a jeho výstupy můžou být různý (HTML + CSS pro prohlídnutí stránky, jednoduchý HTML pro tisk, atd.)

RSS je v podstatě XML formát, viz. příklad: www.phoca.cz/news?format=feed&type=rss

Vlastně je to XML dokument s prvkama, který "si vyžaduje" RSS čtečka.

Terminologie bude asi taková:

RSS - ne jeden článek, ale např. 5 položek informací o článcích - pro RSS čtečky
DATA import/export - export pouze jedno článku do nějakýho formátu - třeba do XML (nebo standardně do HTML, nebo do PDF, atd.)

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

30. kvě 2012 21:36 #94113
Odpověď od lukas hajek
Pokročilý uživatel
Dekuju moc, vim ze xml je format, ale potrebuji z webu, na kterem delam "posilat" informace na jiny web. Takze budu potrebovat rss. Ja tam mam nejaky modul rss, ale funguje jen na homepage, takze to budu asi muset polecit placenou komponentou. Nemate nekdo zkusenosti jestli ten vystup jde nejak parsovat a pojmenovavat?

Diky moc.

31. kvě 2012 09:35 #94120
Odpověď od H13
Admin
Ok, ale otázka je pořád nezodpovězená:

a) bude to XML obsahovat informace o jednom článku (data export) nebo
b) bude to XML obsahovat informace o např. pěti posledně vydaných článcích (RSS)

u b) je možný využít standardní feed v Joomle!, u a) jsi nejsem jistej, jestli tam ta možnost je?

Pak je zde ještě možná jednodušší cesta (pro toho, kdo trochu kóduje):

- udělat si vlastní php soubor s výstupem pro xml, příklad:

components/com_content/views/article/view.html.php (standardní html v Joomle!)
components/com_content/views/article/view.pdf.php (výstup pro PDF)

a v tvým případě:
components/com_content/views/article/view.xml.php (výstup pro XML s jednou výhodou, nadefinuješ si přesně, to co má XML obsahovat)

pak stačí zadat adresu článku s příponou &format=xml - takže robot nebo člověk při týto adrese dostane XML dokument

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

31. kvě 2012 10:46 #94121
Odpověď od lukas hajek
Pokročilý uživatel
Tak za b) je treba predavat informace z nekolika desitek clanku, ten standartni feed funguje prave jen pro homepage.

Tebou navrhovany postup mi prijde paradni, ale bohuzel neznam spravny syntax a ani si nejsem jisty formatem. Zkusim pogooglovat.

Diky moc.

31. kvě 2012 12:10 - 31. kvě 2012 12:12 #94128
Odpověď od karel
Zkušený uživatel
V J1.5.x se musel RSS feed zapínát zvlášť pro každou položku menu.
V J2.5, teď koukám, že nastavení u položky menu se řídí buď globálním nastavením pro RSS, nebo individuálně.
Čili se zdrojem(Z) by až takový problém by nebyl.
Zádrhel by nastal u RSS čtečky která by se musela upravit, protože na "cizím" webu(C), se standardně odkazuje na původní web (Z), což se oceňuje i jako zpětný odkaz, i jako neduplicitní obsah (což chápu, že v některých případech je stejně potřeba duplikovat).

Znáte-li řešení, sdělte ho - pomůžete ostatním při řešení stejného problému, i případný "rádce" bude vědět, poradil-li správně nebo špatně.

31. kvě 2012 13:19 #94132
Odpověď od lukas hajek
Pokročilý uživatel
tak napriklad u nadrazene polozky menu je mozne zvolit kanal, ale u vnorene tato moznost neni. Pak mam asi problem s tim, ze ne vsechny clanky, ktere potrebuji sdilet jsou pristupne pres menu (vetsina je pristupna pres moduly kategorie clanku). Dale jsem nebyl schopen najist nastaveni kanalu v globalnim nastaveni. Myslel jsem ze to bude brnkacka, ale asi to neni jen o zverejneni modulu.

31. kvě 2012 22:31 #94160
Odpověď od H13
Admin
Pro představu, jak jednoduchý je udělat výstup XML:

1) vytvoř soubor: view.xml.php
2) bude obsahovat:
Code:
class ContentViewArticle extends JView { function display($tpl = null) { $this->item = $this->get('Item'); echo '<'.'?'.'xml version="1.0" encoding="utf-8"'.'?'.'>'; echo '<article>'; echo '<item>'.$this->item->introtext.'</item>'; echo '</article>'; } }

(samozřejmě, můžeš xml položky vytvářet pomocí php metod)
3) Zkopíruj tento soubor do: components/com_content/views/article/ složky

4) Vlož do url odkaz na tento článek - nemusí mít vlastní menu položku, prostě jakoukoliv adresu na tvý stránce, která na článek odkazuje a přidej k té URL: ?format=xml (případně &format=xml)

Na stránce se ti zobrazí XML dokument s obsahem introtextu - položky samozřejmě můžeš vytvořit jakýkoliv chceš, jsou uložený v proměnný $this->item

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook

01. čvn 2012 10:26 #94171
Odpověď od lukas hajek
Pokročilý uživatel
Honzo diky moc, jeste doplnujici dotaz, bude to fungovat i s pouzitim pluginu komponentu (phoca gallery plugin, event booking plg apod.). Ten "intotext" sis vymyslel, nebo exituje seznam prvku, ktere se daji pouzit? A pokud sis ho vymyslel, kde definuju co je introtext.

Diky moc a mej se pekne.

01. čvn 2012 11:20 #94175
Odpověď od Bong
Moderátor
Introtext je úvodní část článku, tedy ta před <hr id="system-readmore" /> (tlačítko Číst dál...)..

I'm sorry, my responses are limited...you must ask the right questions.

01. čvn 2012 12:07 #94179
Odpověď od lukas hajek
Pokročilý uživatel
Dekuji, rozumim ze introtext je uvodni a full text plny text. Konkretne:

zde

muzu nejak odfiltrovat nebo parsovat co bude obsahem xml, napr. cenik rozdelit na jednotlive polozky a vypustit google map? Myslim, ze je treba nekde v clanku definovat jednotlive bloky a pak v xml tyto pozadaovane bloky poskladat....ale to je jen moje uvaha.

Dekuji vsem napovidajicim.

01. čvn 2012 12:59 - 01. čvn 2012 13:09 #94184
Odpověď od karel
Zkušený uživatel
Lukáši, pokud se kamarádíte s regulárními výrazy, a umíte aspoň základy PHP, tak odfiltrujete, jinak to moc dobře nepůjde. Z "pohledu Joomly": umí při uložení rozdělit textovou hodnotu vstupu (obsah článku) do dvou odlišných sloupců (MySQL) tabulky: introtext, fulltext. Dál fulltext nerozděluje (což ale neznamená, že to nemůžete udělat "Vy"). Pomocí pluginů (například typicky pro content pluginy) umí nahradit výskyt definovaného řetězce jiným (nahrazení například {phocagallery view=categories} html kódem s výpisem kategoriíí). Ve vašem případě ceníku ale to není ani zdaleka tak jednoduché...

Jinak
Code:
$this->item->introtext
je zápisem volání atributu z třídy (v objektově orientovaném PHP), a jaké další "vlastnosti" položka (item) obsahuje, můžete snadno zjistit například pomocí
Code:
print_r($this->item);

Nějaké odkazy na OOP:
interval.cz/clanky/oop-v-php-zaklady-oop/
programujte.com/clanek/2009113001-oop-v-php/

Znáte-li řešení, sdělte ho - pomůžete ostatním při řešení stejného problému, i případný "rádce" bude vědět, poradil-li správně nebo špatně.
Poděkovali: lukas hajek

01. čvn 2012 13:48 #94189
Odpověď od lukas hajek
Pokročilý uživatel
No, tak to bude asi nad moje sily. Nemel by nekdo zajem si privydelat. Financni nabidky prosim na PM, dotazy do fora. Dekuji moc.

04. čvn 2012 09:41 #94274
Odpověď od lukas hajek
Pokročilý uživatel
Opravdu nikdo nema zajem o vydelek. Ten kdo se orientuje v problematice, by to mel mit za chvili, nebo ne? Me by to pomohlo. Diky.

21. dub 2015 07:19 #121532
Odpověď od Tomáš Gutek
Začátečník
dobrý den,

prosím o radu, potřeboval bych jeden článek dostat automaticky (např. každé pondělí do formátu xml, uložit do příslušné složky), jde o jídelní lístek denního menu restaurace. Tento jídelní lístek má být zobrazován na jiných stránkách (nejsou postaveny na redakčním systému). Byl jsem poptaný jim vytvořit .xml soubor. Oni by si už ten soubor tahali.

Buď komponenta nebo nějaký jednoduchý PHP scip, kterých bych spouštěl v cronu.

děkuji

Powered by Fórum