Fehler nach dem Einbinden von chCounter 3.11

Gesperrt
BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Fehler nach dem Einbinden von chCounter 3.11

Beitrag von BagHira »

Hallo,

nach dem Einbinden von chCounter 3.11 erhalte ich im FE beim Aufruf des GaleriePopup-Moduls (w3concepts.gallery.v1) den folgenden Fehler:

Code: Alles auswählen

Warning: Unknown(../statistik/counter.php): failed to open stream: No such file or directory in /homepages/44/d137264202/htdocs/create/cms/front_content.php(798) : eval()'d code on line 1242

Warning: (null)(): Failed opening '../statistik/counter.php' for inclusion (include_path='.:/kunden/homepages/44/d137264202/htdocs/create/pear/:/usr/local/lib/php') in /homepages/44/d137264202/htdocs/create/cms/front_content.php(798) : eval()'d code on line 1242

Beispiel:
http://www.create-beadandmosaic.de/cms/ ... p?idcat=92

Bei allen anderen Modulen habe ich keine Probleme... z.B. http://www.create-beadandmosaic.de/cms/ ... p?idcat=82


Edit:
Ich hab vergessen den Modul-Code zu Posten:
Input:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :	    w3concepts.gallery.v1
* Author      :     Andreas Kummer
* Copyright   :     mumprecht & kummer w3concepts
* Created     :     30-08-2004
* Modified    :     30-08-2004
************************************************/

class pfad {

	function pfad($pfad) {
		$this->pfad = $pfad;
		$this->pathlen = strlen($this->pfad);
	}

	function getPath($root,$level = 0) {
		$content = $this->readDir($root);

		foreach ($content as $file) {
			if (is_dir($root.$file)) {
				$verzeichnis = substr($root,$this->pathlen);
				$returnvalue["{$verzeichnis}{$file}/"] = str_repeat(" ",$level * 5).$file;
				$returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1));
			}
		}

		return $returnvalue;
	}

	function readDir($path) {
		$handle = opendir($path);

		while ($file = readdir ($handle)) {
			if ($file != "." && $file != "..") $returnvalue[] = $file;
		}
		closedir($handle);

		return $returnvalue;
	}

	function makeSelect($preselection) {
		$pfad = $this->getPath($this->pfad);

		foreach ($pfad as $key => $value) {
			if ($preselection == $key) {
				echo "<option value=\"$key\" selected=\"selected\">$value</option>";
			} else {
				echo "<option value=\"$key\">$value</option>";
			}
		}
	}
}

$pfad = new pfad($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']);

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";

echo "<tr><td>Bilderpfad:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[0]\" />";
$pfad->makeSelect("CMS_VALUE[0]");
echo "</td>";

echo "<tr><td>Thumbnailpfad:</td>";
echo "<td><select size=\"1\" name=\"CMS_VAR[1]\" />";
$pfad->makeSelect("CMS_VALUE[1]");
echo "</td>";

echo "<tr><td>Thumbnailbreite (Max.):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" size=\"5\" /></td>";

echo "<tr><td>Thumbnailhöhe (Max.):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"5\" /></td>";

echo "<tr><td>Anzahl Spalten:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"5\" /></td>";

echo "<tr><td>Anzahl Zeilen:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"5\" /></td>";

echo "<tr><td>Text für Previous-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\" size=\"15\" /></td>";

echo "<tr><td>Text für Next-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\" size=\"15\" /></td>";

echo "</table>";
Output:

Code: Alles auswählen

<? 
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :       w3concepts.gallery.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     30-08-2004 
* Modified    :     30-08-2004 
************************************************/ 

class gallery { 

   function gallery() { 
      // initialwerte setzen 
      $this->setInitValues(); 

      // aussteigen, falls initialwerte nicht sinnvoll 
      if (!$this->checkInitValues()) return false; 

      // quellverzeichnis auslesen 
      $this->readDir(); 

      // zeiger für showNextPicture setzen 
      if (empty($_REQUEST['pos'])) { 
         $this->showNextPictureSeq = -1; 
      } else { 
         $this->showNextPictureSeq = $_REQUEST['pos'] - 1; 
      } 

      // datenbankzugriff initialisieren 
      $this->db = new DB_Contenido; 

      // galerie ausgeben 
      $this->showGallery(); 

      // gegebenenfalls navigation ausgeben 
      $this->showNavigation(); 

   } 

   function setInitValues() { 
      // konfigurationswerte aus dem input-script 
      // übernehmen 
      $this->path['pictures'] = "CMS_VALUE[0]"; 
      $this->path['thumbs'] = "CMS_VALUE[1]"; 
      $this->path['upload'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload']; 
      $this->path['html'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath']; 
      $this->abspath['pictures'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$this->path['pictures']; 
      $this->abspath['thumbs'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$this->path['thumbs']; 
      $this->htmlpath = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload']; 
      $this->thumbnailSize['width'] = "CMS_VALUE[2]"; 
      $this->thumbnailSize['height'] = "CMS_VALUE[3]"; 
      $this->tableSize['cols'] = "CMS_VALUE[4]"; 
      $this->tableSize['rows'] = "CMS_VALUE[5]"; 
      $this->link['previous'] = "CMS_VALUE[6]"; 
      $this->link['next'] = "CMS_VALUE[7]"; 
   } 

   function checkInitValues() { 
      // prüfen, ob es sich bei den übergebenen pfaden 
      // um tatsächlich vorhandene pfade im dateisystem 
      // handelt. gegebenenfalls wird eine ausgabe 
      // an den browser vorgenommen und false zurückgegeben. 
      if (!chdir($this->abspath['pictures'])) { 
         echo "<p>Das Verzeichnis '{$this->abspath['pictures']}' existiert im Dateisystem 
            des Servers nicht. Entweder müssen Sie es noch anlegen oder die 
            Konfiguration Ihres Modules anpassen.</p>"; 
         return false; 
      } 
      if (!chdir($this->abspath['thumbs'])) { 
         echo "<p>Das Verzeichnis '{$this->abspath['thumbs']}' existiert im Dateisystem 
            des Servers nicht. Entweder müssen Sie es noch anlegen oder die 
            Konfiguration Ihres Modules anpassen.</p>"; 
         return false;          
      } 

      if ($this->thumbnailSize['width'] == '') $this->thumbnailSize['width'] = 100; 
      if ($this->thumbnailSize['height'] == '') $this->thumbnailSize['height'] = 100; 

      if ($this->tableSize['cols'] == '') $this->tableSize['cols'] = 3; 
      if ($this->tableSize['rows'] == '') $this->tableSize['rows'] = 3; 

      if ($this->link['previous'] == '') $this->link['previous'] = '[:: rückwärts ]'; 
      if ($this->link['next'] == '') $this->link['next'] = '[ vorwärts ::]'; 


      // rückgabe im erfolgsfall 
      return true; 
   } 

   function readDir() { 
      $dir = opendir($this->abspath['pictures']); 
      while ($file = readdir($dir)) { 
         $bildinfo = @getimagesize($this->abspath['pictures'].$file); 
         if (!empty($bildinfo)) { 
            $picture[] = $file; 
         } 
      } 
rsort($picture,SORT_NUMERIC);
reset($picture);
      closedir($dir); 

      foreach ($picture as $picture2) { 
         if (!empty($picture2)) $this->picture[] = $picture2; 
      } 
   } 

   function showNextPicture() { 
      // zeiger um eins erhöhen 
      $this->showNextPictureSeq++; 

      // wenn keine bild mehr vorhanden ist, false zurück geben 
      if ($this->showNextPictureSeq >= count($this->picture)) return ''; 

      // thumbnail generieren falls erforderlich 
      $size = $this->generateThumb($this->picture["{$this->showNextPictureSeq}"]); 

      // originalgrösse des bildes ermitteln 
      $originalsize = getimagesize($this->abspath['pictures'].$this->picture["{$this->showNextPictureSeq}"]); 

      // referenz zurück geben 
      //return "<a href=\"#\" onClick=\"window.open('{$this->path['html']}popupviewer.php?desc='.this->getDescription().'&uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width={$originalsize[0]},height={$originalsize[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');bild.document.body.style.margin=0;\"><img src=\"{$this->htmlpath}{$size['filename']}\" width=\"{$size['width']}\" height=\"{$size['height']}\" /></a>"; 
      $beschreibung = $this->getDescription(); 

      // berechnen der Popupgröße
      $str_length = strlen($beschreibung);			// Anzahl Zeichen der Beschreibung ermtteln
      $str_break = substr_count($beschreibung, '%0D%0');	// Anzahl Zeilenumbrüche in der Beschreibung ermitteln
      $img_width = $originalsize[1];				// Breite des Image zur Berechnung festhalten
      $line_height = 15;					// Default-Zeilenhöhe einstellen
      $char_widht = 5;					// Default-Zeichenbreite einstelen
      $default_height = 60;					// Default-Popuphöhe wird zusätzlich aufsummiert
      
      $txt_height = ((ceil(($str_length * $char_widht) / $img_width) + $str_break) * $line_height) + $default_height;


      $popupwidth=$originalsize[0]+400; 
      $popupheight=$originalsize[1]+$txt_height; 
      
      // idcatart zum Loging für Contenido einstellen
		if ($_GET['idcat']==92 or $_GET['idcatart']==130)
			{
				// Halsketten
				$myidcatart=145;
			}
//		elseif ($_GET['idcat']==96 or $_GET['idcatart']==135)
//			{
//				// Armbänder
//				$myidcatart=146;
//			}
		elseif ($_GET['idcat']==96 or $_GET['idcatart']==135)
			{
				// Anhänger
				$myidcatart=147;
			}
		elseif ($_GET['idcat']==95 or $_GET['idcatart']==133)
			{
				// Ohrringe
				$myidcatart=148;
			}
		elseif ($_GET['idcat']==94 or $_GET['idcatart']==132)
			{
				// Ringe
				$myidcatart=149;
			}
		elseif ($_GET['idcat']==93 or $_GET['idcatart']==134)
			{
				// Handyschmuck
				$myidcatart=150;
			}
		elseif ($_GET['idcat']==99 or $_GET['idcatart']==143)
			{
				// Handyschmuck
				$myidcatart=151;
			}
//		elseif ($_GET['idcat']==96 or $_GET['idcatart']==135)
//			{
//				// Erstlinge
//				$myidcatart=152;
//			}
		elseif ($_GET['idcat']==89)
			{
				// Mosaik
				$myidcatart=153;
			}
//		elseif ($_GET['idcat']==96 or $_GET['idcatart']==135)
//			{
//				// Hochzeitsbuch
//				$myidcatart=162;
//			}
//		elseif ($_GET['idcat']==89)
//			{
//				// Malen
//				$myidcatart=154;
//			}
		else
			{
				// Defaulteinstellung
				$myidcatart=144;
			}
			
if ($popupheight < 500){$popupheight=500;}
      return "<a href=\"javascript:window.open('{$this->path['html']}popupviewer.php?myidcatart=$myidcatart&desc=$beschreibung&uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width=$popupwidth,height=$popupheight,top=10,left=10,scrollbars=auto,topmargin=0,leftmargin=0');bild.document.body.style.margin=0;\"><img src=\"{$this->htmlpath}{$size['filename']}\" border=\"0\" width=\"{$size['width']}\" height=\"{$size['height']}\" /></a>"; 
   } 


   function generateThumb($filename) { 

      $src_image_size = getimagesize($this->abspath['pictures'].$filename); 

      // prüfen, ob thumbnail bereits vorhanden ist 
      if (!file_exists("{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg")) { 

         // ermitteln ob das bild auf bestimmte höhe oder bestimmte breite zu reduzieren ist 
         // sowie ermitteln, um welchen faktor das bild zu verkleinern ist 
         if ($src_image_size[0]/$src_image_size[1] > $this->thumbnailSize['width']/$this->thumbnailSize['height']) { 
            $verkleinerungsfaktor = $this->thumbnailSize['width']/$src_image_size[0]; 
         } else { 
            $verkleinerungsfaktor = $this->thumbnailSize['height']/$src_image_size[1]; 
         } 

         // berechnen der thumbnailgrösse 
         $bildhoehe = round($src_image_size[1] * $verkleinerungsfaktor); 
         $bildbreite = round($src_image_size[0] * $verkleinerungsfaktor); 

         // thumbnail erstellen 
         $dst_im = imagecreatetruecolor($bildbreite,$bildhoehe); 
         if ($src_image_size[2] == 1) { 
            $src_im = imagecreatefromGIF("{$this->abspath['pictures']}$filename"); 
         } elseif ($src_image_size[2] == 2) { 
            $src_im = @ImageCreateFromJPEG("{$this->abspath['pictures']}$filename"); 
         } else { 
            $src_im = @imagecreatefromgd("{$this->abspath['pictures']}$filename"); 
         } 
         imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]); 
         imagejpeg ($dst_im,"{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg",100); 
          
         $size['width'] = $bildbreite; 
         $size['height'] = $bildhoehe; 
      } else { 
         $thumbnailsize = getimagesize("{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg"); 
         $size['width'] = $thumbnailsize[0]; 
         $size['height'] = $thumbnailsize[1]; 
      } 

      $size['filename'] = "{$this->path['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg"; 
    
      return $size; 
   } 

   function getDescription() { 
      
      $sql = "SELECT description FROM {$GLOBALS['cfg']['tab']['upl']} 
         WHERE 
            filename = '{$this->picture[$this->showNextPictureSeq]}' 
            AND dirname = '{$this->path['pictures']}' 
         "; 

      $this->db->query($sql); 
      $this->db->next_record(); 

      return $this->db->f("description");; 
   } 

   function showGallery() { 

      $cellwidth = floor(100/$this->tableSize['cols']); 
//      echo "<table width=\"100%\">\n"; 
// mod by Louis 2004-12-30 
      echo "<table width=\"100%\" cellpadding=\"10\" cellspacing=\"10\">\n"; 
      for ($i = 0;$i < $this->tableSize['rows'];$i++) { 
         $beschreibung = null; 

         echo "<tr>\n";          
         for ($j = 0;$j < $this->tableSize['cols'];$j++) { 
/* output by Louis 2004-12-30 
*  this is the original code 
            echo "<td align=\"left\" valign=\"top\" 
width=\"$cellwidth%\">\n".$this->showNextPicture()."\n</td>\n"; 
            $beschreibung[] = $this->getDescription(); 
         } 
         echo "</tr>\n"; 

         echo "<tr>\n"; 
         for ($j = 0;$j < $this->tableSize['cols'];$j++) { 
            echo "<td align=\"left\" valign=\"top\" 
width=\"$cellwidth%\" style=\"padding-bottom:10px; font-style: 
italic;\">\n{$beschreibung[$j]}\n</td>\n"; 
         } 
*/ 
/* here is the new code: description closer to thumbs */ 
            echo "<td align=\"center\" valign=\"top\" width=\"$cellwidth%\">\n".$this->showNextPicture()."<br>\n"; 
            //ausgeklammert $beschreibung[] = $this->getDescription(); 
            echo "<p style=\"padding-bottom:10px; font-style: italic;\">{$beschreibung[$j]}\n</td>\n"; 
// end of new code            
         } 
         echo "</tr>\n"; 
      } 
      echo "</table>\n"; 
   } 

   function showNavigation() { 

      if ($this->tableSize['cols'] * $this->tableSize['rows'] < count($this->picture)) { 
         echo "<table width=\"100%\">\n<tr>\n"; 

         if (!empty($_REQUEST['pos'])) { 
            $pos = ($this->showNextPictureSeq <= $this->tableSize['cols'] * $this->tableSize['rows']) ? (0) : ($this->showNextPictureSeq - (2 * $this->tableSize['cols'] * $this->tableSize['rows']) + 1); 
            $pos = ($pos < 0) ? (0) : ($pos); 
            $link = $GLOBALS['sess']->url("front_content.php?client={$GLOBALS['client']}&lang={$GLOBALS['lang']}&idcat={$GLOBALS['idcat']}&idart={$GLOBALS['idart']}&pos=$pos"); 
            echo "<td style=\"text-align:left; width:33%\"><a href=\"$link\">{$this->link['previous']}</a></td>"; 
         } else { 
            echo "<td style=\"text-align:left; width:33%\">&nbsp;</td>"; 
         } 

         echo "<td align=\"center\" width=\"33%\">&nbsp;</td>"; 

         if ($this->showNextPictureSeq + 1 < count($this->picture)) { 
            $pos = $this->showNextPictureSeq + 1; 
            $link = $GLOBALS['sess']->url("front_content.php?client={$GLOBALS['client']}&lang={$GLOBALS['lang']}&idcat={$GLOBALS['idcat']}&idart={$GLOBALS['idart']}&pos=$pos"); 
            echo "<td style=\"text-align:right; width:33%\"><a href=\"$link\">{$this->link['next']}</a></td>"; 
         } else { 
            echo "<td style=\"text-align:right; width:33%\">&nbsp;</td>"; 
         } 

         echo "</tr>\n</table>\n"; 
      } 
   } 

} 
$gallery = new gallery(); 
?>
chCounter habe ich in das Layout eingebunden mit :

Code: Alles auswählen

<container id="100" name="chCounter" types="Special" default="chCounter" mode="fixed">MyChCounter</container>
Verwendet wird Contenido 4.6.8

Schon vorab vielen Dank für euere Hilfe.
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

liegt ziemlich sicher am chdir der klasse...

der pfad wird geändert aber nicht mehr auf den orginalen zurückgestellt...
wirkt sich nachfolgend auf alle module aus die mit relativen includes arbeiten...
*** make your own tools (wishlist :: thx)
BagHira
Beiträge: 486
Registriert: Do 23. Feb 2006, 19:42
Wohnort: Tirschenreuth / Oberpfalz / Bayern
Kontaktdaten:

Beitrag von BagHira »

Hallo emergence,

ja, du hast recht gehabt :)
emergence hat geschrieben:liegt ziemlich sicher am chdir der klasse...

der pfad wird geändert aber nicht mehr auf den orginalen zurückgestellt...
wirkt sich nachfolgend auf alle module aus die mit relativen includes arbeiten...


ich hab das Modul a bisserl vom pfad her geändert, nun klappt alles super

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* eases the implemantation of chcounter:
* http://www.christoph-bachner.net/chcounter
* June, 10.2006 :: jochen preusche
*
* remember to adjust the directory to chc
* optional changes: $visible
* requires chcounter (download-link see above)
*
*
* BASED ON
*================================================
*
*                      (Headline)  im Artikel ausgeben
* Author           :   Christa Tabara
* Copyright        :   Christa Tabara
* Created          :   14-07-2005
* Modified by HerrB:   22-07-2005
* Modified to implement chc: nonano: 06-10-2006
************************************************/

if (!$HTTP_GET_VARS['contenido']){
$db = new DB_Contenido;
$db->query("SELECT title FROM ".$cfg['tab']['art_lang']." WHERE idartlang = '".$idartlang."'");
$db->next_record();
$chCounter_page_title = $db->f("title");
$chCounter_visible = 0;
include_once([color=darkred]$_SERVER['DOCUMENT_ROOT']."/statistik/counter.php"[/color]);
}
?> 
Die geänderte Zweile ist logischerweise:
include_once($_SERVER['DOCUMENT_ROOT']."/statistik/counter.php");

Vielen Dank für deine Hilfe, ich denk da wär ich so schnell nicht drauf gekommen.
:oops:
Gruß Holger

Träumer haben vielleicht keinen Plan, aber Realisten haben keine Vision.

Handgewickelte Glasperlen Facebook Google+
Gesperrt