forum.coppermine-gallery.net

Support => Deutsch (German) => Language Specific Support => cpg1.5.x Deutsch (German) => Topic started by: sindbad5 on August 09, 2014, 12:04:03 pm

Title: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 09, 2014, 12:04:03 pm
Auf dem Loginformular soll stehen, dass die Geschäftbedingungen und rechtlichen Hinweise zu den Fotos anerkannt werden.

Wird dies vom User bestätigt, sind Highresolution-Downloads möglich, sonst nicht.

Das bedeutet, wer sich einloggt, ohne den Punkt zu bestätigen, sieht ev. Alben, die nicht Eingeloggte nicht sehen können, kann aber keine Downloads von hochaufgelösten Dateien auslösen.

Würde man die Bestätigung von rechtlichen Hinweisen und der Geschäftbedingungen bei jedem Higres-Download abfragen, nervt das zu sehr. Auf dem Loginformular ist das gut aufgehoben.
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 10, 2014, 07:23:52 am
Kann man diese Erweiterung hinzufügen?
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 14, 2014, 01:35:15 pm
Hier wieder die Problematik des Wortes "Download": sobald eine Datei vom Server an den Browser übertragen wurde, ist der "Download" praktisch fertig, obwohl der Benutzer das Bild ggf. (noch) nicht auf seinem Rechner abgespeichert hat. Unabhängig davon, dass sich das erstmal relativ fehleranfällig anhört, gehe ich davon aus, dass angemeldete Personen, die die AGB nicht bestätigt haben nur Bilder in Zwischengröße ansehen dürfen (also keinen Link zur Vollbildansicht erhalten). Ist es das, was du beabsichtigst?
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 14, 2014, 01:44:08 pm
Genau, die Leute, die sich anmelden, ohne die AGB zu bestätigen, können keine hochaufgelösten Bilder sehen.

Wenn sie sich anmelden ohne die AGB zu bestätigen, hätte das unter Umständen dennoch Vorteile für sie, weil sie dann Alben sehen können, die nicht öffentlich sind. Aber zur Entsperrung der hochaufgelösten Dateien muss ertsmal ein Bestätigung der Regeln erfolgen.

Tom
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 14, 2014, 01:48:30 pm
Ich denke mal kurz laut 8) Ob die AGB bestätigt wurden oder nicht, speichert man am Besten in einem Cookie. Dann kann man später abfragen, ob dieses Cookie existiert oder nicht und entsprechend einen Link anbieten oder nicht. Der Admin sollte vermutlich immer Zugriff auf die hohe Auflösung haben.

Ich schaue mal, ob ich sowas in den nächsten Tagen umsetzen kann.
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 20, 2014, 02:16:57 pm
In login.php suchst du nach
Code: [Select]
                  <tr>
                      <td colspan="2" align="center" class="tableb"><label for="remember_me">{$lang_login_php['remember_me']} </label><input name="remember_me" id="remember_me" type="checkbox" class="checkbox" value="1" tabindex="3" /></td>
                  </tr>
und fügst darüber
Code: [Select]
                  <tr>
                      <td colspan="2" align="center" class="tableb"><label for="agb">Hiermit akzeptiere ich die <a href="agb.php" target="agb">AGB</a></label><input name="agb" id="agb" type="checkbox" class="checkbox" value="1" tabindex="3" /></td>
                  </tr>
ein.

In bridge/coppermine.inc.php suchst du nach
Code: [Select]
                            // If this is a 'remember me' login set the remember field to true
                            if ($remember) {
                                    $remember_sql = ",remember = '1' ";
                                    // Change cookie life time to 2 weeks
                                    if (CPG_COOKIES_ALLOWED) {
                                        setcookie( $this->client_id, $this->session_id, time() + (CPG_WEEK*2), $CONFIG['cookie_path'] );
                                    }
                            } else {
                                    $remember_sql = '';
                                    // Kill the cookie when closing the browser
                                    if (CPG_COOKIES_ALLOWED) {
                                        setcookie( $this->client_id, $this->session_id, 0, $CONFIG['cookie_path'] );
                                    }
                            }
