Coppermine neueste Bilder Mod für SMF

      Coppermine neueste Bilder Mod für SMF

      Hallo!

      erstmal vielen dank für diesen mod! gefällt mir sehr gut!

      ich habe aber ein kleines problem und zwar zeigt er mir im smf zwar die neuesten bilder, aber auch die nicht öffentlichen.

      gibt es eine möglichkeit diesen mod so anzupassen dass man als neueste Bilder diejenigen sieht, entsprechend dem einloggzustand (gast oder mitglied) und eingeloggt natürlich dann abhängig von den berechtigungen.

      über hilfe würde ich mich freuen, da dieser zustand so natürlich nicht lange onine sein kann.

      grüsse
      clemens
      Hallo und willkommen im Netboard!

      Das Script liest zur Zeit lediglich alle Bilder aus der Galerie. Man könnte bestimmte Alben komplett verbieten, was so aber vermutlich auch nicht gedacht ist wenn ich dich richtig verstehe.
      Deine Galerie ist also an die Datenbank des SMF gekoppelt und die Alben sind je nach Benutzergruppe öffentlich oder nicht. Sehe ich das richtig?

      Dann müsstest du mir kurz sagen welche Bridge (ist es doch denke ich) du dafür verwendest. Also zwischen SMF und Coppermine.

      Gruß
      pattex
      GoHome! Arbeitszeitüberwachung! (@iOS AppStore)
      Reminder, Worktime, Arbeitszeit, Arbeit, Ueberwachung, Zeiten, Zeitenstempeln
      :dafür:
      Hallo! :)

      ja das verstehst du richtig. meine galerie ist mit smf1.1.7 gebridget und die alben sind benutzergruppenabhängig.

      welche bridge ist ne gute frage, ... wo sehe ich das denn? soweit ich weiss ging das so gut wie automatisch das bridging....

      danke und gruss
      clemens

      EDIT: ich habe cpg14x - evtl sagt das auch was über die bridge aus!?

      EDIT1: ok ich denke ich habs und vermute die bridge heisst smf10.inc.php

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Clemens“ ()

      Hallo,

      Ich bräuchte die Daten von der Tabelle cpg_albums und smf_membergroups(wenn das möglich ist). Kannst du mir auch per Mail senden an info@net-board.net
      Geht darum wie deine Gruppen heißen und welche ID sie haben.

      Habe zwar bereits eine Änderung gemacht, die nun nach Registriert, Gast und Admin unterscheiden kann, das dürfte aber in jedem Board verschieden sein. Brauche daher ein praktisches Beispiel aus dem laufenden Betrieb (also wie es bei dir eingerichtet ist).

      Gruß
      pattex
      GoHome! Arbeitszeitüberwachung! (@iOS AppStore)
      Reminder, Worktime, Arbeitszeit, Arbeit, Ueberwachung, Zeiten, Zeitenstempeln
      :dafür:
      Hab die Datenbanken erhalten und das Script entsprechend angepasst.

      Die Bilder werden nun angezeigt je nachdem in welchen Benutzergruppen der User ist.
      Alben, die für alle öffentlich sind, werden immer angezeigt.

      Man kann auch neue Nutzergruppen anlegen die dann ebenfalls unterschieden werden.
      Gäste bekommen die Gruppe "Newbie". Kann aber auch geändert werden, sodass Gäste wirklich nur öffentliche Alben sehen.

      Vor der Änderung solltest du die BoardIndex.php sichern.
      Änderungen:
      ###Datei: /smf/Sources/BoardIndex.php###

      Suche:
      // Coppermine Last Pictures(by net-board.net)

      füge darunter ein:

      Quellcode

      1. $usergroup=$user_info['groups'];
      2. if($user_info[is_guest]) $usergroup[0]=4;


      suche:
      $request = db_query("SELECT * FROM ".$pr."pictures...

      diese Zeile und darüber die Zeile mit $sql muss komplett ersetzt werden mit:

      Quellcode

      1. for($i=1;$i<count($usergroup);$i++){
      2. $sql1.="or a.visibility=".($usergroup[$i]+100)." ";
      3. }
      4. $sql = "SELECT * FROM ".$pr."albums as a,".$pr."pictures as p WHERE p.aid=a.aid AND (a.visibility=".($usergroup[0]+100)." ".$sql1." or a.visibility=0) ORDER BY p.pid DESC LIMIT ".$n."";
      5. $request = db_query($sql, __FILE__, __LINE__);


      Der ganze Abschnitt in der BoardIndex.php sollte dann so aussehen:

      Quellcode

      1. // Coppermine Last Pictures(by net-board.net)
      2. $usergroup=$user_info['groups'];
      3. if($user_info[is_guest]) $usergroup[0]=4;
      4. /* SETTINGS */
      5. $path="url"; // URL zu deiner Coppermine Gallerie
      6. $pr="prefix"; // Prefix deiner Coppermine Gallerie (SQL)
      7. $n="6"; // Anzahl der angezeigten Bilder
      8. $db_n="dbname"; // Datenbankname
      9. mysql_select_db($db_n)or die(mysql_error());
      10. for($i=1;$i<count($usergroup);$i++){
      11. $sql1.="or a.visibility=".($usergroup[$i]+100)." ";
      12. }
      13. $sql = "SELECT * FROM ".$pr."albums as a,".$pr."pictures as p WHERE p.aid=a.aid AND (a.visibility=".($usergroup[0]+100)." ".$sql1." or a.visibility=0) ORDER BY p.pid DESC LIMIT ".$n."";
      14. $request = db_query($sql, __FILE__, __LINE__);
      15. $position=0;
      16. .
      17. .
      18. .



      Viel Erfolg beim Umbau! :)
      GoHome! Arbeitszeitüberwachung! (@iOS AppStore)
      Reminder, Worktime, Arbeitszeit, Arbeit, Ueberwachung, Zeiten, Zeitenstempeln
      :dafür:
      Hallo Pattex!

      Super vielen Dank! Der Einbau hat geklappt. Und die Bilder sind den Berechtigungen entsprechende Thumbs. :)

      hab aber noch ne frage weil du schreibst:

      diese Zeile und darüber die Zeile mit $sql muss komplett ersetzt werden mit:


      dann schreibst du weiter unten:
      Der ganze Abschnitt in der BoardIndex.php sollte dann so aussehen:

      Quellcode

      1. ...
      2. mysql_select_db($db_n)or die(mysql_error());
      3. ...


      in der beschreibung wie die BoardIndex.php aussehen sollte, ist diese zeile $sql nicht ersetzt. soll ich diese zeile nun da lassen oder wie oben geschrieben komplett ersetzten?

      derzeit hab ich sie drin, genauso wie du meintest dass die BoardIndex.php aussehen soll.

      dann tritt folgendes auf, die bilder werden wunschgemäß angezeigt, doch der text unter den bildern ist nicht der "title" der Bilder sondern der Text des Albumnamens.
      ich würde aber lieber den "title" dort sehen.

      kannst du mir bitte sagen wie und wo ich das ändere?

      grüsse
      clemens
      Ok, so zeigst du unter den Bildern die Titel an:

      Ersetze diese Zeile:

      Quellcode

      1. $sql = "SELECT * FROM ".$pr."pictures as p,".$pr."albums as a WHERE p.aid=a.aid AND (a.visibility=".($usergroup[0]+100)." ".$sql1." or a.visibility=0) ORDER BY p.pid DESC LIMIT ".$n."";


      durch:

      Quellcode

      1. $sql = "SELECT * FROM ".$pr."albums as a,".$pr."pictures as p WHERE p.aid=a.aid AND (a.visibility=".($usergroup[0]+100)." ".$sql1." or a.visibility=0) ORDER BY p.pid DESC LIMIT ".$n."";


      Gruß
      pattex
      GoHome! Arbeitszeitüberwachung! (@iOS AppStore)
      Reminder, Worktime, Arbeitszeit, Arbeit, Ueberwachung, Zeiten, Zeitenstempeln
      :dafür:
      Hallo Pattex!

      Hab noch ne Frage, ...

      wäre es möglich diese mod so umzuschreiben, dass nicht die "neuesten bilder" sondern "zufallsbilder" angezeigt werden?

      gruss
      clemens

      EDIT: geht das evtl so? eine änderung in der BoardIndex.php:

      vorher:

      Quellcode

      1. <a href='".$path."displayimage.php?album=[B]lastup[/B]&cat=".$album."&pos=".$position."' alt='".$row['title']."' title='".$row['title']."' target='_blank'><img src='".$path."albums/".$row['filepath']."thumb_".$row['filename']."' style='border:none;'></a>


      nachher:

      Quellcode

      1. <a href='".$path."displayimage.php?album=[B]random[/B]&cat=".$album."&pos=".$position."' alt='".$row['title']."' title='".$row['title']."' target='_blank'><img src='".$path."albums/".$row['filepath']."thumb_".$row['filename']."' style='border:none;'></a>

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Clemens“ ()

      Hallo Clemens,

      du musst diese Zeile in der BoardIndex.php ersetzen:

      Quellcode

      1. $sql = "SELECT * FROM ".$pr."albums as a,".$pr."pictures as p WHERE p.aid=a.aid AND (a.visibility=".($usergroup[0]+100)." ".$sql1." or a.visibility=0) ORDER BY p.pid DESC LIMIT ".$n."";



      durch

      Quellcode

      1. $sql = "SELECT * FROM ".$pr."albums as a,".$pr."pictures as p WHERE p.aid=a.aid AND (a.visibility=".($usergroup[0]+100)." ".$sql1." or a.visibility=0) ORDER BY rand() DESC LIMIT ".$n."";



      Gruß
      pattex
      GoHome! Arbeitszeitüberwachung! (@iOS AppStore)
      Reminder, Worktime, Arbeitszeit, Arbeit, Ueberwachung, Zeiten, Zeitenstempeln
      :dafür:
      Hallo Pattex,

      bin mir jetzt nicht sicher ob ichs nicht gemerkt hab oder ob das ein neuer fehler bei mir ist....

      wenn ich nämlich auf eines der zufallsbilder klicke, öffnet sich zwar "_blank" der neue explorer, doch er zeigt ein ganz anderes bild an. also nicht das thumb aus dem forum-info-center.

      :(

      weisst du mir einen rat?

      gruss
      clemens
      Hallo Clemens,

      Wie sagt man so schön: "It's not a bug, it's a feature". Nein, es ist wirklich ein Fehler.
      Habe das gerade getestet, behoben und habe nun eine hoffentlich fehlerfreie Version für dich:

      Diese Zeilen in der BoardIndex.php:

      Quellcode

      1. $position=0;
      2. $context['cp_bridge']=0;$context['cp_bridge']="<tr><td colspan=2 class='windowbg'><table width=100% cellspacing=0 cellpadding=0><tr>";
      3. while ($row = mysql_fetch_assoc($request)){
      4. $album='0';
      5. $context['cp_bridge'].="
      6. <td valign='top'><center>
      7. <table cellspacing=0 cellpadding=0><tr><td width='130px' align=center>
      8. <a href='".$path."displayimage.php?album=lastup&cat=".$album."&pos=".$position."' alt='".$row['title']."' title='".$row['title']."' target='_blank'><img src='".$path."albums/".$row['filepath']."thumb_".$row['filename']."' style='border:none;'></a>
      9. <br />";
      10. if(!$row['title'])$context['cp_bridge'].="-";
      11. else $context['cp_bridge'].=wordwrap(utf8_decode($row['title']),23, "<br>", 1);
      12. $context['cp_bridge'].="</td></tr></table></td>";
      13. $position++;
      14. }
      15. $context['cp_bridge'].="</td></tr></table></tr>";


      werden ersetzt durch:

      Quellcode

      1. $context['cp_bridge']=0;$context['cp_bridge']="<tr><td colspan=2 class='windowbg'><table width=100% cellspacing=0 cellpadding=0><tr>";
      2. while ($row = mysql_fetch_assoc($request)){
      3. $position=-$row[pid];
      4. $album='0';
      5. $context['cp_bridge'].="
      6. <td valign='top'><center>
      7. <table cellspacing=0 cellpadding=0><tr><td width='130px' align=center>
      8. <a href='".$path."displayimage.php?album=random&cat=0&pos=".$position."' alt='".$row['title']."' title='".$row['title']."' target='_blank'><img src='".$path."albums/".$row['filepath']."thumb_".$row['filename']."' style='border:none;'></a>
      9. <br />";
      10. if(!$row[title])$context['cp_bridge'].="-";
      11. else $context['cp_bridge'].=wordwrap(utf8_decode($row[title]),23, "<br>", 1);
      12. $context['cp_bridge'].="</td></tr></table></td>";
      13. }
      14. $context['cp_bridge'].="</td></tr></table></tr>";


      Und wie immer der Hinweis: Datensicherungen machen und bei Problemen einfach die BoardIndex.php zusenden.

      Gruß
      pattex
      GoHome! Arbeitszeitüberwachung! (@iOS AppStore)
      Reminder, Worktime, Arbeitszeit, Arbeit, Ueberwachung, Zeiten, Zeitenstempeln
      :dafür: