Sofern Du das custom_index-Plugin verwendest, sollte auf der Indexseite ja bereits ein Widget mit den neuesten Mitgliedern der Seite angezeigt werden. Ist dies bei Dir der Fall? Dann kann ich mir diesen Teil der Erklärung sparen. :-)
Ich nehme an, dass Du nicht grundsätzlich eine Walled Garden-Seite betreiben willst, bei der bis auf wenige Ausnahmen die Seiten für nicht-angemeldete Besucher sowieso nicht zugänglich sind, sondern dass Du nur den Zugriff auf die Profilseiten sperren willst. Korrekt? Andernfalls wäre es wohl einfacher, bei aktivierter Walled Garden-Option (oder Verwendung des Login Required-Plugins) für die Seiten, die nicht gesperrt sein sollen, Ausnahmen zu machen.
Sperren nur der Profilseiten aber weiterhin Anzeigen der Profilbilder (wo immer sie auf der Seite außerhalb der Profilseiten angezeigt werden) kann man unter Verwendung des 'route' Plugin-Hooks erreichen. Dafür mußt Du entweder ein kleines Plugin schreiben oder den folgenden Code in ein schon vorhandenes Plugin hinzufügen (beispielsweise ein Plugin, dass alle solche kleinen Modifikationen zusammenfaßt). Ich würde Dir abraten, den Code in ein Core-Plugin aufzunehmen, da Du ansonsten permanent aufpassen mußt, keine Änderungen zu verlieren, wenn Du Deine Seite mal aktualisierst.
In der init-Funktion des Plugins Deiner Wahl wird die neue Callback-Funktion für den 'route' Plugin-Hook registriert:
elgg_register_plugin_hook_handler('route', 'profile', 'profile_deny_logged_out');
und dann noch diese Callback-Funktion definiert:
function profile_deny_logged_out($hook, $type, $return, $params) {
// Logged in users can access profile pages
if (elgg_is_logged_in()) {
return $return;
}
if ($return['handler'] == 'profile') {
forward(REFERER);
return false;
} else {
return $return;
}
}
Damit wird dann für nicht-angemeldete Besucher der Zugriff auf die Profilseiten unterbunden (es passiert scheinbar gar nichts).
Schon mal vorsorglich für Elgg 1.9: anstatt $return['handler'] muss hier in der Callback-Funktion $return['identifier'] verwendet werden. Ansonsten bleibt der Code gleich.
UFFF...
Ich glaube du hast mich gerade ein wenig überfordert haha
Also: Ich habe meine Community im allgemeinen auf registrierte Mitglieder beschränkt.Cunstom-Index 1.8 ist aktiv, durch ein anderes Plugin (Liang Lee Zhuye) habe ich einen Teil der Startseite geändert und somit auch die Möglichkeit HTML Code zu verwenden.
Dann ist es wohl gerade andersherum als ich dachte: wenn Deine Seite auf registrierte User beschränkt ist, können nicht angemeldete Besucher nicht auf die Profilseiten zugreifen. Aber die neuesten User werden aufgrund der Verwendung des Liang Lee Zhuye-Plugins nicht auf der Startseite angezeigt.
Ich bin nicht gerade ein Freund der Plugins dieses Entwicklers (ziemlich chaotischer Code, Verknüpfung mit dem "Framework" dessen Sinn sich mir noch nie erschlossen hat...). Mit HTML-Code alleine wirst Du aber leider die neuesten Mitglieder nicht angezeigt bekommen. Die Information über die Mitglieder muss ja irgendwie aus der Datenbank abgerufen werden und das geht nur mit php (und Funktionen der Elgg-API).
Im custom_index-Plugin wäre der Code schon drin (die neusten Mitglieder werden wahrscheinlich auf Deiner Seite auch auf der Indexseite angezeigt, sofern man angemeldet ist). Der Code, um die Mitglieder aus der Datenbank abzurufen und darzustellen, ist nicht so kompliziert:
//get the newest members who have an avatar
$newest_members = elgg_list_entities_from_metadata(array(
'metadata_names' => 'icontime',
'type' => 'user',
'limit' => 10,
'full_view' => false,
'pagination' => false,
'list_type' => 'gallery',
'gallery_class' => 'elgg-gallery-users',
'size' => 'small',
));
echo elgg_view_module('featured', elgg_echo("custom:members"), $newest_members, array('class' => 'elgg-module-highlight'));
Die Frage ist nur: wohin mit dem Code? Du müßtest den Code im Liang Lee Zhuye-Plugin einbauen. Es ist mir aber nicht ganz klar, in welcher Datei und wo genau innerhalb der Datei. Ohne Walled Garden wäre es wahrscheinlich in LiangLeeZhuye/views/default/page/layouts/custom_index.php. Vielleicht aber auch mit Walled Garden in dieser Datei. Oder der Code muss mit Walled Garden in eine der Dateien in LiangLeeZhuye/WalledGarden/views/default/page/ (inklusive dem Unterverzeichnis darin).
Du kannst mal probieren, den obigen Code in diesen Dateien entweder direkt nach der Zeile
LiangLee_view('LiangleeFramework', 'forms/login');
oder der Zeile
LiangLee_view('LiangleeFramework', 'forms/reg');
einzubauen. Dann sollte ein Widget mit den neuesten Mitgliedern unterhalb des Login-Widgets bzw. der Registrierungsmaske angezeigt werden. Ich hab das allerdings jetzt nicht selbst ausprobiert, daher kann ich nicht garantieren, dass es funktioniert bzw. dass es gut aussieht.
hi,
genau sowas suche ich auch, aber finde die Lösung mit dem entfernen der"All" ansicht nicht gerade schön, da ich auf der Index trotzdem alles sehen kann. Gibt es da eine Möglichkeit, ausser das Netzwerk auf vollst. Privat umzustellen. Idealerweise eine Plugin nur für Heißer Draht und Pinnwand.. gibt es sowas?
lg, nicyta
Das Problem ist, dass die Wire-Nachrichten (bzw. die entsprechenden Datenbankeintäge) keinen Access-Level zugewiesen bekommen. Es gibt dieses Plugin: http://community.elgg.org/plugins/851079/1.0/thewire-with-access-183. Damit wird den Nachrichteneinträgen wohl ein fester Access-Level zugewiesen. Diesen Access-Level könnte man anpassen. Perfekt ist das dann aber wohl immer noch nicht. Besser wäre es wohl, der Input-Form noch ein Eingabefeld hinzuzufügen, das die Konfiguration des Access-Levels für jede Nachricht separat ermöglicht.
Ich weiss ausserdem nicht, ob das verlinkte Plugin noch richtig funktioniert. Es ist schon lange nicht mehr aktualisiert worden!
danke, werd es einfach auf meinem testserver probieren.
lg, nicyta
"zweiter Stelle"... meinst Du zweite Stelle von oben? Das Plugin müßte dann eher weiter nach unten, beispielsweise auf jeden Fall unterhalb des custom_index plugins oder eines eventuell anderenen installierten Theme-Plugins. Nut wenn ein Plugin weiter unten in der Liste angeordnet ist, kann es die Views von anderen darüber angeordneten Plugins übersteuern.
Hallo,
danke für die Antwort aber ich habe bereits alle Positionen ausprobiert.
Ich hab jetzt mal mit meinem kaputten englisch versucht vom Entwickler eine Antwort zu bekommen.
Edit: Ich hab jetzt nur das Framework, das Custom-Index und dieses Plugin aktiviert; ändern tut sich nichts :(
Die Lösung:
Das Controlpanel von Liang Lee deaktivierenSimple Cache aktivieren (wenn man es einfach so aktiviert erhält man eine Fehlermeldung)
Jetzt ist das Controlpanel wieder aktivierbar.
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by Raül Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.