Changeset 4452
- Timestamp:
- 10/23/06 17:14:55 (2 years ago)
- Files:
-
- trunk/src/net.nemein.rss/config/manifest.inc (modified) (1 diff)
- trunk/src/net.nemein.rss/documentation/CHANGES (modified) (1 diff)
- trunk/src/net.nemein.rss/fetch.php (modified) (1 diff)
- trunk/src/net.nemein.rss/locale/default.en.txt (modified) (4 diffs)
- trunk/src/net.nemein.rss/locale/default.fi.txt (modified) (4 diffs)
- trunk/src/net.nemein.rss/manage.php (modified) (11 diffs)
- trunk/src/net.nemein.rss/style/net-nemein-rss-feed-delete.php (added)
- trunk/src/net.nemein.rss/style/net-nemein-rss-feed-fetch.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/net.nemein.rss/config/manifest.inc
r4308 r4452 1 1 'name' => 'net.nemein.rss', 2 2 'purecode' => true, 3 'version' => '2.0. 0',3 'version' => '2.0.1', 4 4 'state' => 'stable', 5 5 'privileges' => array(), trunk/src/net.nemein.rss/documentation/CHANGES
r4308 r4452 6 6 which might even break existing functionality. 7 7 - All items marked with "+" represent completly new features. 8 9 2006-10-23 bergie 10 + Added support for deleting feeds 11 - Fixed OPML subscription 8 12 9 13 2006-10-06 bergie trunk/src/net.nemein.rss/fetch.php
r4308 r4452 409 409 $item['title'] = $_MIDCOM->i18n->get_string('untitled', 'net.nemein.rss'); 410 410 411 $item_date = $this->parse_item_date($item);411 $item_date = net_nemein_rss_fetch::parse_item_date($item); 412 412 413 413 if (isset($item['description'])) trunk/src/net.nemein.rss/locale/default.en.txt
r4308 r4452 46 46 ---STRING default author for items 47 47 Default author for items 48 ---STRINGEND 49 50 ---STRING delete feed 51 Delete feed 48 52 ---STRINGEND 49 53 … … 116 120 ---STRINGEND 117 121 122 ---STRING no items found in feed 123 No items found in feed. 124 ---STRINGEND 125 118 126 ---STRING opml file 119 127 OPML file … … 126 134 ---STRING remote from feed 127 135 Remote from feed 136 ---STRINGEND 137 138 ---STRING remote item 139 Item in feed 128 140 ---STRINGEND 129 141 … … 172 184 ---STRINGEND 173 185 174 ---STRING no items found in feed175 No items found in feed. 186 ---STRING local item 187 Local copy of item 176 188 ---STRINGEND 177 189 trunk/src/net.nemein.rss/locale/default.fi.txt
r4308 r4452 46 46 ---STRING default author for items 47 47 Uutisten oletuskirjoittaja 48 ---STRINGEND 49 50 ---STRING delete feed 51 Poista syöte 48 52 ---STRINGEND 49 53 … … 116 120 ---STRINGEND 117 121 122 ---STRING no items found in feed 123 SyötteestÀ ei löytynyt uutisia. 124 ---STRINGEND 125 118 126 ---STRING opml file 119 127 OPML-tiedosto … … 126 134 ---STRING remote from feed 127 135 Luetaan lÀhteestÀ 136 ---STRINGEND 137 138 ---STRING remote item 139 Uutinen syötteessÀ 128 140 ---STRINGEND 129 141 … … 172 184 ---STRINGEND 173 185 174 ---STRING no items found in feed175 SyötteestÀ ei löytynyt uutisia. 186 ---STRING local item 187 Uutisen paikallinen kopio 176 188 ---STRINGEND 177 189 trunk/src/net.nemein.rss/manage.php
r4066 r4452 80 80 $qb->add_constraint('node', '=', $this->_topic->id); 81 81 $data['feeds'] = $qb->execute(); 82 83 $this->_update_breadcrumb_line($handler_id); 82 84 83 85 return true; … … 113 115 ) 114 116 ); 117 $data['feed_toolbar']->add_item 118 ( 119 array 120 ( 121 MIDCOM_TOOLBAR_URL => "feeds/delete/{$feed->guid}", 122 MIDCOM_TOOLBAR_LABEL => $_MIDCOM->i18n->get_string('delete feed', 'net.nemein.rss'), 123 MIDCOM_TOOLBAR_ICON => 'stock-icons/16x16/trash.png', 124 MIDCOM_TOOLBAR_ENABLED => $feed->can_do('midgard:delete'), 125 ) 126 ); 115 127 116 128 $qb = midcom_db_article::new_query_builder(); 129 $qb->add_constraint('topic', '=', $this->_topic->id); 130 117 131 $data['feed_category'] = md5($feed->url); 118 132 $qb->add_constraint('extra1', 'LIKE', "%|{$data['feed_category']}|%"); … … 187 201 188 202 // Single feed addition 189 if (array_key_exists('net_nemein_rss_manage_newfeed', $_POST)) 190 { 191 if ($_POST['net_nemein_rss_manage_newfeed']['url']) 192 { 193 $this->_subscribe_feed($_POST['net_nemein_rss_manage_newfeed']['url']); 194 // TODO: display error messages 195 // TODO: redirect user to edit page if creation succeeded 196 } 203 if ( array_key_exists('net_nemein_rss_manage_newfeed', $_POST) 204 && $_POST['net_nemein_rss_manage_newfeed']['url']) 205 { 206 $this->_subscribe_feed($_POST['net_nemein_rss_manage_newfeed']['url']); 207 // TODO: display error messages 208 // TODO: redirect user to edit page if creation succeeded 197 209 198 210 $_MIDCOM->relocate('feeds/list/'); … … 200 212 201 213 // OPML subscription list import support 202 $opml_file = null; 203 if (version_compare(phpversion(), '4.3.0', '>=')) 204 { 205 if ( array_key_exists('net_nemein_rss_manage_opml', $_FILES) 206 && is_uploaded_file($_FILES['net_nemein_rss_manage_opml']['tmp_name'])) 207 { 208 $opml_file = $_FILES['net_nemein_rss_manage_opml']['tmp_name']; 209 } 210 } 211 else 212 { 213 if ( array_key_exists('net_nemein_rss_manage_opml', $_POST) 214 && is_uploaded_file($_POST['net_nemein_rss_manage_opml']['tmp_name'])) 215 { 216 $opml_file = $_REQUEST['net_nemein_rss_manage_opml']['tmp_name']; 217 } 218 } 219 220 if (!is_null($opml_file)) 221 { 214 if ( array_key_exists('net_nemein_rss_manage_opml', $_FILES) 215 && is_uploaded_file($_FILES['net_nemein_rss_manage_opml']['tmp_name'])) 216 { 217 $opml_file = $_FILES['net_nemein_rss_manage_opml']['tmp_name']; 222 218 223 219 // We have OPML file, parse it … … 249 245 } 250 246 247 $this->_update_breadcrumb_line($handler_id); 248 251 249 return true; 252 250 } … … 258 256 } 259 257 260 function _handler_edit($handler_id, $args, &$data) 261 { 262 $data['feed'] = new net_nemein_rss_feed_dba($args[0]); 263 if (!$data['feed']) 264 { 265 return false; 266 } 267 $data['feed']->require_do('midgard:update'); 268 258 function _load_controller(&$data) 259 { 269 260 $data['schemadb'] = midcom_helper_datamanager2_schema::load_database($this->_config->get('schemadb_feed')); 270 261 $data['controller'] =& midcom_helper_datamanager2_controller::create('simple'); … … 276 267 // This will exit. 277 268 } 269 } 270 271 function _handler_edit($handler_id, $args, &$data) 272 { 273 $data['feed'] = new net_nemein_rss_feed_dba($args[0]); 274 if (!$data['feed']) 275 { 276 return false; 277 } 278 $data['feed']->require_do('midgard:update'); 279 280 $this->_load_controller(&$data); 278 281 279 282 switch ($data['controller']->process_form()) … … 291 294 $_MIDCOM->bind_view_to_object($data['feed']); 292 295 296 $this->_update_breadcrumb_line($handler_id); 297 293 298 return true; 294 299 } … … 297 302 { 298 303 midcom_show_style('net-nemein-rss-feed-edit'); 304 } 305 306 /** 307 * Displays an downloadpage delete confirmation view. 308 * 309 * Note, that the downloadpage for non-index mode operation is automatically determined in the can_handle 310 * phase. 311 * 312 * If create privileges apply, we relocate to the index creation downloadpage, 313 */ 314 function _handler_delete($handler_id, $args, &$data) 315 { 316 $data['feed'] = new net_nemein_rss_feed_dba($args[0]); 317 if (!$data['feed']) 318 { 319 return false; 320 } 321 $data['feed']->require_do('midgard:delete'); 322 323 $this->_load_controller(&$data); 324 325 if (array_key_exists('net_nemein_rss_deleteok', $_REQUEST)) 326 { 327 // Deletion confirmed. 328 329 if (! midcom_helper_purge_object($data['feed'])) 330 { 331 $_MIDCOM->generate_error(MIDCOM_ERRCRIT, "Failed to delete feed {$args[0]}, last Midgard error was: " . mgd_errstr()); 332 // This will exit. 333 } 334 335 // Delete ok, relocating to welcome. 336 $_MIDCOM->relocate('feeds/list/'); 337 // This will exit. 338 } 339 340 if (array_key_exists('net_nemein_rss_deletecancel', $_REQUEST)) 341 { 342 // Redirect to view page. 343 $_MIDCOM->relocate('feeds/list/'); 344 // This will exit() 345 } 346 347 $_MIDCOM->set_26_request_metadata($data['feed']->revised, $data['feed']->guid); 348 $this->_view_toolbar->bind_to($data['feed']); 349 $_MIDCOM->set_pagetitle("{$this->_topic->extra}: {$data['feed']->title}"); 350 351 $this->_update_breadcrumb_line($handler_id); 352 353 return true; 354 } 355 356 357 /** 358 * Shows the loaded downloadpage. 359 */ 360 function _show_delete ($handler_id, &$data) 361 { 362 midcom_show_style('net-nemein-rss-feed-delete'); 299 363 } 300 364 … … 314 378 $_MIDCOM->bind_view_to_object($data['feed']); 315 379 380 $this->_update_breadcrumb_line($handler_id); 381 316 382 return true; 317 383 } … … 320 386 { 321 387 midcom_show_style('net-nemein-rss-feed-fetch'); 388 } 389 390 /** 391 * Helper, updates the context so that we get a complete breadcrum line towards the current 392 * location. 393 * 394 */ 395 function _update_breadcrumb_line($handler_id) 396 { 397 $tmp = Array(); 398 399 $tmp[] = Array 400 ( 401 MIDCOM_NAV_URL => "feeds/list/", 402 MIDCOM_NAV_NAME => $_MIDCOM->i18n->get_string('manage feeds', 'net.nemein.rss'), 403 ); 404 405 switch ($handler_id) 406 { 407 case 'feeds_subscribe': 408 $tmp[] = Array 409 ( 410 MIDCOM_NAV_URL => "feeds/subscribe/", 411 MIDCOM_NAV_NAME => $_MIDCOM->i18n->get_string('subscribe feeds', 'net.nemein.rss'), 412 ); 413 break; 414 case 'feeds_edit': 415 $tmp[] = Array 416 ( 417 MIDCOM_NAV_URL => "feeds/edit/{$this->_request_data['feed']->guid}/", 418 MIDCOM_NAV_NAME => $this->_l10n_midcom->get('edit'), 419 ); 420 break; 421 case 'feeds_delete': 422 $tmp[] = Array 423 ( 424 MIDCOM_NAV_URL => "feeds/delete/{$this->_request_data['feed']->guid}/", 425 MIDCOM_NAV_NAME => $this->_l10n_midcom->get('delete'), 426 ); 427 break; 428 case 'feeds_fetch': 429 $tmp[] = Array 430 ( 431 MIDCOM_NAV_URL => "feeds/fetch/{$this->_request_data['feed']->guid}/", 432 MIDCOM_NAV_NAME => $_MIDCOM->i18n->get_string('refresh feed', 'net.nemein.rss'), 433 ); 434 break; 435 } 436 437 $_MIDCOM->set_custom_context_data('midcom.helper.nav.breadcrumb', $tmp); 322 438 } 323 439 } trunk/src/net.nemein.rss/style/net-nemein-rss-feed-fetch.php
r4308 r4452 12 12 else 13 13 { 14 echo "<ul>\n"; 14 echo "<table>\n"; 15 echo " <thead>\n"; 16 echo " <tr>\n"; 17 echo " <th>" . $_MIDCOM->i18n->get_string('remote item', 'net.nemein.rss') . "</th>\n"; 18 echo " <th>" . $_MIDCOM->i18n->get_string('local item', 'net.nemein.rss') . "</th>\n"; 19 echo " </tr>\n"; 20 echo " </thead>\n"; 21 echo " <tbody>\n"; 15 22 foreach ($data['items'] as $item) 16 23 { 17 echo "< li><a href=\"{$item['link']}\">{$item['title']}</a>\n";18 echo " < ul>\n";24 echo "<tr>\n"; 25 echo " <td><a href=\"{$item['link']}\">{$item['title']}</a></td>\n"; 19 26 20 27 if (!$item['local_guid']) 21 28 { 22 echo " <li>" . $_MIDCOM->i18n->get_string('not in local database', 'net.nemein.rss') . "</li>\n";29 echo " <td>" . $_MIDCOM->i18n->get_string('not in local database', 'net.nemein.rss') . "</td>\n"; 23 30 } 24 31 else … … 26 33 $local_article = new midcom_db_article($item['local_guid']); 27 34 $local_link = $_MIDCOM->permalinks->create_permalink($item['local_guid']); 28 echo " <li><a href=\"{$local_link}\">{$local_article->title}</a></li>\n";35 echo " <td><a href=\"{$local_link}\">{$local_article->title}</a></td>\n"; 29 36 } 30 37 31 echo " </ul>\n"; 32 echo "</li>\n"; 38 echo "</tr>\n"; 33 39 } 34 echo "</ul>\n"; 40 echo " </tbody>\n"; 41 echo "</table>\n"; 35 42 } 36 43 ?>
