*push*
keiner eine idee? muss ich dann selbst so ein fuckin' aufwendiges plugin schreiben? :D
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellen*push*
keiner eine idee? muss ich dann selbst so ein fuckin' aufwendiges plugin schreiben? :D
hallo,
jetzt nicht schlagen! :) das einzige, was ich an joomla wirklich toll finde, ist diese modul-funktion. deshalb die frage, ob es so etwas für wordpress in plugin-form gibt? habe schon vergeblich nach etwas in der art gesucht.
für die, die es nicht kennen:
in joomla kann modul-positionen erstellen, die man in sein template einbaut. diesen modulpositionen kann man dann "modul-beiträge" zuweisen. das wichtige hier ist, dass man die auswahl einschränken kann. also ich hab z.b. eine modulposition "footer". dann lege ich die zwei "modul-beiträge" "footer1" und "footer2" an. "footer1" soll dann nur auf der startseite angezeigt werden und "footer2" auf allen restlichen seiten. das ganze funktioniert schön mit checkboxes, wo man auch einzelne beiträge wählen kann.
ist jemanden schon so etwas über den weg gelaufen? mit der wordpress widget funktion ist man an der stelle leider sehr eingeschränkt.
vielen dank im voraus!
phil
Hi Phil,
ich habe diese Problem bei mir mit dem Advanced Access Manager (plugin) gelöst.
Damit kann ich Berechtigungen verteilen und Zugriffe auf bestimmte Seiten sperren.vielleicht hilft Dir das ?
hey, ich habe ja kein problem. ich habe es gelöst :D
mit der advanced acces manager hat man allerdings das problem, dass man zu jedem benutzer extra noch einen rolle im plugin erstellen muss. und DIESER rolle kann man dann die seiten zuordnen. mit meiner lösung oben kann man diesen schritt überspringen, denn die daten werden über die custom fields gespeichert. wenn man bestimmten benutzergruppen beiträge zuordnen will, dann ist die lösung über das plugin oben sinnvoller. doch ich werde dann mit der zeit sicher 100+ benutzer anlegen, die nur auf bestimmte beiträge zugreifen dürfen.
mfg
phil
Hey, bin ganz neu hier - habe aber gleich mal etwas mitgebracht :)
Ausgangssituation
Ich brauchte eine Funktion/Plugin, um bestimmte Seiten nur für bestimmte Benutzer sichtbar zu machen. Geplant ist ein Downloadarchiv, wo man Zugänge für bestimmte Nutzer vergeben kann und diese sollten dann nur die für sie bestimmten Seiten sehen. Klingt relativ simpel - war es aber gar nicht.
Ich suchte tagelang nach Plugins oder sonstigen Lösungen und bin auf sehr viele Forenbeiträge gestoßen, wo dies gebraucht wurde. Allerdings überall mit der Antwort - geht nicht. Es gab einen Weg - allerdings viel zu umständlich, dies in Betracht zu ziehen :)
Lösung
Ich habe selbst etwas gebastelt. Ich habe ein Custom Write Panel angelegt wo alle Benutzer mit der Rolle "Abonnent" angezeigt werden - mit Checkbox zum abhaken.
Das wird dann gespeichert und vor der Ausgabe abgefragt, ob man der Benutzer ist. Admins haben immer Zugriff. Schaut es euch mal an - vielleicht hilft es dem ein oder anderen ja! :)
Ich hab das Custom Write Panel nach diesem Tutorial aufgebaut und dann dementsprechend erweitert.
Code für die functions.php
<?php
//////////////////////
// Benutzerverwaltung
//////////////////////
// Einstellungen
$key = "User";
$meta_boxes = array(
"userlist" => array(
"name" => "user")
);
// Erstellen
function create_meta_box() {
global $key;
if( function_exists( 'add_meta_box' ) ) {
add_meta_box( 'new-meta-boxes', ucfirst($key) . ' Visibility', 'display_meta_box', 'post', 'side', 'high' );
}
}
// HTML
function display_meta_box() {
global $post, $meta_boxes, $key;
echo '<div class="form-wrap">';
wp_nonce_field( plugin_basename( __FILE__ ), $key . '_wpnonce', false, true );
foreach($meta_boxes as $meta_box) {
$data = get_post_meta($post->ID, $key, true);
$blogusers = get_users('blog_id=1&orderby=display_name&role=subscriber');
foreach ($blogusers as $user) {
$boxes[] = $user->ID;
echo '<label class="user-options">';
echo '<input type="checkbox" name="'. $meta_box["name"].'[]" id="'.$meta_box["name"].$user->ID.'" value="'.$user->ID.'"';
if ($data[$meta_box['name']] <> "" ) {
if (in_array($user->ID, $data[$meta_box['name']])) {
echo ' checked="checked"';
}
}
echo '/>';
echo ' ' . $user->display_name;
echo '</label>';
}
}
echo '<p>Es werden hier alle Benutzer mit der Rolle <strong>Abonnent</strong> aufgelistet. Administratoren haben immer Zugriff.</p>';
echo '</div>';
}
// Meta Daten speichern
function save_meta_box($post_id) {
global $post, $meta_boxes, $key;
foreach($meta_boxes as $meta_box) {
$data[$meta_box[ 'name' ]] = $_POST[ $meta_box[ 'name' ]];
}
if (!wp_verify_nonce($_POST[ $key . '_wpnonce'], plugin_basename(__FILE__))) {
return $post_id;
}
if (!current_user_can('edit_post', $post_id)) {
return $post_id;
}
update_post_meta($post_id, $key, $data);
}
// Funktionen registrieren
add_action('admin_menu', 'create_meta_box');
add_action('save_post', 'save_meta_box');
?>
Alles anzeigen
Code im Template
<?php
// Prüfen, ob Wert in Array vorhanden - in_array() funktioniert hier nicht
function my_in_array( $needle, $haystack ){
if (is_array($haystack)){
return in_array($needle, $haystack);
}
else {
return false;
}
}
// Prüfen, ob eingeloggt
if ( is_user_logged_in() ) {
while (have_posts()) : the_post();
// Benutzerdaten abrufen
global $current_user;
get_currentuserinfo();
$getaccessuser = get_post_meta( $post->ID, 'User', true );
// Prüfen, ob Benutzer Daten abrufen darf (oder ob man Administrator ist)
if (my_in_array($current_user->ID, $getaccessuser['user']) || current_user_can('administrator')) {
// DEIN INHALT
}
endwhile;
}
// Ansonsten Weiterleitung auf Startseite
else {
wp_redirect(home_url()); exit;
}
?>
Alles anzeigen
Ich bin mir derzeit noch nicht sicher, ob ich daraus vielleicht ein Plugin machen soll. Was meint ihr? Zumindest gibt es dafür noch kein Plugin, was ich ja selbst auch sehr merkwürdig fand :)
mfg
Phil