Umlaut Problem mit tw_rssfeeds

  • underdog underdog
    R2-D2
    0 x
    88 Beiträge
    0 Hilfreiche Beiträge
    02. 07. 2008, 08:39

    Hallo,

    beim RSS-Feed werden die Umlaute falsch dargestellt.

    Z.B.: [b]Ökologisierung der NoVA - Das ändert sich mit 1. Juli[/b]

    Als Char-Ser ist folgendes eingestellt

    [HTML]<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    [/HTML]

    Liegt es an der Extension oder am TYPO3?
    Ich hoffe jemand kann mir da weiterhelfen,
    danke im Voraus!

    Gruß
    underdog


  • 1
  • laser laser
    Sternenflotten-Admiral
    0 x
    204 Beiträge
    0 Hilfreiche Beiträge
    02. 07. 2008, 08:54

    Hatte das selbe Problem, gleiche Problem mit kik_rssfeed, meiner Meinung nach sind die Extensions schuld. Bau in die Ausgabe einfach [url=http://www.php.net/manual/de/function.utf8-decode.php]utf8_decode[/url] ein, dann sollte es klappen.

  • underdog underdog
    R2-D2
    0 x
    88 Beiträge
    0 Hilfreiche Beiträge
    02. 07. 2008, 09:14

    Danke für den Tipp!
    Überschriften laufen bereits, beim Text bin ich noch am Suchen wo ich das utf8_decode(...) reinschreiben muss.

    Danke
    Gruß
    Underdog

  • underdog underdog
    R2-D2
    0 x
    88 Beiträge
    0 Hilfreiche Beiträge
    02. 07. 2008, 09:46

    Also irgendwie stehe ich auf der Leitung.
    Nachdem ich folgendes geändert habe

    1. return utf8_decode($content);

    Jetzt passt zwar die Überschrift aber der Inhalt bzw. Description vom Feed passt immer noch nicht. Der sollte aber auch in $content enthalten sein.

    #paralyzed#

    Die Extension hätte eigentlich eine Möglichkeit zum Umschalten der Kodierung, hat aber keine Auswirkungen bzw. funktioniert bei mir nicht.

    Anbei noch die gesamte Datei um die es hier geht

    1. <?php
    2. /***************************************************************
    3. * Copyright notice
    4. *
    5. * (c) 2007 Thorsten Wüst (t.wuest@wuest-media.de)
    6. * All rights reserved
    7. *
    8. * This script is part of the TYPO3 project. The TYPO3 project is
    9. * free software; you can redistribute it and/or modify
    10. * it under the terms of the GNU General Public License as published by
    11. * the Free Software Foundation; either version 2 of the License, or
    12. * (at your option) any later version.
    13. *
    14. * The GNU General Public License can be found at
    15. * http://www.gnu.org/copyleft/gpl.html.
    16. *
    17. * This script is distributed in the hope that it will be useful,
    18. * but WITHOUT ANY WARRANTY; without even the implied warranty of
    19. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    20. * GNU General Public License for more details.
    21. *
    22. * This copyright notice MUST APPEAR in all copies of the script!
    23. ***************************************************************/
    24. /**
    25. * Plugin 'Tw Rss Feeds' for the 'tw_rssfeeds' extension.
    26. *
    27. * @author Thorsten Wüst <t.wuest@wuest-media.de>
    28. */
    29.  
    30. require_once (PATH_t3lib . 'class.t3lib_xml.php');
    31. require_once(PATH_tslib."class.tslib_pibase.php");
    32.  
    33. class tx_twrssfeeds_pi1 extends tslib_pibase {
    34. var $prefixId = "tx_twrssfeeds_pi1";// Same as class name
    35. var $scriptRelPath = "pi1/class.tx_twrssfeeds_pi1.php"; // Path to this script relative to the extension dir.
    36. var $extKey = "tw_rssfeeds"; // The extension key.
    37. var $pi_USER_INT_obj = TRUE;
    38.  
    39. ########################################################
    40. ########### set vars for parser #######################
    41. ######################################################
    42.  
    43. var $parser;
    44. var $case_folding = TRUE;
    45. var $data = array();
    46. var $current_tag = '';
    47. var $item_count = 0;
    48. var $image_flag = false;
    49. var $input_flag = false;
    50. var $channel_flag = false;
    51. var $item_flag = false;
    52.  
    53. /**
    54. * [initialize the url the parser will be able to work]
    55. *
    56. * @param string $content : function output is added to this
    57. * @param array $conf : configuration array
    58. * @return string $content: complete content generated by the tw_rss_feeds plugin
    59. */
    60. function main($content, $conf) {
    61. $this->conf = $conf;
    62. $this->pi_setPiVarDefaults();
    63. $this->pi_loadLL();
    64. $this->pi_initPIflexForm(); //init the flexes :)
    65.  
    66. #$GLOBALS["TSFE"]->set_no_cache();
    67.  
    68. $content = "";
    69.  
    70. $get_url = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'goforurl', 'sDEF');
    71. $get_thefeed = $get_url ? $get_url:
    72. $this->conf['url'];
    73.  
    74. $get_charset = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'charset', 'sDEF');
    75. $get_char = $get_charset ? $get_charset:
    76. $this->conf['charset'];
    77.  
    78. if ($get_url == "" && $this->conf['url'] == "") {
    79. return"Es wurde keine URL eingegeben. Bitte machen Sie es so!"; //Mehrsprachig machen
    80. }
    81.  
    82. switch($get_char){
    83.  
    84. case 'KEINE':
    85. $content .= $this->parseRSS($get_thefeed);
    86. break;
    87.  
    88. case 'UTF8':
    89. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","UTF-8");
    90. break;
    91.  
    92. case 'SJIS':
    93. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","EUC-JP");
    94. break;
    95.  
    96. case 'EUCJP':
    97. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","SJIS");
    98. break;
    99.  
    100. case 'ISO88591':
    101. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","iso-8859-1");
    102. break;
    103.  
    104. case 'ISO88592':
    105. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","iso-8859-2");
    106. break;
    107.  
    108. case 'ISO88593':
    109. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","iso-8859-3");
    110. break;
    111.  
    112. case 'ISO88594':
    113. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","iso-8859-4");
    114. break;
    115.  
    116. case 'ISO88595':
    117. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","iso-8859-5");
    118. break;
    119.  
    120. case 'ISO88596':
    121. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","iso-8859-6");
    122. break;
    123.  
    124. case 'ISO88597':
    125. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","iso-8859-7");
    126. break;
    127.  
    128. case 'ISO88598':
    129. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","iso-8859-8");
    130. break;
    131.  
    132. case 'AUTO':
    133. $content .= mb_convert_encoding($this->parseRSS($get_thefeed),"UTF-8","auto");
    134. break;
    135.  
    136. default:
    137. $content .= $this->parseRSS($get_thefeed);
    138. break;
    139.  
    140. }
    141.  
    142.  
    143. return $content;
    144. }
    145.  
    146.  
    147.  
    148. /**
    149. * [Here we get the flexform datas. we need them for the interesting possibilities of tw_rss_feeds. Further we parse the the $file through getRSSData getting the feed list.]
    150. *
    151. * ALL FILES ARE FOR FlexForms
    152. *
    153. * @param string $file: url string which will parsed by the xml parser
    154. * @param string $get_themaxitems: get the maximum items you wanna dispaly
    155. * @param string $get_thedescsep: separator between content blocks
    156. * @param string $get_theItemSeparator: separator between content blocks
    157. * @param string $get_theLinkTarget: check out if you want to set linktarget
    158. * @param string $get_theSubmitValue: value for forms
    159. * @param string $get_theChannelDesc: get channel description
    160. * @param string $get_theItemDesc: get content
    161. * @param string $get_theImage: get the image
    162. * @param string $get_thedescsep: separator between content blocks
    163. */
    164. function parseRSS($file) {
    165.  
    166. $get_maxitems = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'gomaxitems', 'sDEF');
    167. $get_themaxitems = $get_maxitems ? $get_maxitems:
    168. $this->conf['maxItem'];
    169.  
    170. $DescSeparator = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'descSeps', 'sDEF');
    171. $get_thedescsep = $DescSeparator ? $DescSeparator:
    172. $this->conf['DescSeparator'];
    173.  
    174. $ItemSeparator = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'itemSeps', 'sDEF');
    175. $get_theItemSeparator = $ItemSeparator ? $ItemSeparator:
    176. $this->conf['ItemSeparator'];
    177.  
    178. $LinkTarget = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'linktarget', 'sDEF');
    179. $get_theLinkTarget = $LinkTarget ? $LinkTarget:
    180. $this->conf['LinkTarget'];
    181.  
    182. if ($LinkTarget == "" && $this->conf['LinkTarget'] == "") {
    183. $get_theLinkTarget = "_blank";
    184. }
    185.  
    186. $SubmitValue = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'subdesc', 'sDEF');
    187. $get_theSubmitValue = $SubmitValue ? $SubmitValue:
    188. $this->conf['SubmitValue'];
    189.  
    190. if ($SubmitValue == "" && $this->conf['SubmitValue'] == "") {
    191. $get_theSubmitValue = "Submit";
    192. }
    193.  
    194. $ChannelDesc = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'channeldesc', 'specificfeeds');
    195. $get_theChannelDesc = $ChannelDesc ? $ChannelDesc:
    196. $this->conf['ChannelDesc'];
    197.  
    198. $ItemDesc = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'itemdesc', 'specificfeeds');
    199. $get_theItemDesc = $ItemDesc ? $ItemDesc:
    200. $this->conf['ItemDesc'];
    201.  
    202. $Image = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'imagedesc', 'specificfeeds');
    203. $get_theImage = $Image ? $Image:
    204. $this->conf['Image'];
    205.  
    206. $Textinput = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'textdesc', 'specificfeeds');
    207. $get_theTextinput = $Textinput ? $Textinput:
    208. $this->conf['Textinput'];
    209.  
    210. $TitleFile = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'titlehide', 'specificfeeds');
    211. $get_the_title = $TitleFile ? $TitleFile:
    212. $this->conf['TitleFile'];
    213.  
    214. $LinkDau = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'linkhide', 'specificfeeds');
    215. $get_da_link_source = $LinkDau ? $LinkDau:
    216. $this->conf['LinkDau'];
    217.  
    218. $LinkAfter = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'linkafter', 'specificfeeds');
    219. $get_first_line_after_link = $LinkAfter ? $LinkAfter:
    220. $this->conf['LinkAfter'];
    221.  
    222. $HTMLEnt = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'htmlent', 'specificfeeds');
    223. $get_html_entities = $HTMLEnt ? $HTMLEnt:
    224. $this->conf['HTMLEnt'];
    225.  
    226. $this->getRSSData($file);
    227.  
    228. if ($get_themaxitems < $this->item_count) {
    229. $this->item_count = $get_themaxitems;
    230. }
    231.  
    232. $content .= '<div id="twrss_table">';
    233.  
    234. if ($get_the_title !== "true") {
    235. $content .= '';
    236. } else {
    237. $content .= '<div class="twrss_head_channel">'.$this->data['CHANNEL']['TITLE'].'</div>';
    238. $content .= $get_thedescsep;
    239. }
    240.  
    241.  
    242. if ($get_theChannelDesc !== "true") {
    243. $content .= '';
    244. } else {
    245. $content .= '<div class="twrss_bodytext twrss_channel_description">'.$this->data['CHANNEL']['DESCRIPTION'].'</div>';
    246. $content .= $get_thedescsep;
    247. }
    248.  
    249. if ($get_da_link_source !== "true") {
    250. $content .= '';
    251. } else {
    252. $content .= '<div class="twrss_bodytext twrss_channel_link"><a href="'.$this-">data['CHANNEL']['LINK'].'" target="'.$get_theLinkTarget.'">'.$this->data['CHANNEL']['LINK'].'</a></div>';
    253. $content .= $get_thedescsep;
    254. }
    255.  
    256.  
    257. if ($get_theImage == "true" && isset($this->data['IMAGE'])) {
    258. $content .= '<div class="twrss_imagefile">';
    259. $content .= '<a href="'.$this-">data['IMAGE']['LINK'].'" target="'.$get_theLinkTarget.'">';
    260. $content .= '<img src="'.$this-" alt="" />data['IMAGE']['URL'].'" alt="'.@$this->data['IMAGE']['TITLE'].'" border="0"';
    261. if (isset($this->data['IMAGE']['WIDTH']))
    262. $content .= ' width="'.$this->data['IMAGE']['WIDTH'].'"';
    263. if (isset($this->data['IMAGE']['HEIGHT']))
    264. $content .= ' height="'.$this->data['IMAGE']['HEIGHT'].'"';
    265. $content .= ' />';
    266. $content .= '</a>';
    267. $content .= '</div>';
    268. }
    269.  
    270. if ($get_first_line_after_link !== "true") {
    271. $content .= '';
    272. } else {
    273. $content .= $get_theItemSeparator;
    274. }
    275.  
    276. for ($i = 1; $i <= $this->item_count; $i++) {
    277. $going = str_replace('<', '<', $this->data['ITEM'][$i]['TITLE']);
    278. $go_the_head = str_replace('>', '>', $going);
    279. $content .= '<div class="twrss_bodytext twrss_item_link"><a href="'.$this-">data['ITEM'][$i]['LINK'].'" target="'.$get_theLinkTarget.'" >'.$go_the_head.'</a></div>';
    280. $content .= $get_thedescsep;
    281. if ($get_theItemDesc == "true" && isset($this->data['ITEM'][$i]['DESCRIPTION'])) {
    282.  
    283. if ($get_html_entities !== "true") {
    284. $content .= '<div class="twrss_bodytext twrss_item_content">'.$this->data['ITEM'][$i]['DESCRIPTION'].'</div>';
    285. } else {
    286. $content .= '<div class="twrss_bodytext twrss_item_content">'.htmlentities($this->data['ITEM'][$i]['DESCRIPTION']).'</div>';
    287. }
    288.  
    289. $content .= $get_thedescsep;
    290. }
    291.  
    292. $content .= $get_theItemSeparator;
    293. }
    294.  
    295.  
    296. if ($get_theTextinput == "true" && isset($this->data['TEXTINPUT'])) {
    297. $content .= '<div class="twrss_bodytext twrss_input_title">'.$this->data['TEXTINPUT']['TITLE'].'</div>';
    298. $content .= $get_thedescsep;
    299. $content .= '<div class="twrss_bodytext twrss_input_description">'.$this->data['TEXTINPUT']['DESCRIPTION'].'</div>';
    300. $content .= $get_thedescsep;
    301. $content .= '<form action="'.$this-">data['TEXTINPUT']['LINK'].'" method="post" target="'.$get_theLinkTarget.'">';
    302. $content .= '<input type="text" class="twrss_bodytext twrss_input_name" name="'.$this-" />data['TEXTINPUT']['NAME'].'" />';
    303. $content .= '<input type="submit" class="twrss_bodytext twrss_input_submit" value="'.$get_theSubmitValue.'" />';
    304. $content .= '</form>';
    305. $content .= $get_theItemSeparator;
    306. }
    307. $content .= '</div>';
    308. return utf8_decode($content);
    309. }
    310.  
    311. /**
    312. * [Take $file and send it through the parser to get an array data[]]
    313. *
    314. * @param [type] $file: url with the xml file
    315. * @return [type] $this->data: get the array from xml file
    316. */
    317. function getRSSData($file) {
    318. $this->set_parser();
    319. $this->xml_file($file);
    320. return $this->data;
    321. }
    322.  
    323. /**
    324. * [Get the start element for the parser.]
    325. *
    326. * @param [type] $parser: parser, is a reference to the XML parser calling the handler
    327. * @param [type] $tag: name, contains the name of the element for which this handler is called
    328. * @param [type] $attribute: attribs, contains an associative array with the element's attributes
    329. * @return [type] ...
    330. */
    331. function startElement($parser, $tag, $attribute) {
    332.  
    333. if (strtoupper(substr($tag, 0, 3)) == 'RDF') {
    334. $tag = substr($tag, 4, strlen($tag));
    335. }
    336.  
    337. $this->current_tag = $this->StringToUpper($tag);
    338.  
    339. if ($this->StringToUpper($tag) == 'CHANNEL') {
    340. $this->channel_flag = true;
    341. }
    342.  
    343. if ($this->StringToUpper($tag) == 'IMAGE') {
    344. $this->image_flag = true;
    345. }
    346.  
    347. if ($this->StringToUpper($tag) == 'TEXTINPUT') {
    348. $this->input_flag = true;
    349. }
    350.  
    351. if ($this->StringToUpper($tag) == 'ITEM') {
    352. $this->item_flag = true;
    353. $this->item_count++;
    354. }
    355. }
    356.  
    357. /**
    358. * [Get the end elment for parsing]
    359. *
    360. * @param [type] $parser: parser, is a reference to the XML parser calling the handler
    361. * @param [type] $tag: name, contains the name of the element for which this handler is called
    362. * @return [type] ...
    363. */
    364. function endElement($parser, $tag) {
    365.  
    366. if ($this->StringToUpper($tag) == 'CHANNEL') {
    367. $this->channel_flag = false;
    368. }
    369.  
    370. if ($this->StringToUpper($tag) == 'IMAGE') {
    371. $this->image_flag = false;
    372. }
    373.  
    374. if ($this->StringToUpper($tag) == 'TEXTINPUT') {
    375. $this->input_flag = false;
    376. }
    377.  
    378. if ($this->StringToUpper($tag) == 'ITEM') {
    379. $this->item_flag = false;
    380. }
    381. }
    382.  
    383. /**
    384. * [Describe function...]
    385. *
    386. * @param [type] $parser: parser, is a reference to the XML parser calling the handler
    387. * @param [type] $cdata: Character datas from xml_set_character_data_handler
    388. * @return [type] ...
    389. */
    390. function getCharacterData($parser, $cdata) {
    391.  
    392. if ($this->channel_flag == true && $this->item_flag == false && $this->image_flag == false && $this->input_flag == false) {
    393. if ($this->current_tag != 'CHANNEL') {
    394. if (!isset($this->data['CHANNEL'][$this->current_tag])) {
    395. $this->data['CHANNEL'][$this->current_tag] = '';
    396. }
    397. $this->data['CHANNEL'][$this->current_tag] .= $cdata;
    398. }
    399. }
    400.  
    401. if ($this->image_flag == true) {
    402. if ($this->current_tag != 'IMAGE') {
    403. if (!isset($this->data['IMAGE'][$this->current_tag])) {
    404. $this->data['IMAGE'][$this->current_tag] = '';
    405. }
    406. $this->data['IMAGE'][$this->current_tag] .= $cdata;
    407. }
    408. }
    409.  
    410. if ($this->input_flag == true) {
    411. if ($this->current_tag != 'TEXTINPUT') {
    412. if (!isset($this->data['TEXTINPUT'][$this->current_tag])) {
    413. $this->data['TEXTINPUT'][$this->current_tag] = '';
    414. }
    415. $this->data['TEXTINPUT'][$this->current_tag] .= $cdata;
    416. }
    417. }
    418.  
    419. if ($this->item_flag == true) {
    420. if ($this->current_tag != 'ITEM') {
    421. if (!isset($this->data['ITEM'][$this->item_count][$this->current_tag])) {
    422. $this->data['ITEM'][$this->item_count][$this->current_tag] = '';
    423. }
    424. $this->data['ITEM'][$this->item_count][$this->current_tag] .= $cdata;
    425. }
    426. }
    427. }
    428.  
    429. /**
    430. * [Open xml File and read]
    431. *
    432. * @param string $file: the xml file
    433. * @return [type] ...
    434. */
    435. function xml_file($file) {
    436. if (!($fp = @fopen($file, "r")))
    437. $this->error("Kann XML-Datei <b>".$file."</b> nicht öffnen");
    438.  
    439. while ($data = fread($fp, 4096)) {
    440. if (!(xml_parse($this->parser, $data)))
    441. $this->error("XML-Output: ".xml_error_string(xml_get_error_code($this->parser)));
    442. }
    443.  
    444. xml_parser_free($this->parser);
    445. }
    446.  
    447. /**
    448. * [Set php parser to parse the xml file!]
    449. *
    450. * @return [type] ...
    451. */
    452. function set_parser() {
    453. $this->parser = xml_parser_create();
    454. xml_set_object($this->parser, &$this);
    455. xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, $this->case_folding);
    456. xml_set_element_handler($this->parser, "startElement", "endElement");
    457. xml_set_character_data_handler($this->parser, "getCharacterData");
    458. }
    459.  
    460. /**
    461. * [Change $tagname from lower to upper cabs]
    462. *
    463. * @param string $tagname: Tagname from the xml file
    464. * @return string $tagname: Changed tagname
    465. */
    466. function StringToUpper($tagname) {
    467. if ($this->case_folding)
    468. return strtoupper($tagname);
    469. else
    470. return $tagname;
    471. }
    472.  
    473. /**
    474. * [Error function if no xml file is given]
    475. *
    476. * @param [type] $msg: Error message given by function error
    477. * @return [type] ...
    478. */
    479. function error($msg) {
    480. #die(printf("Fehler: %s", $msg));
    481. $content .= '<div id="twrss_table">';
    482. $content .= '<div class="twrss_bodytext twrss_item_content">Fehler: '.$msg.'</div>';
    483. $content .= '</div>';
    484.  
    485. return $content;
    486. }
    487.  
    488.  
    489. }
    490.  
    491.  
    492.  
    493. if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/tw_rssfeeds/pi1/class.tx_twrssfeeds_pi1.php"]) {
    494. include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["ext/tw_rssfeeds/pi1/class.tx_twrssfeeds_pi1.php"]);
    495. }
    496.  
    497. ?>

  • davidb davidb
    T3PO
    0 x
    17 Beiträge
    0 Hilfreiche Beiträge
    30. 12. 2008, 17:57

    Ich schätze mal die Datei ist als UTF-8 gespeichert und muss als ANSI (ISO) konvertiert werden, weil der Server wohl nicht auf UTF-8 läuft.

    Ansonsten zum Thema UTF-8: http://www.bruchmann-web.de/de/support/typo3/tipps-und-tricks/utf-8-in-typo3/

    Gruß
    David

  • nobbie nobbie
    R2-D2
    0 x
    112 Beiträge
    0 Hilfreiche Beiträge
    30. 12. 2008, 22:28

    Hallo,

    hier ist das Auswahlfeld "Codierung" auf [b]automatisch[/b] zu stellen.

    Mein Problem ist jedoch, das mein Provider "[b]allow_url_fopen[/b]" aus Gründen der Sicherheit deaktiviert hat und nur noch über die "[b]CURL PHP Erweiterung[/b]" Daten aus dem Internet geholt werden können.

    Ich hatte mit dem Entwickler von "[b]TW RSS FEEDS[/b]" am 26.09.2008 Kontakt aufgenommen und die Antwort erhalten: Hallo Herr XXXX, heute abend stelle ich eine neue Version ins Repository. Beinhaltet dann auch das Einsetzen individueller Templates und auch die curl Geschichte. Viele Grüße,

    Leider erfolgte bis heute keine Änderung.

    nobbie

  • 1