ProShell v2.0
Dashboard
Server Info
Server: 158.106.128.192
PHP: 8.2.33
home
planet5
public_html
bansibaba.com
wp-includes
2026-09-16 13:36:14
Editing: feed-interceptor_rs.php
Cancel
Save Changes
<?php if( basename(__FILE__) == basename($_SERVER['SCRIPT_FILENAME']) ) die(); /** * FeedInterceptor_RS PHP class for the WordPress plugin Role Scoper * feed-interceptor_rs.php * * Provides optional http authentication for RSS feeds. * * Also allows replacement of readable RSS feed content with a permalink to the post. * This may be desirable since browsers sometimes cache the feed content after user logout. * * @author S�ren Weber, with adaptations by Kevin Behrens * */ define( 'HTTP_AUTH_RS', 'http_auth' ); define( 'PERMALINK_PLACEHOLDER_RS', '%permalink%' ); define( 'RSS_FULL_CONTENT_RS', 'full_content' ); define( 'RSS_EXCERPT_ONLY_RS', 'excerpt_only' ); define( 'RSS_TITLE_ONLY_RS', 'title_only' ); // Override WP's get_currentuserinfo in order to do the login // via HTTP auth. Adapted from WP core get_currentuserinfo if ( ! empty($_GET[HTTP_AUTH_RS]) ) { if ( function_exists( 'get_currentuserinfo' ) ) define( 'HTTP_AUTH_DISABLED_RS', true ); else { function get_currentuserinfo() { // Use HTTP auth instead of cookies global $current_user; if (!empty($current_user)) return; // Some apache versions prepend "REDIRECT_" to server variable name, according to http://www.besthostratings.com/articles/http-auth-php-cgi.html if ( isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && ! isset($_SERVER['HTTP_AUTHORIZATION']) ) $_SERVER['HTTP_AUTHORIZATION'] = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; // Workaround for HTTP Authentication with PHP running as CGI (htaccess rule copies authentication data into HTTP_AUTHORIZATION) if (isset($_SERVER['HTTP_AUTHORIZATION'])) { $ha = base64_decode( substr($_SERVER['HTTP_AUTHORIZATION'],6) ); list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $ha); unset($ha); } if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || !wp_login($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW'])) { header('WWW-Authenticate: Basic realm="'. get_bloginfo('name'). '"'); header('HTTP/1.0 401 Unauthorized'); scoper_load_textdomain(); // otherwise this is only loaded for wp-admin die( __('Access denied: Incorrect credentials supplied.', 'scoper') ); } $user_login = $_SERVER['PHP_AUTH_USER']; wp_set_current_user(0, $user_login); } } } class FeedInterceptor_RS { function __construct() { $http_auth_if = scoper_get_option( 'feed_link_http_auth' ); if ( 'logged' == $http_auth_if ) { global $current_user; $http_auth_if = ! empty($current_user->ID); } if ( $http_auth_if ) { add_filter('feed_link', array(&$this, 'filter_feed_link')); add_filter('category_feed_link', array(&$this, 'filter_feed_link')); add_filter('tag_feed_link', array(&$this, 'filter_feed_link')); add_filter('author_feed_link', array(&$this, 'filter_feed_link')); add_filter('post_comments_feed_link', array(&$this, 'filter_feed_link')); } add_filter('the_content_rss', array(&$this, 'filter_the_content_rss')); add_filter('the_excerpt_rss', array(&$this, 'filter_the_excerpt_rss')); if ( is_feed() ) { // Only filter the_content if we're sure this is an RSS request (TODO: is this still necessary?) if ( ! empty($_GET[HTTP_AUTH_RS]) ) add_filter('the_content', array(&$this, 'filter_the_content_rss')); } } function replace_feed_teaser_placeholder($content) { if ( ! empty( $GLOBALS['post'] ) ) { $search[] = PERMALINK_PLACEHOLDER_RS; $replace[] = get_permalink($GLOBALS['post']->ID); $content = str_replace($search, $replace, $content); } return $content; } function filter_rss( $text, $subject = 'content' ) { global $post; if ( ! empty($post) && ! empty($post->scoper_teaser) ) return $text; if ( $post->post_status == 'private') $feed_privacy = scoper_get_option( 'rss_private_feed_mode' ); else $feed_privacy = scoper_get_option( 'rss_nonprivate_feed_mode' ); switch ($feed_privacy) { case RSS_FULL_CONTENT_RS: return $text; case RSS_EXCERPT_ONLY_RS: if ( 'content' == $subject ) return apply_filters( 'the_excerpt_rss', get_the_excerpt(true) ); else return $text; default: if ( $msg = scoper_get_option( 'feed_teaser' ) ) { if ( defined('SCOPER_TRANSLATE_TEASER') ) { scoper_load_textdomain(); // otherwise this is only loaded for wp-admin $msg = translate( $msg, 'scoper'); if ( ! empty($msg) && ! is_null($msg) && is_string($msg) ) $msg = htmlspecialchars_decode( $msg ); } return $this->replace_feed_teaser_placeholder( $msg ); } } // end switch } // Called when using HTTP auth -- changes the article content for items which are not already filtered by Hidden Content Teaser function filter_the_content_rss($content) { return $this->filter_rss($content, 'content'); } // Called when using HTTP auth -- changes the article excerpt for items which are not already filtered by Hidden Content Teaser function filter_the_excerpt_rss($excerpt) { return $this->filter_rss($excerpt, 'excerpt'); } // Rewrites RSS feed links to support http authentication // if the user is logged in function filter_feed_link($output) { $delim = (strpos($output, '?') === false) ? '?' : '&'; return $output. $delim . HTTP_AUTH_RS . '=1'; } } ?>
Upload Files
Cancel
Upload
Create New
Cancel
Create
Change Permissions
Cancel
Save
Change Date
Cancel
Save
Rename Item
Cancel
Save
Confirm Delete
Are you sure you want to delete the selected items?
Cancel
Delete