Frage zur Plugin Einbindung Frage zur Plugin Einbindung
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Frage zur Plugin Einbindung

Started by Tankertom, January 23, 2012, 05:15:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Tankertom

Hallo,

ich habe mir ein kleines Plugin geschrieben, das ich auch gerne hier veröffentliche. Jedoch habe ich noch einige Fragen.
Die Installation(Tabellen anlegen etc.) ist fertig, auch die Ausgabe in einer separaten Seite klappt. Was ich nun noch erreichen möchte, wo ich nicht vorwärts komme, ist das die Ausgabe in der index.php zwischen "alblist" und "lastup" stattfinden soll.
Was genau muss ich wo anpassen? bzw wie muss die Ausgabe in der codebase.php aussehen? Das Plugin Visible Hookpoints Plugin habe ich mir angeschaut, werde daraus aber nicht richtig schlau und es bringt meinen Browser zum absturz(wenn die Option "Visible permanently for everyone" gewählt wird).
Der angehängte Code ist, die funktionieren Ausgabe Datei ohne die Inhalt. Die müsste dann ja irgendwie in die codebase.php?

VG
TT

PS.: Testseite ist auf eine Localhost :o

<?php
define
('IN_COPPERMINE'true);
define('BDW_PHP'true);

require_once(
'include/init.inc.php');
$CONFIG['TABLE_BDW'] = $CONFIG['TABLE_PREFIX'].'plugins_bdw';


pageheader($lang_index_php['welcome']);
$superCage Inspekt::makeSuperCage();
if (
$superCage->get->keyExists('id') == "history") {   //$superCage->post->getInt
  
archiv();
}else{
  
bdw();
}

function 
archiv(){
 global 
$CONFIG;
 
$date date("W"); //in config auslagern
 
$year date("Y"); //in config auslagern
 
$kw $date.'_'.$year;

 
$bdw cpg_db_query("SELECT * FROM {$CONFIG['TABLE_BDW']} WHERE kw_year < '$kw' ");
   if (!
$bdw) { die('<p>Error performing query: ' mysql_error() . '</p>');} 
starttable("100%""..");
echo <<<EOT
  <table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#d3d3d3">
    <td align="center"><br><h2>.. <br /></h2></td>
  </table>
EOT;
 while(
$row mysql_fetch_array($bdwMYSQL_ASSOC)) {
   
$User_TB cpg_db_query("SELECT user_name FROM cpg15x_users WHERE user_id = {$row['owner_id']}");
     
$raw mysql_fetch_row($User_TB);
      
$ownername $raw[0];
      
$rest substr($row['filepath'], -6,-1);
 echo <<<EOT
    .
    .
    .
    </table>
EOT;
   }
endtable();
}

function 
bdw(){
    global 
$CONFIG;
$date date("W"); //in config auslagern
$year date("Y"); //in config auslagern
$kw $date.'_'.$year;

$bdw cpg_db_query("SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE bdw = '$date' Limit 1");
   if (!
$bdw) { die('<p>Error performing query: ' mysql_error() . '</p>');}

while(
$row mysql_fetch_array($bdwMYSQL_ASSOC)) {
  .
  .
  .
   }
}

starttable("100%""..");
$html <<<EOT
<table align="center" width="$width" cellspacing="1" cellpadding="0" bgcolor="#d3d3d3" class="maintable $zebra_class">
    <!--<table width="100%" border="0" cellpadding="1" cellspacing="1" > -->
      <tr>
<td width="50%">&nbsp;</td>
      </tr>
        <div class="cpg_starttable_inner">
          .
          .
          .
        </div>
    </table>
EOT;
endtable();
mysql_free_result($bdw);
mysql_free_result($raw);
}
pagefooter();
ob_end_flush();
?>

Αndré

Quote from: Tankertom on January 23, 2012, 05:15:15 PM
Was ich nun noch erreichen möchte, wo ich nicht vorwärts komme, ist das die Ausgabe in der index.php zwischen "alblist" und "lastup" stattfinden soll.
Dafür musst du den Plugin-Hook plugin_block verwenden. Denk dir einen Namen für den deinen Block aus und füge ihn dann an gewünschter Stelle hier ein: http://documentation.coppermine-gallery.net/de/configuration.htm#admin_album_list_content

