[Joomla] Modul für Special nicht sichtbar

Superroger

Cadet 1st Year
Registriert
Jan. 2011
Beiträge
10
Hallo,

in Joomla kann ja der Rechtetyp Special alles sehen, ich will aber das der Moderator (Rechtetyp Special) ein Modul nicht sieht. Geht das?


mfg
Roger
 
Geht mit der aktuellen Joomla-Version (1.5) leider nicht. Kannst es höchstens über eine Zusatz-Komponente für die erweiterte Rechtevergabe realisieren.
 
@ConCAD: Die aktuelle Version ist 1.6, nicht 1.5

@Superroger: Du könntest es über eine kleine Änderung im Template realisieren, indem du das Modul in eine bisher ungenutzte Position legst, dann im Template per PHP den Usertype überprüfst, und die Position dann entweder anzeigst oder auch nicht.

Ich hab sowas mal für die Anmeldung gebastelt:
PHP:
<?php
  $user = &JFactory::getUser();
  $userId = $user->get('id');
  if (!$userId) {
    ?><jdoc:include type="modules" name="user1" style="xhtml" /><?php
  }
?>
Hier lag das Modul "Anmeldung" auf der Position "user1", direkt unter "left", sollte aber nur für nicht angemeldete Leute sichtbar sein.

Das ganze passiert im Template direkt in der index.php, dort natürlich an der passenden Stelle.

Wenn du statt der ID den usertype (so wie er in der Datenbank steht, also auf Englisch) kontrollierst, sollte es klappen.
 
@Cobinja: Hast recht, gibts allerdings erst seit 10. Januar 2011.
 
Ich weiss, nur geht es in diesem Thread um Benutzerrechte. Und da ist 1.6 wesentlich weiter als 1.5, so dass z.B. Superrogers Problem in 1.6 ohne Template-Hacks gelöst wird.
 
Guten Morgen,

ich habe ein ähnliches Problem, ich ein Modul das für den Moderator(ID=62 ) und Admin(ID=63) nicht angezeigt werden soll. Nun habe ich versucht es über das Template mit folgendem Code machen.
PHP:
<?php
defined('_JEXEC') or die('Restricted access');
$user = JFactory::getUser();
?>
[...]
<?php if ( $user->get( 'gid' ) == 25 ): ?>
<jdoc:include type="modules" name="sadmin" style="xhtml" />
<?php endif; ?>

Hier kommt schon mein erstes Problem, wie soll ich den Code umschreiben damit eine Position im Template für die beiden IDs nicht angezeigt wird?

Und hier ist der Code im Template für die Position left. Ich will eine zweite Position Name:"admin", die gleich wie über left ist (am linken Rand) wie stell ich das an?
PHP:
<jdoc:include type="modules" name="banner1" style="artstyle" artstyle="art-nostyle" />
<?php echo artxPositions($document, array('top1', 'top2', 'top3'), 'art-block'); ?>
<div class="art-contentLayout">
<?php if (artxCountModules($document, 'left')) : ?>
<div class="art-sidebar1"><?php echo artxModules($document, 'left', 'art-block'); ?>
</div>
<?php endif; ?>
<div class="art-<?php echo artxCountModules($document, 'left') ? 'content' : 'content-wide'; ?>">



danke im vorraus

gruß Madagaska
 
Mit
Code:
$user->get('usertype')
bekommst du den aufrufenden Benutzertyp. Da steht dann sowas drin wie z.B. "Super Administrator" oder "Moderator". Damit kannst du dann entscheiden, ob deine neue Position angezeigt werden soll oder nicht.

Das ganze könnte dann z.B. so aussehen:
PHP:
<?php
$user = &JFactory::getUser();
$usertype = $user->get('usertype');
if (artxCountModules($document, 'admin') && ($usertype == 'Moderator' || $usertype == 'Administrator')) : ?>
<div class="art-sidebar1"><?php echo artxModules($document, 'admin', 'art-block'); ?>
</div>
<?php endif; ?
Ist zwar ungetestet, sollte aber so funktionieren.
 
Zurück
Oben