und ersetzt es durch
Code: [Select]
                            // If this is a 'remember me' login set the remember field to true
                            $superCage = Inspekt::makeSuperCage();
                            if ($remember) {
                                    $remember_sql = ",remember = '1' ";
                                    // Change cookie life time to 2 weeks
                                    if (CPG_COOKIES_ALLOWED) {
                                        setcookie( $this->client_id, $this->session_id, time() + (CPG_WEEK*2), $CONFIG['cookie_path'] );
                                        if ($superCage->post->keyExists('agb')) {
                                            setcookie( $CONFIG['cookie_name'].'_agb', 1, time() + (CPG_WEEK*CPG_WEEK), $CONFIG['cookie_path'] );
                                        }
                                    }
                            } else {
                                    $remember_sql = '';
                                    // Kill the cookie when closing the browser
                                    if (CPG_COOKIES_ALLOWED) {
                                        setcookie( $this->client_id, $this->session_id, 0, $CONFIG['cookie_path'] );
                                        if ($superCage->post->keyExists('agb')) {
                                            setcookie( $CONFIG['cookie_name'].'_agb', 1, 0, $CONFIG['cookie_path'] );
                                        }
                                    }
                            }

                            if (!$superCage->post->keyExists('agb')) {
                                setcookie( $CONFIG['cookie_name'].'_agb', 0, time() - CPG_WEEK, $CONFIG['cookie_path'] );
                            }


Damit hätten wir schon mal den Cookie. Nun müssen wir den Cookie an geeigneter Stelle auswerten. Dafür kopieren wir die Funktion theme_html_picture aus themes/sample/theme.php in die theme.php-Datei deines Themes, falls sie dort noch nicht existiert.

