Comment configurer de véritables publications anonymes sur les forums bbpress? [fermé]

4

Le plug-in bbpress-post-topics est installé de sorte que mes formulaires de commentaires soient remplacés par un sujet de forum bbpress, cela fonctionne, mais j'aimerais activer la publication anonyme.

Actuellement,commevouspouvezlevoirci-dessus,lenomdel'auteur,l'adresseélectronique,lesiteWebetletitredelarubriquesontobligatoires.Jevoudraisajusterceciafinqueseulle"titre de la rubrique" soit obligatoire. S'ils ne sont pas connectés, leurs publications sont attribuées à un utilisateur appelé "anonyme"

Je peux modifier le code PHP si nécessaire. Je pensais vraiment que le paramètre "Autoriser les utilisateurs invités sans comptes à créer des sujets et des réponses" aurait permis d'atteindre mon objectif.

Remarque: ce problème existe également dans les forums traditionnels, par exemple.

enlace

Vous pouvez voir que le nom de l'auteur / l'email sont des champs obligatoires.

Comment puis-je les supprimer en tant que champs obligatoires afin que les utilisateurs puissent réellement publier de manière anonyme sans créer de compte?

    
posée Dave Hilditch 28.01.2014 - 21:18

1 réponse

5

Lorsque nous publions une réponse anonyme anonyme , nous obtenons les erreurs suivantes:

La partie de BBPress chargée de le gérer est la fonction bbp_new_reply_handler() , dans le fichier /bbpress/includes/replies/functions.php . Il contient les lignes qui nous intéressent:

    // User is anonymous
    if ( bbp_is_anonymous() ) {

            // Filter anonymous data
            $anonymous_data = bbp_filter_anonymous_post_data();

bbp_filter_anonymous_post_data() est défini dans le fichier /bbpress/includes/replies/functions.php .

Voici un plugin de démonstration qui devrait

  • vous permet de poster une réponse avec des noms et des emails vides.
  • conservez les contrôles d'inondation par numéro IP.
  • pas écrire des cookies, cela va pré-remplir le nom et la zone de texte de l'e-mail.
  • donnez-vous Anonymous comme nom du réplicateur.

où:

/**
 * Plugin Name: Empty Anonymous Replies in BBPress
 * Plugin URI: http://wordpress.stackexchange.com/a/133420/26350
 */

add_action( 'init', array( 'WPSE_Empty_Anonymous_Replies', 'init' ) );

class WPSE_Empty_Anonymous_Replies
{
        static protected $name  = 'nobody';
        static protected $email = '[email protected]';

        static public function init()
        {
            add_filter( 'bbp_filter_anonymous_post_data', 
                         array( __CLASS__, 'bbp_filter_anonymous_post_data' ),                    
                         11, 2 );
            add_filter( 'bbp_pre_anonymous_post_author_name', 
                         array( __CLASS__,  'bbp_pre_anonymous_post_author_name' ) );
            add_filter( 'bbp_pre_anonymous_post_author_email',  
                         array( __CLASS__, 'bbp_pre_anonymous_post_author_email' ) );
        }

        static public function bbp_filter_anonymous_post_data( $retval, $r )
        {
            if( self::$name === $r['bbp_anonymous_name'] 
                && self::$email === $r['bbp_anonymous_email'] )
            {   
                // reset the input to skip writing cookies 
                $retval = array();

                // trick to activate the IP flood check 
                $retval['bbp_anonymous_flood_check'] = '1';
            }       
            return $retval;
        }

        static public function bbp_pre_anonymous_post_author_name( $name )
        {
            remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) );
            if( empty( $name ) )
                $name = self::$name;

            return $name;
        }

        static public function bbp_pre_anonymous_post_author_email( $email )
        {
            remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) );
            if( empty( $email ) )
                $email = self::$email;

            return $email;
        }
    }

J'espère que cela peut vous orienter dans la bonne direction.

    
réponse donnée birgire 04.02.2014 - 19:30

Lire d'autres questions sur les étiquettes