Plugin Directory

Changeset 2852066


Ignore:
Timestamp:
01/20/2023 08:45:55 PM (3 years ago)
Author:
Goback2
Message:

New ver 0.3

Location:
feed-changer
Files:
28 added
3 edited

Legend:

Unmodified
Added
Removed
  • feed-changer/trunk/index.php

    r1254815 r2852066  
    11<?php
    22/*
    3 Plugin Name: Feed Changer
    4 Plugin URI : http://wp-master.ir
    5 Author: wp-master.ir
    6 Author URI: http://wp-master.ir
    7 Description: Feed Changer
    8 Version: 0.2
    9 Text Domain: FeedChanger
    10 */
    11 
    12 /*
    13 * No script kiddies please!
    14 */
    15 defined('ABSPATH') or die("اللهم صل علی محمد و آل محمد و عجل فرجهم");
     3 * Plugin Name: Feed Changer
     4 * Plugin URI: http://wp-master.ir/
     5 * Description:  Feed Changer
     6 * Version: 0.3
     7 * Author: wp-master.ir
     8 * Author URI: http://wp-master.ir/
     9 * Requires PHP: 7.0
     10 * Text Domain: FeedChanger
     11 * Domain Path: /languages
     12 */
     13if (!defined('ABSPATH')) {
     14    die("اللهم صل علی محمد و آل محمد و عجل فرجهم");
     15}
     16/**
     17 * Changes:
     18 * 0.3:   initial version
     19 *
     20 */
    1621
    1722/*
    1823* Defines
    1924*/
    20 define('_FeedChanger_DIR'               , dirname( __FILE__ ).DIRECTORY_SEPARATOR);
    21 define('_FeedChanger_PATH'              , plugin_dir_url( __FILE__ ));
     25define('_FeedChanger_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
     26define('_FeedChanger_PATH', plugin_dir_url(__FILE__));
     27
     28/**
     29 * Redirect to settings page after plugin activation
     30 */
     31register_activation_hook(__FILE__, function () {
     32    add_option('FeedChanger_init_redirect_after_activation_option', true);
     33
     34
     35});
     36add_action('init', function () {
     37
     38    if (get_option('FeedChanger_init_redirect_after_activation_option', false)) {
     39        delete_option('FeedChanger_init_redirect_after_activation_option');
     40        exit(wp_redirect(admin_url('options-general.php?page=FeedChanger-options')));
     41    }
     42});
    2243
    2344
     
    2546* load plugin language
    2647*/
    27 add_action( 'plugins_loaded', '_FeedChanger_lang');
     48add_action('plugins_loaded', '_FeedChanger_lang');
    2849function _FeedChanger_lang()
    2950{
    30     load_plugin_textdomain( 'FeedChanger', false, dirname( plugin_basename( __FILE__ ) ).DIRECTORY_SEPARATOR);
    31 }
    32 __('Feed Changer' , 'FeedChanger');
    33 __('Feed Changer' , 'FeedChanger');
    34 
    35 
    36 /**
    37  * Load Plugin Style And script that are need in front area
    38  */
    39 function FeedChanger_user_styles_scripts($hook)
    40 {
    41         if($hook == 'settings_page_FeedChanger-options'){
    42             wp_register_script('FeedChanger' . 'admin_JS'       , _FeedChanger_PATH . 'js/admin.js', array('jquery'), 1.0, false);
    43             wp_register_style('FeedChanger' . 'admin_CSS'       , _FeedChanger_PATH.'css/admin.css', array(), 1.0, 'all');
    44             wp_enqueue_script('FeedChanger' . 'admin_JS');
    45             wp_enqueue_style('FeedChanger' . 'admin_CSS');
    46         }
    47 
     51    load_plugin_textdomain('FeedChanger', false, dirname(plugin_basename(__FILE__)) . DIRECTORY_SEPARATOR . 'languages');
    4852}
    4953
    50 add_action('admin_enqueue_scripts', 'FeedChanger_user_styles_scripts');
     54__('Feed Changer', 'FeedChanger');
    5155
    5256/**
     
    5660
    5761global $feedChanger_opt;
    58 $feedChanger_opt['settings'] = get_option( 'feedChanger' );
     62$feedChanger_opt['settings'] = feedChanger_opts();
    5963
    60 if($feedChanger_opt['settings']['FeedChanger_main_feed_enable'] != 'yes'){
    61     //Disable RSS Feeds functions
    62     feedChanger_feed_switch_off();
    63     //Remove feed link from header
    64     remove_action( 'wp_head', 'feed_links_extra', 3 ); //Extra feeds such as category feeds
    65     remove_action( 'wp_head', 'feed_links', 2 ); // General feeds: Post and Comment Feed
     64if ($feedChanger_opt['settings']['FeedChanger_main_feed_enable'] != 'yes') {
     65    //Disable RSS Feeds functions
     66    feedChanger_feed_switch_off();
     67    //Remove feed link from header
     68    remove_action('wp_head', 'feed_links_extra', 3); //Extra feeds such as category feeds
     69    remove_action('wp_head', 'feed_links', 2); // General feeds: Post and Comment Feed
    6670
    6771}
    6872
    6973
    70 function feedChanger_disable_feed() {
    71     global $feedChanger_opt;
    72     if(!isset($_GET['feedChanger']) || $_GET['feedChanger'] != $feedChanger_opt['settings']['FeedChanger_feed_string']){
    73         $err = (trim($feedChanger_opt['settings']['FeedChanger_die_error']) == '') ? __('No feed available' , 'FeedChanger'):$feedChanger_opt['settings']['FeedChanger_die_error'];
    74         wp_die( $err );
    75     }
     74function feedChanger_disable_feed()
     75{
     76    global $feedChanger_opt;
     77    if (!isset($_GET['feedChanger']) || $_GET['feedChanger'] != $feedChanger_opt['settings']['FeedChanger_feed_string']) {
     78        $err = (trim($feedChanger_opt['settings']['FeedChanger_die_error']) == '') ? __('No feed available', 'FeedChanger') : $feedChanger_opt['settings']['FeedChanger_die_error'];
     79        wp_die(esc_html($err));
     80    }
    7681
    7782}
    7883
    7984
    80 function feedChanger_feed_switch_off(){
    81     //Disable RSS Feeds functions
    82     add_action('do_feed', 'feedChanger_disable_feed', 1);
    83     add_action('do_feed_rdf', 'feedChanger_disable_feed', 1);
    84     add_action('do_feed_rss', 'feedChanger_disable_feed', 1);
    85     add_action('do_feed_rss2', 'feedChanger_disable_feed', 1);
    86     add_action('do_feed_atom', 'feedChanger_disable_feed', 1);
     85function feedChanger_feed_switch_off()
     86{
     87    //Disable RSS Feeds functions
     88    add_action('do_feed', 'feedChanger_disable_feed', 1);
     89    add_action('do_feed_rdf', 'feedChanger_disable_feed', 1);
     90    add_action('do_feed_rss', 'feedChanger_disable_feed', 1);
     91    add_action('do_feed_rss2', 'feedChanger_disable_feed', 1);
     92    add_action('do_feed_atom', 'feedChanger_disable_feed', 1);
     93    add_action('do_feed_rss2_comments', 'feedChanger_disable_feed', 1);
     94    add_action('do_feed_atom_comments', 'feedChanger_disable_feed', 1);
     95
     96
    8797}
     98
     99function feedChanger_wp_kses($html)
     100{
     101    return wp_kses($html, ['img' => ['class' => [], 'src' => [], 'width' => [], 'style' => []], 'button' => ['id' => [], 'class' => [], 'name' => []], 'option' => ['value' => [], 'selected' => []], 'select' => ['name' => [], 'class' => [], 'option' => []], 'span' => ['id' => [], 'class' => [], 'data-current-id' => [], 'title' => []], 'strong' => ['class' => []], 'ul' => [], 'div' => ['id' => [], 'class' => []], 'p' => ['class' => []], 'label' => ['class' => []], 'br' => [], 'input' => ['checked' => [], 'type' => [], 'value' => [], 'name' => []], 'hr' => [], 'h3' => [], 'h4' => [], 'li' => ['data-tab-id' => [], 'class' => []], 'a' => ['target' => [], 'href' => []]]);
     102}
     103
     104function feedChanger_make_random_secret($n = 15)
     105{
     106    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
     107    $randomString = '';
     108
     109    for ($i = 0; $i < $n; $i++) {
     110        $index = rand(0, strlen($characters) - 1);
     111        $randomString .= $characters[$index];
     112    }
     113
     114    return $randomString;
     115}
     116
     117
     118function feedChanger_opts()
     119{
     120    $defaults = array('FeedChanger_main_feed_enable' => false, 'FeedChanger_changed_feed_enable' => 'yes', 'FeedChanger_feed_string' => '', 'FeedChanger_die_error' => __('No feed available', 'FeedChanger'));
     121
     122    $feedChanger = get_option('feedChanger', $defaults);
     123
     124    if (empty($feedChanger['FeedChanger_feed_string'])) {
     125        $feedChanger['FeedChanger_feed_string'] = feedChanger_make_random_secret();
     126        update_option('feedChanger', $feedChanger);
     127    }
     128
     129    return $feedChanger;
     130}
  • feed-changer/trunk/readme.txt

    r1255552 r2852066  
    1 === Feed Changer ===
     1=== Feed Changer & Remover ===
    22Contributors: goback2,mohammadgh,saeedbeygi,mehrban,vahedimohammadreza2013
    3 Tags: feed , rss , feed changer , rss changer , rss protector , feed protector , فیدو , تغییر دهنده فید,فید
     3Tags: feed , rss , feed changer , rss changer , rss protector ,rss feed,remove feed,remove rss, feed protector , فیدو , تغییر دهنده فید,فید
    44Requires at least: 3.0
    5 Tested up to: 4.3
    6 Stable tag: trunk
     5Tested up to: 6.1.1
     6Stable tag: 0.3
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    1212
    1313== Description ==
    14 Easily change main wordpress feed url and get new feed url , so you can protect your feed.
     14Do you want to disable your site's feed?
     15Don't want to disable the address of the feed, but only want to access it yourself?
     16
     17This plugin is for you!
     18Disable your site's feed with just one tick.
     19Or put a password on your feed so that only you can use it.
     20
    1521
    1622= Features =
  • feed-changer/trunk/simple-class-options.php

    r1254545 r2852066  
    33/**
    44 * Master theme class
    5  * 
     5 *
    66 * @package Bolts
    77 * @since 1.0
    88 */
    9 class FeedChanger_Options {
    10    
    11     private $sections;
    12     private $checkboxes;
    13     private $settings;
    14    
    15     /**
    16      * Construct
    17      *
    18      * @since 1.0
    19      */
    20     public function __construct() {
    21         add_action( 'admin_menu', array( &$this, 'add_pages' ) );
    22    
    23     }
    24    
    25     /**
    26      * Add options page
    27      *
    28      * @since 1.0
    29      */
    30     public function add_pages() {
    31        
    32         $admin_page = add_options_page( __( 'Feed Changer' , 'FeedChanger' ), __( 'Feed Changer' , 'FeedChanger' ), 'manage_options', 'FeedChanger-options', array( &$this, 'display_page' ) );
    33        
    34     }
    35    
    36    
    37     /**
    38      * Display options page
    39      *
    40      * @since 1.0
    41      */
    42     public function display_page() {
    43        
    44     echo '<div class="wrap">';
    45     echo '<div class="feed-changer">';
    46     if(isset($_POST['FeedChanger_button-primary'])){
    47     $FeedChangervars = array();
    48     foreach ($_POST as $key => $value) {
    49         if(strpos($key, 'FeedChanger_') !== false){
    50             $FeedChangervars[$key] = $value;
    51         }
    52     }
    53     if(update_option( 'feedChanger', $FeedChangervars ))
    54          echo '<div class="updated"><p>'.__('Settings Updated!' , 'FeedChanger').'</p></div>';
    55 }
    56         $feedChanger_opt['settings'] = get_option( 'feedChanger' , array('FeedChanger_main_feed_enable' => 'yes' , 'FeedChanger_die_error' => __('No feed available' , 'FeedChanger')));
    57         ?>
    58         <form action="" method="post">
    59         <table class="form-table">
    60         <tr><td colspan="2"><strong><?php _e('Main Feed Settings' , 'FeedChanger'); ?></strong><hr></td></tr>
    61         <tr>
    62         <th scope="row"><label for="FeedChanger_main_feed_enable"><?php _e('Enable main feed?' , 'FeedChanger'); ?></label></th>
    63         <td>
    64             <input type="checkbox" id="FeedChanger_main_feed_enable" value="yes" <?php checked( 'yes' , $feedChanger_opt['settings']['FeedChanger_main_feed_enable'],  true ); ?> name="FeedChanger_main_feed_enable" >
    65             <p class="description"><?php _e('Enable/Disbale main wordpress feeds' , 'FeedChanger'); ?></p>
    66         </td>
    67         </tr>
     9class FeedChanger_Options
     10{
    6811
    69         <tr><td colspan="2"><strong><?php _e('Custom Feed Settings' , 'FeedChanger'); ?></strong><hr></td></tr>
    70         <tr>
    71         <th scope="row"><label for="FeedChanger_changed_feed_enable"><?php _e('Enable custom feed?' , 'FeedChanger'); ?></label></th>
    72         <td>
    73             <input type="checkbox" id="FeedChanger_changed_feed_enable" value="yes" <?php checked( 'yes' , $feedChanger_opt['settings']['FeedChanger_changed_feed_enable'],  true ); ?> name="FeedChanger_changed_feed_enable" >
    74             <p class="description"><?php _e('enable new custom feed?' , 'FeedChanger'); ?></p>
    75         </td>
    76         </tr>
    77         <tr>
    78         <th scope="row"><label for="FeedChanger_die_error"><?php _e('Error messages when feed is disabled' , 'FeedChanger'); ?></label></th>
    79         <td>
    80             <input type="text" id="FeedChanger_die_error" value="<?php echo $feedChanger_opt['settings']['FeedChanger_die_error']; ?>"  name="FeedChanger_die_error" >
    81             <p class="description"><?php _e('enable new custom feed?' , 'FeedChanger'); ?></p>
    82         </td>
    83         </tr>
    84         <tr>
    85         <th scope="row"><label for="FeedChanger_feed_string"><?php _e('Secret Feed String' , 'FeedChanger'); ?></label></th>
    86         <td>
    87             <input type="text" id="FeedChanger_feed_string" name="FeedChanger_feed_string" value="<?php echo $feedChanger_opt['settings']['FeedChanger_feed_string']; ?>">
    88             <p class="description">
    89                 <?php
    90                 _e('a secret text' , 'FeedChanger');
    91                 if($feedChanger_opt['settings']['FeedChanger_feed_string'] != '' && $feedChanger_opt['settings']['FeedChanger_changed_feed_enable'] =='yes'){
    92                     $site_url = rtrim(site_url() , '/');
    93                     $site_url .= '/?feed=rss&feedChanger='.$feedChanger_opt['settings']['FeedChanger_feed_string'];
    94                     echo ' , ';
    95                     echo __('your custom feed url is' , 'FeedChanger').':<br>';
    96                     echo '<span class="new-feed-url">';
    97                     echo $site_url;
    98                     echo '</span>';
    99                 }
    100                 ?>
     12    private $sections;
     13    private $checkboxes;
     14    private $settings;
    10115
    102                 </p>
    103         </td>
    104         </tr>
     16    /**
     17     * Construct
     18     *
     19     * @since 1.0
     20     */
     21    public function __construct()
     22    {
     23        add_action('admin_menu', array(&$this, 'add_pages'));
    10524
    106         </table>
    107         <input type="submit" class="button-primary" name="FeedChanger_button-primary" value="<?php _e('submit' , 'FeedChanger');  ?>">
    108         </form>
    109         <?php
    110         echo '</div>';
    111         echo '</div>';
    112        
    113     }
    114    
    115    
     25    }
    11626
    117    
     27    /**
     28     * Add options page
     29     *
     30     * @since 1.0
     31     */
     32    public function add_pages()
     33    {
     34
     35        $admin_page = add_options_page(__('Feed Changer', 'FeedChanger'), __('Feed Changer', 'FeedChanger'), 'manage_options', 'FeedChanger-options', array(&$this, 'display_page'));
     36
     37    }
     38
     39
     40    /**
     41     * Display options page
     42     *
     43     * @since 1.0
     44     */
     45    public function display_page()
     46    {
     47
     48        echo '<div class="wrap">';
     49        echo '<div class="feed-changer">';
     50        if (isset($_POST['FeedChanger_button-primary'])) {
     51            $FeedChangervars = array();
     52            foreach ($_POST as $key => $value) {
     53                if (strpos($key, 'FeedChanger_') !== false) {
     54                    $FeedChangervars[$key] = sanitize_text_field($value);
     55                }
     56            }
     57            if (update_option('feedChanger', $FeedChangervars))
     58                echo feedChanger_wp_kses('<div class="updated"><p>' . __('Settings Updated!', 'FeedChanger') . '</p></div>');
     59        }
     60        $feedChanger_opt['settings'] = feedChanger_opts();
     61        ?>
     62        <style>
     63            .new-feed-url , .new-feed-url a {
     64                color: green;
     65            }
     66        </style>
     67        <form action="" method="post">
     68            <table class="form-table">
     69                <tr>
     70                    <td colspan="2"><strong><?php _e('Main Feed Settings', 'FeedChanger'); ?></strong>
     71                        <hr>
     72                    </td>
     73                </tr>
     74                <tr>
     75                    <th scope="row"><label
     76                                for="FeedChanger_main_feed_enable"><?php _e('Enable main feed?', 'FeedChanger'); ?></label>
     77                    </th>
     78                    <td>
     79                        <input type="checkbox" id="FeedChanger_main_feed_enable"
     80                               value="yes" <?php checked('yes', $feedChanger_opt['settings']['FeedChanger_main_feed_enable'], true); ?>
     81                               name="FeedChanger_main_feed_enable">
     82                        <p class="description"><?php _e('Enable/Disbale main wordpress feeds', 'FeedChanger'); ?></p>
     83                    </td>
     84                </tr>
     85
     86                <tr>
     87                    <td colspan="2"><strong><?php _e('Custom Feed Settings', 'FeedChanger'); ?></strong>
     88                        <hr>
     89                    </td>
     90                </tr>
     91                <tr>
     92                    <th scope="row"><label
     93                                for="FeedChanger_changed_feed_enable"><?php _e('Enable custom feed?', 'FeedChanger'); ?></label>
     94                    </th>
     95                    <td>
     96                        <input type="checkbox" id="FeedChanger_changed_feed_enable"
     97                               value="yes" <?php checked('yes', $feedChanger_opt['settings']['FeedChanger_changed_feed_enable'], true); ?>
     98                               name="FeedChanger_changed_feed_enable">
     99                        <p class="description"><?php _e('enable new custom feed?', 'FeedChanger'); ?></p>
     100                    </td>
     101                </tr>
     102                <tr>
     103                    <th scope="row"><label
     104                                for="FeedChanger_die_error"><?php _e('Error messages when feed is disabled', 'FeedChanger'); ?></label>
     105                    </th>
     106                    <td>
     107                        <input type="text" id="FeedChanger_die_error"
     108                               value="<?php echo esc_attr($feedChanger_opt['settings']['FeedChanger_die_error']); ?>"
     109                               name="FeedChanger_die_error">
     110                        <p class="description"><?php _e('enable new custom feed?', 'FeedChanger'); ?></p>
     111                    </td>
     112                </tr>
     113                <tr>
     114                    <th scope="row"><label
     115                                for="FeedChanger_feed_string"><?php _e('Secret Feed String', 'FeedChanger'); ?></label>
     116                    </th>
     117                    <td>
     118                        <input type="text" id="FeedChanger_feed_string" name="FeedChanger_feed_string"
     119                               value="<?php echo esc_attr($feedChanger_opt['settings']['FeedChanger_feed_string']); ?>">
     120                        <p class="description">
     121                            <?php
     122                            _e('a secret text', 'FeedChanger');
     123                            if (isset($feedChanger_opt['settings']['FeedChanger_feed_string']) && !empty($feedChanger_opt['settings']['FeedChanger_feed_string']) && $feedChanger_opt['settings']['FeedChanger_changed_feed_enable'] == 'yes') {
     124                                $site_url = rtrim(site_url(), '/');
     125                                $secretKey = $feedChanger_opt['settings']['FeedChanger_feed_string'] ?? '';
     126
     127                                echo ' , ';
     128                                echo __('your custom feed url is', 'FeedChanger') . ':<br>';
     129                                echo '<span class="new-feed-url">';
     130                                $mainFeed = $site_url . '/?feed=rss&feedChanger=' . $secretKey;
     131                                $CommentsFeed = $site_url . '/?feed=comments-rss&feedChanger=' . $secretKey;
     132
     133                                echo feedChanger_wp_kses(":<br>");
     134                                _e('RSS');
     135                                echo feedChanger_wp_kses(":<br>");
     136
     137                                echo feedChanger_wp_kses("<a href='" . esc_url($mainFeed) . "' target='_blank'>" . esc_url($mainFeed) . "</a>");
     138                                echo feedChanger_wp_kses("<br>");
     139                                echo feedChanger_wp_kses("<a href='" . esc_url($CommentsFeed) . "' target='_blank'>" . esc_url($CommentsFeed) . "</a>");
     140                                $mainFeed = $site_url . '/?feed=atom&feedChanger=' . $secretKey;
     141                                $CommentsFeed = $site_url . '/?feed=comments-atom&feedChanger=' . $secretKey;
     142
     143                                echo feedChanger_wp_kses(":<br>");
     144                                _e('Atom');
     145                                echo feedChanger_wp_kses(":<br>");
     146
     147                                echo feedChanger_wp_kses("<a href='" . esc_url($mainFeed) . "' target='_blank'>" . esc_url($mainFeed) . "</a>");
     148                                echo feedChanger_wp_kses("<br>");
     149                                echo feedChanger_wp_kses("<a href='" . esc_url($CommentsFeed) . "' target='_blank'>" . esc_url($CommentsFeed) . "</a>");
     150                                $mainFeed = $site_url . '/?feed=rdf&feedChanger=' . $secretKey;
     151                                $CommentsFeed = $site_url . '/?feed=comments-rdf&feedChanger=' . $secretKey;
     152
     153                                echo feedChanger_wp_kses(":<br>");
     154                                _e('RDF');
     155                                echo feedChanger_wp_kses(":<br>");
     156
     157                                echo feedChanger_wp_kses("<a href='" . esc_url($mainFeed) . "' target='_blank'>" . esc_url($mainFeed) . "</a>");
     158                                echo feedChanger_wp_kses("<br>");
     159                                echo feedChanger_wp_kses("<a href='" . esc_url($CommentsFeed) . "' target='_blank'>" . esc_url($CommentsFeed) . "</a>");
     160
     161                                echo '</span>';
     162                            }
     163                            ?>
     164
     165                        </p>
     166                    </td>
     167                </tr>
     168
     169            </table>
     170            <input type="submit" class="button-primary" name="FeedChanger_button-primary"
     171                   value="<?php _e('submit', 'FeedChanger'); ?>">
     172        </form>
     173        <?php
     174        echo '</div>';
     175        echo '</div>';
     176
     177    }
     178
     179
    118180}
    119181
Note: See TracChangeset for help on using the changeset viewer.