Dann suchst nach
Code: [Select]
if (!USER_ID && $CONFIG['allow_unlogged_access'] <= 2) {und ersetzt es an beiden Stellen durch
Code: [Select]
                if (USER_ID && USER_ACCESS_LEVEL == 3 && $superCage->cookie->getInt($CONFIG['cookie_name'].'_agb') !== 1) {
                    $pic_html = '<a href="javascript:;" onclick="alert(\'Du musst den AGB zustimmen\');">';
                } elseif (!USER_ID && $CONFIG['allow_unlogged_access'] <= 2) {
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 21, 2014, 01:09:46 pm
Hallo, mit den Modifikationen erscheint ein anklickbares Feld im Loginformular, doch wenn es nicht aktiviert wird, kann man dennoch die Higresdateien runterladen. Ich habe das auf mehreren Rechnern ausprobiert, um auszuschießen, dass Dateien im Cache des Browser dieses Verhalten erzeugen. Die Änderungen in der theme.php scheinen keine Auswirkung zu haben.

Am Wochenende probiere ich das an einem frischen Projekt nochmal aus.

Tom
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 21, 2014, 01:13:46 pm
Die Modifikation bietet lediglich den Link zum Bild in Vollgröße nicht an, wenn der Haken nicht gesetzt wurde. Der Direktaufruf der Datei ist nach wie vor möglich, da Coppermine in diesem Fall gar nicht involviert ist. Wie genau hast du denn getestet?
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 21, 2014, 02:22:29 pm
Ich habe die entsprechenden Dateien modifiziert und ausgetauscht. Dann habe ich einen neuen Benutzer ohne Adminrechte angelegt.
Danach alle Programme geschlossen, CCleaner aufgerufen, temp und caches gelöscht, Rechner neugestartet und die Installation wieder aufgerufen.

Dann habe ich mich unter dem neuen Benutzernamen eingeloggt, ohne die AGB zu bestätigen. Ergebnis, siehe Screenshot. Das Login habe ich auf zwei Laptops wiederholt, auf denen keine der ursprünglichen Dateien im Cache sein konnte.

Ich möchte zu der Installation hier keinen Link setzen, weil ich meine Fotos unter einer Domain auf HTML-Seiten und parallel dazu in einer älteren Copperminedatebank und zusätzlich in Pixtacy habe. Das neue Projekt soll derzeit noch nicht von Google und Co erfaßt werden.

Am Wochenende kann ich an der älteren Datenbank (http://www.medienarchiv.com/a-archiv/) einen zweiten Versuch starten, um zu checken, ob es damit geht.   

Tom
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 25, 2014, 10:47:25 am
siehe Screenshot

Das scheint mir kein Standard-Feature von Coppermine zu sein. Meine Modifikation deaktiviert das Popup, in dem das Bild in voller Größe zu sehen ist, welches sich beim Klick auf das Bild in Zwischengröße öffnet.

Wie wird denn die Download-Schaltfläche generiert? Über ein Plugin/Theme/Modifikation?
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 25, 2014, 11:17:06 am
Verstehe ...  Ich habe die Plugins ' Secured fullsize download (fullsize_access)' und ' Log fullsize access (log fullsize access)' aktiviert. Eines der beiden ist dafür verantwortlich.

Vermutlich müßte Stramms Shoppingcart alle von mir gewünschten Funktionen enthalten: Higres-Download nur für berechtigte eingeloggte Benutzer, Protokoll und Anerkennung der Geschäftsbedinungen nebst rechtlichen Hinweisen zur Verwendung der Fotos. Doch reagiert er nicht auf Anfragen und scheint nicht mehr aktiv zu sein.

Deswegen taste ich mich mit deiner Hilfe und Plugins an eine alternative Lösung heran.

Tom

Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 25, 2014, 11:40:50 am
Die Anpassungen in login.php und bridge/coppermine.inc.php  müssen beibehalten werden, die in deinem Theme kannst du rückgängig machen.

Dann öffnest du plugins/fullsize_access/fullsize_check.php und ersetzt
Code: [Select]
if( USER_ID ){durch
Code: [Select]
if( USER_ID && $superCage->cookie->getInt($CONFIG['cookie_name'].'_agb') === 1){
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 26, 2014, 12:32:34 am
Leier habe ich zuwenig Ahnung von php, um die Codezeile prüfen zu können. Mit der veränderten Datei erscheint nach einem Klick auf ein Thumbnail nur ein weisser Bildschirm, wenn ich mich als normaler User einlogge.

Tom
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 26, 2014, 09:04:25 am
Hoppla. Füge vor der o.g. Zeile bitte noch
Code: [Select]
$superCage = Inspekt::makeSuperCage();ein.
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 27, 2014, 11:33:33 pm
Leider klappt das nicht. Zwar sehe ich die Thumbnails und wieder die Previews, doch darunter steht immer: "Higres Download nur mit Login" egal, ob man die AGB klickt oder nicht. 

Tom
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 28, 2014, 09:07:03 am
Ich habe es gerade getestet und bei mir erscheint dann
Quote
Download:   Fullsize download for registered users only! Please, Register or login

Zum Vergleich, der Inhalt meiner fullsize_check.php-Datei:
Code: [Select]
<?php
function fullsize_check_user(){
$superCage Inspekt::makeSuperCage();
if( USER_ID && $superCage->cookie->getInt($CONFIG['cookie_name'].'_agb') === 1){
return(true);
} else{
return(false);
}
}
?>
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 28, 2014, 09:48:10 am
Das ist wie bei mir, abgesehen davon, dass ich die Meldung in deutscher Sprache sehe.

Sie erscheint, wenn ich mich einlogge und die AGB bestätige, aber auch wenn ich sie nicht bestätige.

Möchte ich mich vor einem konkreten Download nochmal einloggen, sagt Coppermine, du bist schon eingeloggt.

Für den Higresdownload müssen zwei Bedingungen erfüllt sein:  Login und Bestätigung der AGB.

Tom

   



Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 28, 2014, 09:50:24 am
Bitte füge vor
Code: [Select]
$superCage = Inspekt::makeSuperCage();noch
Code: [Select]
global $CONFIG;ein.
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 28, 2014, 03:09:29 pm
Das sieht gut aus. Den Text zum Login bei erfolgter Anmeldung ohne Bestätigung der AGB werde ich entsprechend anpassen und dann wäre das geklärt.  Danke sehr!

Tom
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 28, 2014, 08:08:31 pm
Bitte. Und sorry für die ganzen Flüchtigkeitsfehler, aber ich habe derzeit nicht die Zeit um alles zunächst zu testen bevor ich es veröffentliche.
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 28, 2014, 08:37:10 pm
Sorry ist unötig. Ich habe dir zu danken. Du leistest sehr viel für Coppermine. Deine Geduld beim Beantworten so vieler Fragen von vielen Leuten ist beachtlich.

Tom   
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 29, 2014, 12:24:55 am
Es hat sich noch ein Wunsch ergeben.

Wenn jemand eingeloggt ist,ohne die AGB zu bestätigen, ist folgender Satz zu sehen:

Higres Download nur mit erneutem Login und Bestaetigung der AGB

Klickt jemand drauf, erscheint die Meldung 'Fehler. Du bist schon angemeldet!'

Es wäre es gut, wenn derjenige ausgeloggt wird und das Loginformular erscheint, weil die Fehlermeldung die Besucher irritiert.
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 29, 2014, 08:57:03 am
ausgeloggt wird und das Loginformular erscheint
Dafür müsstest du die Datei logout.php editieren, da standardmäßig immer auf index.php umgeleitet wird. Die Modifikation wäre simpel, aber du musst sie dann nach jedem Update wiederholen. Wäre es nicht auch möglich, anstatt den Benutzer abzumelden ihn auf eine Seite mit den AGB zu leiten, wo er diese bestätigen kann und danach wieder direkt zu dem vorher geöffneten Bild? Dafür musst du keine Coppermine-Dateien modifizieren.
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 29, 2014, 09:16:51 am
Das wäre super!

Derzeit blende ich meine AGB als iframes an verschiedenen Orten ein, damit ich nicht vergesse, eine von vielen Versionen zu verändern, falls das nötig ist. In deinem Code hast du als dummy 'agb.php' eingefügt. Die Adresse habe ich mit der URL von meinen AGB ausgetauscht. Das ist okay.

Für deinen Vorschlag wäre es besser, wenn es wirklich die agb.php gäbe und das iframe mit den AGB dort zu sehen ist.
Die agp.php enthält somit das iframe mit den AGB und ein Kästchen zum Bestätigen.
AGB sind lang. Daher wäre zusätzlich eine Scrollfunktion sinnvoll, wie sie auf vielen Webseiten mit dem gleichen Inhalt und  Zweck zu sehen ist.

Tom

Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 29, 2014, 11:04:08 am
Deine Datei agb.php (oder wie auch immer du sie nennen magst), muss im Wurzelverzeichnis von Coppermine liegen und sieht in etwa so aus:
Code: [Select]
<?php

define
('IN_COPPERMINE'true);
require(
'include/init.inc.php');

$pid $superCage->get->getInt('pid');

if (
$superCage->get->keyExists('agb')) {
    if (
$superCage->get->getInt('agb') === 1) {
        
setcookie$CONFIG['cookie_name'].'_agb'1time() + (CPG_WEEK*CPG_WEEK), $CONFIG['cookie_path'] );
    } else {
        
setcookie$CONFIG['cookie_name'].'_agb'0time() - CPG_WEEK$CONFIG['cookie_path'] );
    }
    
header("Location: displayimage.php?pid=$pid#top_display_media");
}

pageheader('AGB');
echo <<<EOT
    AGB:
    <iframe src="http://en.wikipedia.org/wiki/Foobar" width="100%" height="500"></iframe>
    <a href="
$CPG_PHP_SELF?pid=$pid&amp;agb=1">Annehmen</a>&emsp;<a href="$CPG_PHP_SELF?pid=$pid&amp;agb=0">Ablehnen</a>
EOT;

pagefooter();
?>

Den Link zu dieser Datei wirst du vermutlich in plugins/fullsize_access/codebase.php anpassen. Dabei ist zu beachten, dass du den Parameter pid mit anhängst.

Der Originalcode sieht so aus:
Code: [Select]
$info['Download'] = 'Fullsize download for registered users only! Please, <a href="register.php" >Register</a> or <a href="login.php" >login</a>';
Der angepasste Code sähe in etwa so aus:
Code: [Select]
        global $pid;
        $info['Download'] = 'Higres Download nur mit Best&auml;tigung der <a href="agb.php?pid='.$pid.'">AGB</a>';
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 29, 2014, 01:49:37 pm
Okay, damit ist die agb.php entstanden und wird korrekt aufgerufen.
Unten kann ich Annehmen oder Ablehnen anklicken.
Danach schließt sich das Fenster und der Preview ist wieder zu sehen.
Doch die ursprüngliche Meldung 'Higres Download nur mit Bestätigung der AGB' bleibt. 
Der Link müßte nach der Bestätigung der AGB freigegeben sein.
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: Αndré on August 29, 2014, 01:56:01 pm
Kannst du bitte deine Browser-Cookies überprüfen, welchen Inhalt der "_agb"-Cookie hat, bzw. ob er überhaupt existiert? Am besten vor dem Testen diesen Cookie löschen und dann schauen, ob er beim Annehmen der AGB erstellt wird (der Inhalt sollte in diesem Fall "1" sein).
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 29, 2014, 02:29:48 pm
Das Cookie ist nicht zu finden. Mozilla zeigt es nicht in der Cookieliste und eine Suchen nach .txt Dateien nebst Begutachtung der jüngsten Dateien zeigte keine _agb.txt. Dito im Internetexplorer.

Jedoch wird der Download für Highres freigegeben, wenn man gleich beim Einloggen den Haken neben 'AGB einverstanden' setzt.

Tom
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on August 29, 2014, 11:38:48 pm
Beim Login mit gleichzeitigem Bestätigen der AGB entsteht ein Cookei namens cpg15_agb. Der Inhalt ist '1'.

Lösche ich die Chronik und alle Cookies, öffne erneut Coppermine und logge mich ein, ohne, dass die AGB bestätigt werden, entsteht kein Cookie. Unter dem Preview steht, dass der Download nur nach Bestätigung der AGB möglich ist. Ich klicke drauf, sehe die AGB und klicke auf Annahmen. Dann lande ich wieder beim Preview unter dem das gleiche wie vorher steht. Es ist kein Cookie entstanden.

Tom       
 
Title: Re: Anerkennung der Geschäftsbedingungen
Post by: sindbad5 on September 03, 2014, 01:04:14 pm
Falls der letzte Punkt nicht zu lösen ist, würde ich die Funktion auf das erste Login beschränken und einfach eintragen, dass eventuell
ausgeloggt und danach wieder eingeloggt werden muss mit Besätigung der AGB, um den Higresdownload zu machen.

Tom