Plugin für Zugriffsschutz bei bestimmten erweiterten Seiten?

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
pfuchs
Regular
Posts: 29
Joined: Mon Aug 22, 2005 5:33 pm

Plugin für Zugriffsschutz bei bestimmten erweiterten Seiten?

Post by pfuchs »

Hallo Forumer,

ich würde gerne bei einigen Blogbeiträgen die Ansicht des kompletten Artikels erst nach (kostenloser) Registration erlauben.

Sollte idealerweise so laufen, dass ich im Admintool einstelle welche Artikel zugriffsgeschützt werden sollen.

Falls ein Besucher nun für einen dieser Artikel den ganzen Text lesen möchte, sollte er auf eine Zwischenseite kommen, die ihn darüber informiert dass er sich zuerst registrieren bzw. einloggen muss.

Hört sich jetzt evtl. etwas versponnen an und wahrscheinlich gibt es auch kein Plugin dafür - aber fragen kostet nichts und einen sinnvollen Grund hat meine Anfrage schon auch. ;-)

Andererseits habe ich das Plugin "Hide entries for non-registered users" gefunden. Wird hier der ganze Artikel versteckt oder bleibt der "Aufreisser" öffentlich?



Beste Grüsse, Peter
Last edited by pfuchs on Thu Jan 05, 2006 2:36 pm, edited 1 time in total.
falk
Regular
Posts: 512
Joined: Tue Sep 27, 2005 10:16 am
Location: DD
Contact:

Post by falk »

Das klingt nach einer Funktion für ein neues Plugin. So auf Anhieb fällt mir nicht ein, das es schon gehen würde.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Also das kann man alles größenteils per Smarty-Templating lösen.

Als erstes benutzt Du das Plugin "Erweiterte Eigenschaften"und erstellst ein neues Custom Field (vergessen wie das in deutsch lautet), das Du "Schutz" nennst. Wenn Du dann einen Artikel erstellst, hast Du im unteren Bereich dein Feld "schutz". Für die Artikel die geschützt werden sollen trägst Du dann "Ja" ein.

Dann editierst Du die entries.tpl datei deines templates (am besten vorher ein eigenes template erstellen und die benötigten dateien von templates/default/ rüberkopieren).

In der entries.tpl suchst Du Dir folgendes:

Code: Select all

            <div class="serendipity_entry_body">
                {$entry.body}
            </div>

            {if $entry.is_extended}
            <div class="serendipity_entry_extended"><a id="extended"></a>{$entry.extended}</div>
            {/if}

            {if $entry.has_extended and not $is_single_entry and not $entry.is_extended}
            <br /><a href="{$entry.link}#extended">{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$entry.title}</a><br />
            {/if}
Dieser Teil ist dafür zuständig, den erweiterten teil des Artikels zu zeigen.

Nun fügst Du eine Abfrage ein:

Code: Select all

            <div class="serendipity_entry_body">
                {$entry.body}
            </div>

            {if $entry.is_extended AND $is_logged_in}
            <div class="serendipity_entry_extended"><a id="extended"></a>{$entry.extended}</div>
            {/if}

            {if $entry.has_extended and not $is_single_entry and not $entry.is_extended}
            {if $is_logged_in}
            <br /><a href="{$entry.link}#extended">{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$entry.title}</a><br />
            {else}
            <br /><a href="http://www.deineseite.de/index.php?serendipity[subpage]=adduser">Bitte einloggen, um zu lesen</a><br />
            {/if}
Zusätzlich erstellst Du noch eine config.inc.php datei in deinem template verzeichnis mit diesem inhalt:

Code: Select all

<?php
$serendipity['smarty']->assign('is_logged_in', serendipity_userLoggedIn());
Dieser Code sorgt für eine neue smarty variable, mitder du prüfen kannst,ob ein user eingeloggt ist. Die Änderungen am Template sorgen dann dafür, dass der erweiterte eintrag nur in solchen fällen gezeigt wird.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Guest

Post by Guest »

DANKE!
Post Reply