| @@ 385-457 (lines=73) @@ | ||
| 382 | return $this->get_link(0); |
|
| 383 | } |
|
| 384 | ||
| 385 | public function get_links($rel = 'alternate') |
|
| 386 | { |
|
| 387 | if (!isset($this->data['links'])) |
|
| 388 | { |
|
| 389 | $this->data['links'] = array(); |
|
| 390 | if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link')) |
|
| 391 | { |
|
| 392 | foreach ($links as $link) |
|
| 393 | { |
|
| 394 | if (isset($link['attribs']['']['href'])) |
|
| 395 | { |
|
| 396 | $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; |
|
| 397 | $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); |
|
| 398 | } |
|
| 399 | } |
|
| 400 | } |
|
| 401 | if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link')) |
|
| 402 | { |
|
| 403 | foreach ($links as $link) |
|
| 404 | { |
|
| 405 | if (isset($link['attribs']['']['href'])) |
|
| 406 | { |
|
| 407 | $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; |
|
| 408 | $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); |
|
| 409 | ||
| 410 | } |
|
| 411 | } |
|
| 412 | } |
|
| 413 | if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) |
|
| 414 | { |
|
| 415 | $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); |
|
| 416 | } |
|
| 417 | if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) |
|
| 418 | { |
|
| 419 | $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); |
|
| 420 | } |
|
| 421 | if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link')) |
|
| 422 | { |
|
| 423 | $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); |
|
| 424 | } |
|
| 425 | ||
| 426 | $keys = array_keys($this->data['links']); |
|
| 427 | foreach ($keys as $key) |
|
| 428 | { |
|
| 429 | if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key))) |
|
| 430 | { |
|
| 431 | if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key])) |
|
| 432 | { |
|
| 433 | $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]); |
|
| 434 | $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]; |
|
| 435 | } |
|
| 436 | else |
|
| 437 | { |
|
| 438 | $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key]; |
|
| 439 | } |
|
| 440 | } |
|
| 441 | elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY) |
|
| 442 | { |
|
| 443 | $this->data['links'][substr($key, 41)] =& $this->data['links'][$key]; |
|
| 444 | } |
|
| 445 | $this->data['links'][$key] = array_unique($this->data['links'][$key]); |
|
| 446 | } |
|
| 447 | } |
|
| 448 | ||
| 449 | if (isset($this->data['links'][$rel])) |
|
| 450 | { |
|
| 451 | return $this->data['links'][$rel]; |
|
| 452 | } |
|
| 453 | else |
|
| 454 | { |
|
| 455 | return null; |
|
| 456 | } |
|
| 457 | } |
|
| 458 | ||
| 459 | public function get_description() |
|
| 460 | { |
|
| @@ 2363-2435 (lines=73) @@ | ||
| 2360 | * @param string $rel The relationship of links to return |
|
| 2361 | * @return array|null Links found for the feed (strings) |
|
| 2362 | */ |
|
| 2363 | public function get_links($rel = 'alternate') |
|
| 2364 | { |
|
| 2365 | if (!isset($this->data['links'])) |
|
| 2366 | { |
|
| 2367 | $this->data['links'] = array(); |
|
| 2368 | if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link')) |
|
| 2369 | { |
|
| 2370 | foreach ($links as $link) |
|
| 2371 | { |
|
| 2372 | if (isset($link['attribs']['']['href'])) |
|
| 2373 | { |
|
| 2374 | $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; |
|
| 2375 | $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); |
|
| 2376 | } |
|
| 2377 | } |
|
| 2378 | } |
|
| 2379 | if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link')) |
|
| 2380 | { |
|
| 2381 | foreach ($links as $link) |
|
| 2382 | { |
|
| 2383 | if (isset($link['attribs']['']['href'])) |
|
| 2384 | { |
|
| 2385 | $link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate'; |
|
| 2386 | $this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link)); |
|
| 2387 | ||
| 2388 | } |
|
| 2389 | } |
|
| 2390 | } |
|
| 2391 | if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link')) |
|
| 2392 | { |
|
| 2393 | $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); |
|
| 2394 | } |
|
| 2395 | if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link')) |
|
| 2396 | { |
|
| 2397 | $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); |
|
| 2398 | } |
|
| 2399 | if ($links = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link')) |
|
| 2400 | { |
|
| 2401 | $this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0])); |
|
| 2402 | } |
|
| 2403 | ||
| 2404 | $keys = array_keys($this->data['links']); |
|
| 2405 | foreach ($keys as $key) |
|
| 2406 | { |
|
| 2407 | if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key))) |
|
| 2408 | { |
|
| 2409 | if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key])) |
|
| 2410 | { |
|
| 2411 | $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]); |
|
| 2412 | $this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]; |
|
| 2413 | } |
|
| 2414 | else |
|
| 2415 | { |
|
| 2416 | $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key]; |
|
| 2417 | } |
|
| 2418 | } |
|
| 2419 | elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY) |
|
| 2420 | { |
|
| 2421 | $this->data['links'][substr($key, 41)] =& $this->data['links'][$key]; |
|
| 2422 | } |
|
| 2423 | $this->data['links'][$key] = array_unique($this->data['links'][$key]); |
|
| 2424 | } |
|
| 2425 | } |
|
| 2426 | ||
| 2427 | if (isset($this->data['links'][$rel])) |
|
| 2428 | { |
|
| 2429 | return $this->data['links'][$rel]; |
|
| 2430 | } |
|
| 2431 | else |
|
| 2432 | { |
|
| 2433 | return null; |
|
| 2434 | } |
|
| 2435 | } |
|
| 2436 | ||
| 2437 | public function get_all_discovered_feeds() |
|
| 2438 | { |
|