Dann musst du deinem Plugin natürlich sagen was genau es machen soll, wenn dein Blockname gefunden wurde.

Tankertom

hallo,

durch Urlaub und Krankheit komme ich erst heute dazu zu antworten.
Das Plugin ist soweit fertig, mit $thisplugin->add_filter('main_page_layout','bdw_main')
wird es auch erkannt, jedoch nur noch das Plugin alle anderen sachen sind weg.
Was genau fehlt jetzt noch das alles wieder angezeigt wird?

TT

Tankertom

sorry falsche kopiert
richtig muss es sein
$thisplugin->add_filter('plugin_block','bdw_main');

Tankertom

Klappe die dritte,
;)
habe es hin bekommen, wird jetzt ordnungsgemäß angezeigt, muss jetzt nur noch die Readme schreiben, dann kann ich es veröffentlichen.

VG

TT

Tankertom

Hallo,

eine Frage habe ich da dann doch noch. Mein Plugin hat eine Archivfunktion. Diese soll genaus so funktionieren wie die Thumbinalansicht.
Aktuell werden mir alle Bilder aus dem Archiv nebeneinander angezeigt. Es sollte aber nur vier Bilder neben einander angezeigt werden, dann darunter die nächsten usw.
Wie bekomme ich das hin, habe bisher nicht eine wirkliche Idee wie das in der GAllerie aufgebaut ist. Kann man evtl. auf vorhanden Teile der Gallerie zur Ausgabe zurückgreifen?

VG
TT

Αndré

Quote from: Tankertom on February 06, 2012, 09:45:33 PM
habe es hin bekommen, wird jetzt ordnungsgemäß angezeigt
In Zukunft bitte die Lösung mit angeben, das hilft sonst keinem weiter.

Offensichtlich hast du mit einem doppelt vergebenen Funktionsnamen (der zweite Parameter) die ursprüngliche Funktion überschrieben:
Quote from: Tankertom on February 06, 2012, 08:03:54 PM
$thisplugin->add_filter('main_page_layout','bdw_main')
Quote from: Tankertom on February 06, 2012, 09:02:45 PM
$thisplugin->add_filter('plugin_block','bdw_main');


Zu deiner letzten Frage, da könnte dir eventuell die Funktion display_thumbnails bzw. theme_display_thumbnails weiterhelfen. Ich habe mir deinen Quellcode jetzt nicht genauer angesehen, keine Ahnung was genau du vorhast. Ein Link zu deiner Galerie um den derzeitigen Stand zu sehen wäre durchaus hilfreich.

Tankertom

Hallo,

zum ersten Problem ich hatte es an die falsche Stelle kopiert und hatte einen Schreibfehler drin. :o
Zum zweiten Problem. Ich möchte einfach nur erreichen, das mein Archiv an das Layout der Seite angepasst ist. Aktuell ist es so, das alle Bilder im
Archiv in einer Zeile/Reihe angezeigt werden, wo durch das Layout zerrissen wird.
Es sollen genau 4 bild nebeneinander sein Tabelle hat ja 100% und der Rest soll dann 25% haben somit die 4.
Hier ist der Link zum Archiv auf der Partnerseite von mir, wo du das "fertige" Ergebnis siehst.

Wie geht eigentlich die Veröffentlichung von statten? Wenn das Archiv noch nicht wirklich fertig ist steht der Veröffentlichung etwas im Wege?

TT

Αndré

Ich habe keine Ahnung was dein Plugin da macht bzw. was dein "Archiv" genau ist. Wie genau sieht denn der Code aus, der die (momentan 7) Bilder ausgibt?

Es schadet auch nicht, wenn du aktuelle Zwischenstände einfach als Archiv mit anhängst. Wenn du dein Plugin veröffentlichen möchtest, erstellst du am besten im Forum "cpg1.5.x plugins" einen neuen Thread, erklärst dort was dein Plugin so macht und hängst es selbstverständlich auch gleich mit an.

