PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Links zu Coppermine Galerie in postbit wenn Bilder vorhanden sind



alfisti.net
07.08.2004, 11:54
Ciao,

das ist eigentlich kein Hack aber ich wusste nicht wohin damit.

Da ich mich mit php so gut wie gar nicht auskenne und mir die Zeit fehlte das ganze "ordentlich" zu machen, habe ich folgende einfache Lösung gefunden um im postbit einen Link zur Coppermine Galerie einzubauen, der nur angezeigt wird, wenn auch tatsächlich ein Bild vorhanden ist.


Beispiel: http://www.alfa-forum.com/showthread.php?t=29404
Rechts oben die Links mit dem Auto davor.


Folgendes ist zu tun:

1.
Erstelle ein custom profil field: "radio button"
- Option Nein/Ja
- Set Default to: YES
- Field required: YES
- Field hided in profil: NO (IMPORTANT!!)
- Field searchable: NO
- Show on Memberlist: NO
- Allow user to input their own value: NO
- Which page display option: this is your choice!
Merke Dir die field ID, die ist später wichtig!

2.
Bearbeite das postbit-template
Füge den folgenden Code an die Stelle, an der ein Link zur Galerie erscheinen soll:



<if condition="$post[field1] == 'Ja'"><div>
<img src="link/zu/Deinem/icon.gif" border="0" alt="Zeige Galerie-Bilder von $post[username] ">
<a target="_blank" href="http://www.deinedomain.de/galerie/thumbnails.php?album=lastupby&uid=$post[userid]">Zeige Galerie-Bilder von $post[username]</a>
</div></if>


WICHTIG: Ändere "$post[field1]" zu der Field ID Deines neu angelegten Custom Field. Ändere die Links so, dass sie auf Dein Forum/Galerie verweisen ;)

2a
Um persönliche Alben zu linken gib folgendes ein:


<if condition="$post['catuserid'] = $post['userid'] + 10000"></if>

<if condition="$post[field2] == 'Ja'"><div>
<img src="link to your/icon.gif" border="0" alt="Album of $post[username] ">
<a target="_blank" href="http://www.yourdomain.com/gallery/index.php?cat=$post[catuserid]">Album von $post[username] </a>
</div></if>

Vielen Dank an Xeon für die catuserID Lösung :)

3.
Ändere die Datei forumlinks.php:
Die FieldID und der Prefix für die Coppermine Tabellen müssen angepasst werden!
$DB_site->query('UPDATE userfield,COPPERMINEPREFIX_pictures SET userfield.field1 = "Ja" WHERE userfield.userid = COPPERMINEPREFIX_pictures.owner_id');

Speichere die angehängte Datei "forumlinks.php" in: includes\cron

4.
Erzeuge einen neuen Task im Admin CP (dritte Gruppe von unten im linken Menü)
Name: Forumlinks
Alles andere mit "*" oder wie Du es sonst haben möchtest.
Filename: ./includes/cron/forumlinks.php

Das ist alles.
Der Cronjob wird nun täglich überprüfen welcher User Bilder in der Galerie hat und das Custom Feld entsprechend mit "Ja" füllen.
Das Postbit Template zeigt nur dann die Links, wenn das Custom Field gefüllt ist.

Ich weiss das dies eine Krücke ist, da mir aber der Skill und vor allem die Zeit fehlt bis jemand mal was ordentliches in PHP macht, tut es die Lösung auch.

Schönes Wochenende
André

Dies ist ein Crossposting zum englischen Coppermine Forum

stonner
05.06.2006, 04:13
vielen dank, das ist genau das, was ich brauchte!

wie kann ich den Link zur user-gallerie auch im userprofil einfügen?

vielen Dank

PrinzEmu
29.09.2006, 18:56
vielen dank, das ist genau das, was ich brauchte!

wie kann ich den Link zur user-gallerie auch im userprofil einfügen?

vielen Dank

das wüsste ich auch gerne.....

LG
Peter

Merlin_
21.10.2006, 17:45
Hallo,
ich habe die Änderungen im Template postbit_legacy durchgeführt


<if condition="$post[field6] == 'Ja'"><div>
<a target="_blank" href="http://www.omega-senator.de/galerie/thumbnails.php?album=lastupby&uid=$post[userid]">Zeige meine Galerie</a>
</div></if>

Der Link erscheint jedoch nur, wenn die Benutzer die Option im Profil einmal auf "Nein" und dann wieder auf "Ja" setzen. Ausserdem scheint der cronjob nicht ausgeführt zu werden (sonst steht nach dem Ausführen von cronjobs "erledigt) und es erscheint auch nichts vom cronjob im Logging, obwohl ich das aktiviert habe. Hat jemand eine Idee dazu ?
Gruss,Micha

Mystics
23.10.2006, 22:27
Du musst einmalig bei allen Benutzern ein "Ja" hinterlegen:

Query mit phpMyAdmin oder im Admin-Kontrollzentrum ausführen:
UPDATE userfield SET field6 = 'Ja' WHERE field6 <> 'Nein';

Merlin_
24.10.2006, 17:01
Hallo Mystics,
vielen Dank, jetzt wird der Link allerdings bei jedem User angezeigt und es sollte doch eigentlich so sein:


der nur angezeigt wird, wenn auch tatsächlich ein Bild vorhanden ist.


Ist zwar etwas lästig, wenn User jetzt auf den Link eines anderen Users klicken und angezeigt bekommen "Keine Datei zum Anzeigen vorhanden" aber besser als voher ;). Hast Du vielleicht noch eine Idde, warum der cronjob nicht läuft ? Hmmm,sollte man meine Fragen evtl. ins "3.5 Hack" verschieben ?
Gruss,Micha

Mystics
24.10.2006, 22:20
Warum das nicht läuft? Weil der Cronjob 2 Jahre alt ist und überhaupt nicht unter 3.5/3.6 funktionieren kann :rolleyes:

Frage bitte in unseren Hacking-Foren nach einer neuen Version:
http://www.vbhacks-germany.org/forum.php