Problema plugin BP-events con Buddypress 1.0

By daniele at 17 Luglio, 2009, 9:46 am

Ultimamente mi sto divertendo molto (per lavoro :) ) con la creazione di Community che utilizzano quanto di meglio l’open source riesce a fare in questo campo, ovvero Wordpress MU, Buddypress e una serie di plugin per Buddypress. Ma essendo la mia community un po’ particolare, perchè integra alcune funzioni/informazioni che derivano da un altro portale, ho dovuto combattere un po’ con alcuni plugin che non avevano la compatibilità con la versione 1.0 di buddypress, che è quella che io uso attualmente. Avendo modificato in una decina di punti il “core” di buddypress, rimando l’aggiornamento quanto più possibile…Non me ne abbiano i puristi di wordpress e buddypress, che mi diranno “perchè non hai scritto un plugin….”. Lo farò adesso non ho tempo. Così ho preso il plugin bp-events che consente ai membri del social, di inserire un evento e vederlo pubblicizzato nella home, tramite un widget, e nell’apposita sezione dedicata agli eventi. Nella doc del plugin avevo letto “require bp 1.0.1″, ma io essendo uno smanettone volevo comunque farlo funzionare lo stesso. Così l’ho intallato e funzionava quasi tutto tranne che quando andavo a cliccare sul nome dell’evento per visualizzarlo, mi compariva l’orribile messaggio “Non hai installato alcun tema su Buddypress, Copia dal….bla bla “.  SGOMENTO !!!

Allora ho deciso che dovevo indagare e ho cominciato a spulciare il file bp_events.php, quello principale che sta sulla root di plugin e guardavo quali filtri avrebbero potuto influire sul fatto che il permalink dell’evento non avesse un tema associato. Per farla breve scopro due funzioni su questo file che fanno proprio questo mestiere, cioè forzano il template member al posto di quello Home quando si clicca sul nome dell’evento. Le funzioni sono :

1) function events_force_buddypress_theme( $template )Â
2) function events_force_buddypress_stylesheet( $stylesheet )

Dentro noto questo pezzo di codice:

 if ( $bp->is_single_item ) {
     add_filter( ‘theme_root’, ‘bp_core_filter_buddypress_theme_root’ );
     add_filter( ‘theme_root_uri’, ‘bp_core_filter_buddypress_theme_root_uri’ );
     return $member_theme;
}
Faccio una piccola indagine e scopro che le due funzioni indicate nella chiamata add_filter() cioè ‘bp_core_filter_buddypress_theme_root’  e ‘bp_core_filter_buddypress_theme_root_uri’  non esistono sulla versione 1.0 di buddypress. Un po’ di giri su Google (santo Google) e scopro che nella versione 1.0 di buddypress le funzioni hanno nome diverso. Allora sostituisco il pezzo di codice sopra con 

 if ( $bp->is_single_item ) {
  add_filter( ‘theme_root’, ‘bp_core_set_member_theme_root’ );
  add_filter( ‘theme_root_uri’, ‘bp_core_set_member_theme_root_uri’ );
  return $member_theme;
}

e tutto funziona. Indago ancora un po’  e scopro che nel forum del plugin c’era pure scritto ma difficile da trovare perchè non così chiaro.
Spero a qualcuno torni utile questo piccolo intervento.
A proposito se volete dare un occhio alla community che sto creando http://www.arounditaly-it.com

Categories : Buddypress | Plugins | Wordpress

Comments
lasslo Luglio 28, 2009

Ciao daniele, ho creato una piccola comunity con buddypress e vorrei sapere se potresti dirmi come faccio a rendere privati i profili.. proprio come succede nel tuo social .. potresti aiutarmi?

La mia mail è lasslo.net@gmail.com

daniele Agosto 2, 2009

certo, domani ti rispondo, io ho messo un po’ le mani sul template…

Fabrizio Agosto 17, 2009

Ciao Daniele,
anche io sarei interessato alla stessa cosa, ovvero rendere privati i profili, o quanto meno renderli invisibili a chi non ha effettuato la login, se potessi aiutarmi te ne sarei molto grato.

Ciao
Fabrizio

daniele Agosto 19, 2009

Ciao allora io non so se nel frattempo che sono stato latitante dal mio blog avete risolto. Io per rendere privato il profilo ho fatto una cosa semplice e che i puristi di Wordpress sicuramente non approvano. Ho modificato il tema nelle sezioni in cui volevo renderlo privato. Ad esempio sulla sezione amici volevo che solo chi è loggato potesse vedere gli amici del profilo, allora ho preso il file index.php che sta sotto friends del tema member. ed ho inserito nel file, subito dopo la get_header() le seguenti istruzioni..

< ?php get_header() ?>
< ?PHP if ( is_user_logged_in() ) { ?>
.
.
.

qui sotto ci sta tutto il contenuto del file originale
.
.
.
.
ed in fondo prima della get_footer(), ho inserito

< ?PHP }
else
{
echo("<div ID='mustbelogged'>");
echo("Devi essere iscritto per poter accedere a questa funzione. <a href='http://arounditaly-it.com/register' rel="nofollow">Registrati ed esegui l'accesso</a>. Se hai un account su Facebook, salta la fase di registrazione ed esegui l'accesso tramite il pulsante FConnect");
echo("</div>");

}

?>

Quindi se l’utente ha eseguito il login allora può vedere gli amici del profilo, altrimenti gli compare quel messaggio che indica che deve effettuare l’accesso prima di poter accedere ad altre info.

Non so se è la strada migliore, sicuramente no perchè queste modifiche impediscono un cambio di tema veloce, però visto che io il tema l’ho già personalizzato molto per altri aspetti, per me va bene.

Spero di essere stato utile, ma se qualcuno conosce una strada migliore se me la dice mi fa un piacere.

Grazie dei commenti

Enrico Giugno 30, 2010

Ciao Daniele, ho installato il plugin per gli eventi ma non riesco a far comparire nessun comado per poter impostare un evento.
Ho spuntato in admin il flag per abilitare la cosa ma a quanto pare non vedo nessun link per creare un evento: come funzionano?
Configurazione:

- WPMU 2.9.2
- BP 1.2.x
- Custom Theme

Grazie.

daniele Luglio 14, 2010

Sono stato assente per un po’ :)
Ma non è che è stata cambiata la versione del plug-in?

Lascia un commento