Tankertom

hi,

das Plugin habe ich gerade eingestellt.
Der Code sieht so aus.
Habe mir auch die beiden von die vorgeschlagen func. angesehen, werde daraus nicht wirklich schlau.
Für mein Plugin ist es nur wichtig, für den Fall das jemand diese Funktion nutzen möchte sich an seine Theme anpasst.
Wie auf der Partner Seite zusehen gelinkt mir das nicht wirklich.

VG

TT



<?php

if (!defined('IN_COPPERMINE')) die('Not in Coppermine...');

require_once(
'include/init.inc.php');
require(
'./plugins/bdw/include/init.inc.php');

pageheader($lang_plugin_archiv_bdw['archiv_display']);

global 
$CONFIG$lang_plugin_archiv_bdw$lang_plugin_code_bdw$width$zebra_class;

$bdw cpg_db_query("SELECT * FROM {$CONFIG['TABLE_BDW']} WHERE kw_year < '$kw_year' ORDER BY kw_year ASC");
   if (!
$bdw) { die('<p>Error performing query: ' mysql_error() . '</p>');}
    
starttable("100%"$icon_array['lob'].$lang_plugin_archiv_bdw['archiv_display'],1);

echo <<<EOT
 <table align="center" width="$width" cellspacing="1" cellpadding="0" class="maintable  $zebra_class">
EOT;
   
while(
$row mysql_fetch_array($bdwMYSQL_ASSOC)) {
   
$bdwowner cpg_db_query("SELECT user_name FROM {$CONFIG['TABLE_USERS']} WHERE user_id = {$row['owner_id']}");
     
$raw mysql_fetch_row($bdwowner);
      
$ownername $raw[0];

      if (
$CONFIG['bdw_path'] != $CONFIG['userpics']){
         if (
strlen($row['owner_id'])== 1){
            
$rest '1000'.$row['owner_id'];
        }elseif (
strlen($row['owner_id'])== 2){
            
$rest '100'.$row['owner_id'];
        }elseif (
strlen($row['owner_id'])== 3){
            
$rest '10'.$row['owner_id'];
        }  
      }else{
         
$rest      substr($row['filepath'], -6,-1);
        }
      
$kw_aus    substr($row['kw_year'], -2).' '.substr($row['kw_year'], 04);

echo <<<EOT
<td valign="top" class="thumbnails" width ="25%" align="center">
  <table width="100%" cellpadding="0" cellspacing="0">
    <tr>
      <span class="thumb_caption">KW: 
{$kw_aus} <br /><br /></span>
        <td align="center"><img src="
{$CONFIG['ecards_more_pic_target']}{$CONFIG['fullpath']}{$row['filepath']}{$CONFIG['bdw_vor_1']}{$row['filename']}" class="image" alt=Gewinner der letzten Wochen><br /></a>
          <span class="thumb_title"> 
{$row['title']} <br /></span>
          <span class="thumb_title">Fotograf: <a href="
{$CONFIG['ecards_more_pic_target']}index.php?cat={$rest}">{$ownername}<br /></span>
        </td>
    </tr> 
  </table>
  <img src="images/spacer.gif" width="1" height="5" border="" alt="" /><br />
</td>
EOT;
}

echo <<<EOT
</table>
EOT;

endtable();
mysql_free_result($bdw);
mysql_free_result($bdwowner);
ob_end_flush();

pagefooter();
?>

Αndré

Versuch mal was passiert, wenn du nach
$kw_aus    = substr($row['kw_year'], -2).' '.substr($row['kw_year'], 0, 4);
folgendes einfügt:
if ($count > 0 && $count++ % $CONFIG['thumbcols'] == 0) {
    echo "</tr><tr>";
}
$count++;


Jedoch fehlt in deiner äußeren Tabelle jegliche Angabe von <tr> und </tr>.

Tankertom

unverändertes Bild,
<tr> & </tr> hinzugefügt


TT

<?php

if (!defined('IN_COPPERMINE')) die('Not in Coppermine...');

require_once(
'include/init.inc.php');
require(
'./plugins/bdw/include/init.inc.php');

pageheader($lang_plugin_archiv_bdw['archiv_display']);

global 
$CONFIG$lang_plugin_archiv_bdw$lang_plugin_code_bdw$width$zebra_class;

$bdw cpg_db_query("SELECT * FROM {$CONFIG['TABLE_BDW']} WHERE kw_year < '$kw_year' ORDER BY kw_year ASC");
   if (!
$bdw) { die('<p>Error performing query: ' mysql_error() . '</p>');}

starttable("100%"$icon_array['lob'].$lang_plugin_archiv_bdw['archiv_display'],1);

echo <<<EOT
 <table align="center" width="$width" cellspacing="1" cellpadding="0" class="maintable  $zebra_class">
 <tr>
EOT;

while(
$row mysql_fetch_array($bdwMYSQL_ASSOC)) {
   
$bdw_owner cpg_db_query("SELECT user_name FROM {$CONFIG['TABLE_USERS']} WHERE user_id = {$row['owner_id']}");
     
$raw mysql_fetch_row($bdw_owner);
      
$ownername $raw[0];

      if (
$CONFIG['bdw_path'] != $CONFIG['userpics']){
         if (
strlen($row['owner_id'])== 1){
            
$rest '1000'.$row['owner_id'];
        }elseif (
strlen($row['owner_id'])== 2){
            
$rest '100'.$row['owner_id'];
        }elseif (
strlen($row['owner_id'])== 3){
            
$rest '10'.$row['owner_id'];
        }  
      }else{
         
$rest      substr($row['filepath'], -6,-1);
        }
         
$kw_aus    substr($row['kw_year'], -2).' '.substr($row['kw_year'], 04);

         if (
$count && $count++ % $CONFIG['thumbcols'] == 0) {
         echo 
"</tr><tr>";
      }
      
$count++;

echo <<<EOT
<td valign="top" class="thumbnails" width ="25%" align="center">
  <table width="100%" cellpadding="0" cellspacing="0">
    <tr>
      <span class="thumb_caption">KW: 
{$kw_aus} <br /><br /></span>
        <td align="center"><img src="
{$CONFIG['ecards_more_pic_target']}{$CONFIG['fullpath']}{$row['filepath']}{$CONFIG['bdw_vor_1']}{$row['filename']}" class="image" alt=Gewinner der letzten Wochen><br /></a>
          <span class="thumb_title"> 
{$row['title']} <br /></span>
          <span class="thumb_title">Fotograf: <a href="
{$CONFIG['ecards_more_pic_target']}index.php?cat={$rest}">{$ownername}<br /></span>
        </td>
      </tr>
  </table>
</td>
EOT;
}

echo <<<EOT
</tr>
<img src="images/spacer.gif" width="1" height="5" border="" alt="" /><br />
</table>
EOT;

endtable();
mysql_free_result($bdw);
mysql_free_result($bdw_owner);
ob_end_flush();

pagefooter();
?>

Αndré

Sorry da war ich wohl zu schnell beim Tippen. Ersetze meinen Code bitte durch
if ($count > 0 && $count % $CONFIG['thumbcols'] == 0) {
    echo "</tr><tr>";
}
$count++;

Tankertom

herzlichen Dank André
das war es. ;D
Wie komme ich jetzt an das eingestellte Plugin ran um es dahingehend abzuändern

TT

Αndré

Sorry, aber ich verstehe die Frage nicht. Wo willst du rankommen und was willst du abändern?

Tankertom


Αndré

Ich habe den Thread verschoben und dich der Benutzergruppe "Contributor" hinzugefügt. Damit solltest du deine eigenen Beiträge inkl. der Anhänge bearbeiten können. Bitte beachte auch unsere Dateinamenkonvention für plugins, z.B. cpg1.5.x_plugin_bdw_v1.0.zip

Tankertom

ok danke werde die Änderungen schnellstmöglich einarbeiten.

VG
TT

Tankertom

Hi,

kurze Frage noch, wie kann ich meine Beiträge ändern? Ich finde nicht den Punkt dafür.

VG

TT

Αndré

Siehe Screenshot.