Thumbnail-Generierung in Artikelliste - wie geht das?

Gesperrt
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Thumbnail-Generierung in Artikelliste - wie geht das?

Beitrag von kloevekorn »

Liebe Gemeinde,

ich benutze die untenstehende Artikelliste mit Bild. Diese Liste soll Thumbnails "vernünftig" berechnen. Es werden aber keine Thumbs erstellt. Die Artikelliste zeigt die Artikelbilder in der Originalgröße an.

Wie kann ich das Modul bewegen, die Thumbs zu erzeugen? Es gibt keine Parameter zum einstellen, außer ob Thumbnails gewünscht, den Bildcontainer und dem Thumbnail-Verzeichnis. Im Code kann ich nur erkennen, dass eine fixe width von 80px vorgegeben ist.

Die GD-Lib ist natürlich installiert.

Meine Vorgehensweise:
1- Anlegen eines Artikels mit Bild
2- Anzeige des Artikels über die Artikelliste. Klappt wunderbar.
3- Als Thumbnail-Ordner wähle ich das Verzeichnis des originalen Bildes aus. (Auswahl eines anderen Ordner bringt den Fehler, dass das eine nicht valide image resource sei.)

Sollen die Thumbs on-the-fly erzeugt oder irgendwo abgelegt werdeb?


Das Modul (Output-Ausschnitt)

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Erweiterte Artikel liste 
* 
* Liste von Artikeln mit mehreren Daten basierend 
* auf 4fb referenz modul 

* 1.Gibt die Subheadline eines Artikel mit aus 
* 2.Anschnitte nur nach ganzen Wörtern 
* 3.Thumnails werden vernünftig berechnet 
* 4.Image für Erzeugung von Thumbs kann gewählt werden 
* 5. Sortieroptionen eingefügt
* Author : Evert Smit / Dirk Uptmoor / Peter Beauvain 
* Copyright : None 
* Created : 13-07-03 
* Modified : 16-08-02 /20-09-03 upt /02-02-04 Beau /05122005 Si
************************************************/
 
Der Code mit dem Thumbnail-Part:

Code: Alles auswählen

/******************* begin thumbnails **********************************/ 
if($print_thumbnail !="0" && $print_thumbnail !=""){ 

// select and resolve image path 
$imagesql="select value from ".$cfg["tab"]["content"]." where idartlang='$value' and idtype='4' and typeid='CMS_VALUE[11]'"; 
$db2->query($imagesql); 
$db2->next_record(); 
$image_id= $db2->f("value"); 


// get image name and path 
$imagesql="select * from ".$cfg["tab"]["upl"]." where idupl='$image_id'"; 
$db2->query($imagesql); 
$db2->next_record(); 


$webdir='upload/';
$thumbdir='CMS_VALUE[9]'; 
$filedir=$frontendpath; 
$imagelocation=$filedir.$webdir.$db2->f('dirname').$db2->f('filename'); 
$thumblocation=$filedir.$webdir.$thumbdir.$db2->f('filename'); 
if (!file_exists($thumblocation)){ 
// create thunbnail 
$fileinformation=getimagesize($imagelocation); 
$imagewidth = $fileinformation[0]; 
$imageheight = $fileinformation[1]; 
$imagetype=$db2->f('filetype'); 
$imageattributes = $fileinformation[3]; 
//$newfile= $last_id."-image.".$imagetype; 
$target=$thumblocation; 

if ( !(copy($imagelocation,$target))) 
{ 
echo "Could not copy file to destination., Command returned Error Message. Please check your log files. ".$imagelocation." ".$target; 
die; 
} 

//create thumbnails 80xrelational height; neu $thumbnail_width x proportionale Höhe 
// Determine what filetype and set pointer to source image 


$original_image=ImageCreateFromJPEG($target); 

if (!$original_image){ 
echo 'Error getting image from '.$target.'.'; 
} 


$palette_image =$filedir.$webdir.$thumbdir.'vorlage.jpg'; 
$thumbsize = getImageSize($palette_image); 
$maxdim = $thumbsize[0]; 
$draw_from = $imagelocation; 
$dim = GetImageSize($draw_from); 
if($dim[0]>$dim[1]) 
{ 
$to_w = $maxdim; 
$to_h = round($dim[1]*($maxdim/$dim[0])); 
$to_x = 0; 
$to_y = round($maxdim-$to_h)/2; 
} 
else 
{ 
$to_h = $maxdim; 
$to_w = round($dim[0]*($maxdim/$dim[1])); 
$to_y = 0; 
$to_x = round($maxdim-$to_w)/2; 
} 

if($dim[2]==1) {$from = ImageCreateFromGIF($draw_from);} 
elseif($dim[2]==2) {$from = ImageCreateFromJPEG($draw_from);} 
elseif($dim[2]==3) {$from = ImageCreateFromPNG($draw_from);} 
$thumb = ImageCreateFromJPEG($palette_image); 
// $set_bg_colour = ImageColorAllocate($thumb,255,0,0); 
// $fill_bg_colour = ImageFill($thumb,0,0,$set_bg_colour); 
imagecopyresampled($thumb, $from, $to_x, $to_y, 0, 
0, $to_w, $to_h, $dim[0], $dim[1]); 


//echo $target; 
// set image width and height of thunbnail and put pointer for filesytsem 
$thumbfile= $db2->f('filename'); 
$target_thumb=$thumblocation; 
$t_width=$thumbnail_width; 
// calculating height to maintain ratio 
$t_height=($thumbnail_width/$imagewidth)*$imageheight; 
// remove digits to get solid number 
list ($t_height,$notimportand)=explode('.',$t_height); 
// create blank image 
$thumb_image=imagecreatetruecolor($t_width,$t_height); 
// $thumb_image=imagecreate($t_width,$t_height); 
// $thumb_image=ImageCreateFromJPEG($palette_image); 
// resize image based on height and width 
imagecopyresampled($thumb_image,$original_image,0,0,0,0,$t_width,$t_height,$imagewidth,$imageheight);
// store image on file system 
// requires different functionf for either gif or jpeg 

imagejpeg($thumb,$target_thumb); 


imagedestroy($thumb); 
imagedestroy($original_image); 
} 
//*********** Imagebehandlung: ***************

$image=$webdir.$thumbdir.$db2->f('filename'); 


$imagetag="<img src=\" $image \" alt=\"bildalttext\" border=\"0px\"  />";

 
Kann jemand helfen?
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

3- Als Thumbnail-Ordner wähle ich das Verzeichnis des originalen Bildes aus. (Auswahl eines anderen Ordner bringt den Fehler, dass das eine nicht valide image resource sei.)
wie war denn die fehlermeldung ?

ähm thumbnail ordner und ordner des orginalen bildes darf nicht gleich sein... ansonsten wird kein thumbnail erstellt... deshalb hast du auch nur das orginal bild dort..
*** make your own tools (wishlist :: thx)
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

emergence hat geschrieben:
3- Als Thumbnail-Ordner wähle ich das Verzeichnis des originalen Bildes aus. (Auswahl eines anderen Ordner bringt den Fehler, dass das eine nicht valide image resource sei.)
wie war denn die fehlermeldung ?

ähm thumbnail ordner und ordner des orginalen bildes darf nicht gleich sein... ansonsten wird kein thumbnail erstellt... deshalb hast du auch nur das orginal bild dort..
Zur Präzisierung:
Im Backend wähle ich einen anderen Thumbnail-Ordner aus, als der in dem die Originale liegen, dann kommt im Frontend folgende Error-Liste. (Darunter wird die Artikelliste wie gehabt angezeigt. Mit Bildern, aber in Originalgröße):
-----------------------------------------------------------------------------------

Warning: getimagesize(/kunden/yyy/yyy/yyy/contenido/cms/upload/misc/vorlage.jpg): failed to open stream: No such file or directory in /kunden/yyy/yyy/yyy/contenido/cms/front_content.php(567) : eval()'d code on line 872

Warning: imagecreatefromjpeg(/kunden/yyy/yyy/yyy/contenido/cms/upload/misc/vorlage.jpg): failed to open stream: No such file or directory in /kunden/yyy/yyy/yyy/contenido/cms/front_content.php(567) : eval()'d code on line 894

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /kunden/yyy/yyy/yyy/contenido/cms/front_content.php(567) : eval()'d code on line 898

Warning: imagecreatetruecolor(): Invalid image dimensions in /kunden/yyy/yyy/yyy/contenido/cms/front_content.php(567) : eval()'d code on line 911

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /kunden/yyy/yyy/yyy/contenido/cms/front_content.php(567) : eval()'d code on line 915

Warning: imagejpeg(): supplied argument is not a valid Image resource in /kunden/yyy/yyy/yyy/contenido/cms/front_content.php(567) : eval()'d code on line 919

Warning: imagedestroy(): supplied argument is not a valid Image resource in /kunden/yyy/yyy/yyy/contenido/cms/front_content.php(567) : eval()'d code on line 922

----------------------------------------------------------------------------------
Offensichtlich funzen einige Funktionen nicht. Es handelt sich um .jpg-Dateien und Contenido selbst zeigt mir an, dass die GDLib installiert und also erkannt sei.

Eine weitere Frage taucht auf: In der Thumbs-Verzeichnisauswahl kann ich nur auf drei Verzeichnisse zugreifen. Neu hinzugefügte Verzeichnisse im Upload-Bereich tauchen nicht in der Liste auf. Woran liegts? Der Modul-Input macht doch eine DB-Abfrage auf die Verzeichnisse, oder nicht?
Hierzu der Input-Code (Die fraglichen Zeilen stehen am Ende.):

Code: Alles auswählen

/** 
* Artikelliste 
* 
* Liste von Artikeln mit mehreren Daten basierend 
* auf 4fb referenz modul 
* 1. Gibt die Subheadline eines Artikel mit aus 
* 2. Anschnitte nur nach ganzen Wörtern 
* 3. Thumbnails werden vernünftig berechnet 
* 4. Image für Erzeugung von Thumbs kann gewählt werden 
* Author : Evert Smit / Dirk Uptmoor / Peter Beauvain 
* Copyright : None 
* Created : 13-07-03 
* Modified : 16-08-02 /20-09-03 upt /02-02-04 Beau / 05-12-2005 Si
* Modified 5. Sortierung der Artikel kann ausgewählt werden / Si
*/ 

// selected category 

$sort_reihenfolge = "CMS_VALUE[25]";

$selected = "CMS_VALUE[0]"; 
$seldir = "CMS_VALUE[9]"; 
$selimg = "CMS_VALUE[11]"; 
//funktion für die checkboxen 
function d_checked($which) { 
  if ($which != "") { 
    return "checked"; 
  } 
} // end function 


echo "<table cellspacing="0" cellpadding="2" border="0"> 
         <tr bgcolor="#E8E8EE" valign="top"> 
            <td></td> 
            <td><input type="checkbox" value="on" ".d_checked("CMS_VALUE[14]")." name="CMS_VAR[14]"></td> 
            <td width="120">Ausgabe mit Startartikel</td> 
            <td></td> 
<td>Kategorie wählen:<br> 
          
<select name="CMS_VAR[0]">"; 

if($selected!="0" && $selected!=""){ 
             echo"<option value="0">--- kein ---</option>"; 

            }else{ 
            echo"<option selected="selected" value="0">--- kein ---</option>"; 
            } 

            // fetch all categorys 
            $query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ". 
                     $cfg["tab"]["cat"]." AS B,  ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ". 
                     "AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ". 
                     "AND C.visible=1 ORDER BY A.idtree"; 
            // execute query 
            $db->query($query); 


            // loop result and build the options 
            while ($db->next_record()) { 

              // indent spacer 
              $spaces = "|"; 

              // how many levels 
              $levels = $db->f("level"); 



              for ($i = 0; $i < $levels; $i ++) { 
                // add 2 spaces for every level 
                $spaces = $spaces . "--"; 

              } // end for 
              
              $spaces .= ">"; 


              if ($selected == $db->f("idcat")) { 
                // selected category 
                echo "<option selected="selected" value="". $db->f("idcat") ."">". $spaces . $db->f("name") ."</option>"; 

              } else { 
                // category 
                echo "<option value="". $db->f("idcat") ."">". $spaces . $db->f("name") ."</option>"; 

              } // end if 

            } // end while 

echo "</select>"; 

echo "</td> 
<td></td>      
</tr> 
      <tr valign="top"> 
         <td></td> 
         <td></td> 
         <td width="120"></td> 
            <td></td> 
            <td>Überschrift: (wenn leer, keine Ausgabe)<br> 
               <input type="text" name="CMS_VAR[2]" value="CMS_VALUE[2]" size="24"></td> 
         </tr> 
         <tr bgcolor="#E8E8EE" valign="top"> 
            <td></td> 
            <td> <input type="checkbox" value="on" ".d_checked("CMS_VALUE[4]")." name="CMS_VAR[4]"> </td> 
            <td width="120">Ausgabe der Artikel-Headline</td> 
            <td></td> 
            <td>Angezeigte Zeichen Artikel-Headline:<br> 
               <input type="text" name="CMS_VAR[3]" value="CMS_VALUE[3]" size="24"></td> 
         </tr> 
         <tr valign="top"> 
            <td></td> 
            <td><input type="checkbox" value="on" ".d_checked("CMS_VALUE[5]")."  name="CMS_VAR[5]"></td> 
            <td width="120">Ausgabe der Artikel-Subheadline:</td> 
            <td></td> 
            <td>Angezeigte Zeichen Artikel-Subheadline:<br> 
               <input type="text" name="CMS_VAR[6]" value="CMS_VALUE[6]" size="24"></td> 
         </tr> 
         <tr valign="top"> 
            <td></td> 
            <td><input type="checkbox" value="on" ".d_checked("CMS_VALUE[12]")."  name="CMS_VAR[12]"></td> 
            <td width="120">Ausgabe des Artikel-Texts:</td> 
            <td></td> 
            <td>Angezeigte Zeichen Artikel-Text:<br> 
               <input type="text" name="CMS_VAR[13]" value="CMS_VALUE[13]" size="24"></td>
         </tr>        
         <tr bgcolor="#E8E8EE" valign="top"> 
            <td></td> 
            
            <tr bgcolor="#E8E8EE" valign="top">  
            <td></td> 
            <td><input type="checkbox" value="on" ".d_checked("CMS_VALUE[7]")."  name="CMS_VAR[7]" ></td> 
            <td width="120">Ausgabe der Thumbnails:</td> 
            <td></td> 
            <td>Bildcontainer für Thumbnail Quelle:<br>"; 
                

$db  = new DB_Contenido; 
$query = "SELECT output AS out, name AS beschreibung FROM ".$cfg["tab"]["mod"]." "; 
$db->query($query); 
echo"<select name="CMS_VAR[11]">"; 
echo"<option value="kein">-- kein --</option> "; 
while ($db->next_record()) { 
$frontendpath = $db->f("out"); 
$name = $db->f("beschreibung"); 

$rest = substr("$frontendpath", 3, 30); 

$find = strpos($rest,"CMS_IMG"); 
if ($find === false) { 

} 

else { 

$ok = substr($rest, $find, 10); 

$nummer = substr($ok, 8, 1); 

?> 
            <option value="<?php echo $nummer ?>"<?php if ($selimg == $nummer) echo " selected" ?>><?php echo $db->f("beschreibung") ?> 
<? 

} 


} 

echo" </option> </select> "; 
echo"</td> </tr><td></td><td></td> <td width="120">Thumbnail Ordner</td> 
<td></td><td>Bitte wählen:<br><select name="CMS_VAR[9]" size="1">"; 
echo"<option value="kein">-- kein --</option>"; 

$db  = new DB_Contenido; 
$query = "SELECT DISTINCT dirname FROM ".$cfg["tab"]["upl"]." ORDER BY dirname ASC"; 
$db->query($query); 
while ($db->next_record()) { 

?> 
<option value="<?php echo $db->f("dirname") ?>"<?php if ($seldir == $db->f("dirname")) echo " selected" ?>><?php echo $db->f("dirname") ?></option> 
<?php 
   } 
echo "</select></td> <tr valign="top"> <td></td></tr><tr><td></td><td style="background-color:white\;">&nbsp;</td></tr><tr> <td>";
vielen Dank nochmal für euren Support!
Zuletzt geändert von kloevekorn am So 18. Dez 2005, 17:44, insgesamt 2-mal geändert.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Existiert diese Datei und kann der Prozess schreibend drauf zugreifen (chmod 777?).
kunden/yyy/yyy/yyy/contenido/cms/upload/misc/vorlage.jpg
Auch mit den Verzeichnissen die gleiche Frage: Haben alle Verzeichnisse und die darin befindlichen Dateien entsprechende Rechte (häufig: 777)?

Gruß
HerrB
Zuletzt geändert von HerrB am So 18. Dez 2005, 17:26, insgesamt 1-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

HerrB hat geschrieben:Existiert diese Datei und kann der Prozess schreibend drauf zugreifen (chmod 777?).
kunden/yyy/yyy/yyy/contenido/cms/upload/misc/vorlage.jpg
Auch mit den Verzeichnissen die gleiche Frage: Haben alle Verzeichnisse und die darin befindlichen Dateien entsprechende Rechte (häufig: 777)?

Gruß
HerrB
kommen wir der Sache etwa näher ... :roll: :shock: :D

- die datei ....../misc/vorlage.jpg existiert nicht
- das Verzeichnis "upload" hat 710
- es existieren folgende verzeichnisse:
- upload/bilder/ --710
- upload/logos/ -- 710
- upload/misc/ --750
- upload/pdf/ -- 710
- upload/thumbs/ -- 750

- Die Bilder sind:
- 757 (z.B. die mitgelieferten Contenido-Logos -geht aber auch nichts.
- 644 (meine ganzen eigenen im Verzeichnis "bilder")
- 640 (meine eigenen im Verzeichnis "misc")

(alles ist bei der Installation richtig eingestellt gewesen und die neuen Verzeichnisse, z.B. "thumbs" wurden aus der Dateiverwaltung heraus erstellt).

In der Modulkonfiguration werden nur die Verzeichnisse bilder, logos und misc angeboten (nicht "pdf"!)


Jetzt ausprobiert, wenn ich in der Modulkonfiguration als Thumb-Verzeichnis "bilder" auswähle und im Artikel ein Bild aus "misc" (750) klappt die Thumbgenerierung nicht aber die Artikelliste wird angezeigt. Ein Bild aus "logos" (Verz.: 710 Bild: 757) gewählt bringt wieder die oben angeführten Fehler im Frontend hervor. Ohne Thumbs versteht sich.

Ich hoffe, ich konnte es einigermaßen übersichtlich darstellen.

Wie bringt man das jetzt alles in Ordnung und wie sorgt man dafür, dass neu angelegte Verzeichnisse und hochgeladene Dateien die richtigen und möglichst einheitliche Rechte bekommen?

danke!!!
Zuletzt geändert von kloevekorn am Sa 17. Dez 2005, 11:36, insgesamt 1-mal geändert.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Nun, in dem Du die Rechte mit einem FTP-Programm für die Verzeichnisse und nochmal manuell für alle existierenden Dateien setzt...

Unter FileZilla rechte Maustaste -> Dateiattribute, bei WS_FTP rechte Maustaste -> chmod(unix), wobei WS_FTP in dem Dialogfenster nicht die aktuellen, sondern die zuletzt gesetzten Rechte anzeigt.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

HerrB hat geschrieben:Nun, in dem Du die Rechte mit einem FTP-Programm für die Verzeichnisse und nochmal manuell für alle existierenden Dateien setzt...
klar, kriege ich hin. Aber welche Rechte sind denn nun die richtigen? 777 für alles, oder für Verzeichnisse und Bilder unterschiedliche, oder entsteht da vielleicht ein Sicherheitsproblem?

Und wie schafft man es, dass danach die Rechte automatisch richtig vergeben werden, wenn der Redakteur aus Contenido ein Bild hochlädt und verwenden möchte?

Besteht dieses Problem denn nur bei mir?

Übrigens arbeite ich unter OSX, also wenn sich jemand dafür interessiert, wie Contenido auf 'nem Mac läuft ...
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Nun, zum einen könntest Du Dich da selber schlau machen (das hat nix mit Contenido an sich, sondern mit Dateirechten unter *nix zu tun), zum anderen ist eine Empfehlung schwierig, denn es ist auch von der Serverkonfiguration abhängig.

Die erste Zahl betrifft die Rechte des Erstellers. 7 bedeutet, dass er Read (4), Write (2) und Execute-Recht (1) hat.

Die zweite Zahl betrifft die Gruppe, in der der Ersteller sich befindet.

Die dritte Zahl alle anderen.

Es sollte ausreichen, alle Verzeichnisse und Dateien auf 666 zu setzen (jeder kann lesen und schreiben). Eine Gewähr, dass es damit schon funktioniert, kann ich Dir aber nicht geben, da bleibt Dir dann noch 777.

Gruß
HerrB
Zuletzt geändert von HerrB am Mi 14. Dez 2005, 15:58, insgesamt 1-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

HerrB hat geschrieben:Nun, zum einen könntest Du Dich da selber schlau machen (das hat nix mit Contenido an sich, sondern mit Dateirechten unter *nix zu tun), zum anderen ist eine Empfehlung schwierig, denn es ist auch von der Serverkonfiguration abhängig.

Die erste Zahl betrifft die Rechte des Erstellers. 7 bedeutet, dass er Read (1), Write (2) und Execute-Recht (4) hat.

Die zweite Zahl betrifft die Gruppe, in der der Ersteller sich befindet.

Die dritte Zahl alle anderen.

Es sollte ausreichen, alle Verzeichnisse und Dateien auf 666 zu setzen (jeder kann lesen und schreiben). Eine Gewähr, dass es damit schon funktioniert, kann ich Dir aber nicht geben, da bleibt Dir dann noch 777.

Gruß
HerrB
Nun, meine Frage, welche Rechte die Richtigen sind bezog sich in diesem Context selbstverständlich ganz konkret auf die Contenido-Umstände und die prinzipiellen Mindestrechte für diese Verzeichnisse, weil ich nicht weiß, bzw. noch nicht so genau verstehe, unter welchem/r Benutzer/gruppe das CMS überhaupt arbeitet. Und bezüglich potentieller Sicherheitsprobleme hielt ich es für erlaubt, einfach die Erfahreneren in diesem Forum zu Fragen. Wieder in Bezug auf Contenido.

Lange Rede, kurzer Sinn: ich habe alle Rechte auf 766, dann 777 gesetzt. Bild kommt aus dem Bilderordner, für die Thumbs ist mein "thumb"-Verzeichnis ausgewählt, jetzt erscheint die Artikelliste ohne jedes Bild.

Gibt es andere, die dieses Modul benutzen und die ähnliche Probleme haben oder hatten. Oder funktioniert das Modul etwa bei allen anderen reibungslos?

Grüße, Jan
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

Lange Rede, kurzer Sinn: ich habe alle Rechte auf 766, dann 777 gesetzt. Bild kommt aus dem Bilderordner, für die Thumbs ist mein "thumb"-Verzeichnis ausgewählt, jetzt erscheint die Artikelliste ohne jedes Bild.
Korrektur: ich habe das "misc"-Verzeichnis als "thumb-"quelle ausgewählt. Neu erstellte Verzeichnisse werden in der Konfiguration nach wie vor nicht angeboten, obwohl die Rechte verändert wurden und die Verzeichnisse definitiv lesbar sind.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Nun, meine Frage, welche Rechte die Richtigen sind bezog sich in diesem Context selbstverständlich ganz konkret auf die Contenido-Umstände und die prinzipiellen Mindestrechte für diese Verzeichnisse, weil ich nicht weiß, bzw. noch nicht so genau verstehe, unter welchem/r Benutzer/gruppe das CMS überhaupt arbeitet. Und bezüglich potentieller Sicherheitsprobleme hielt ich es für erlaubt, einfach die Erfahreneren in diesem Forum zu Fragen. Wieder in Bezug auf Contenido.
Auch wenn Du es gerne hättest, dies hat leider nix mit Contenido per se zu tun (mit der gleichen Begründung müssten wir sonst auch alles allen zu HTML und CSS erklären, weil man es ja bei Contenido einsetzt).

Es handelt sich um die Rechtevergabe auf Deinem System, es gilt für alle Skripte, die Du einsetzt (nicht nur Contenido). Es ist daher sinnvoll, wenn Du Dich zu dieser Thematik an anderen Stellen - ggf. mit mehr Erfahrung in dem Bereich - informierst.

Beispiel (Gelaber, interessant wird es unten):
Es kann einen oder mehere Accounts für den Webserver geben - und ich habe keine Ahnung, wie es auf dem Mac aussieht. Gängig sind z.B. zwei Accounts: den FTP-Account und den Web-Account. Werden Dateien hochgeladen, ist der Owner der FTP-Account, werden Sie über ein PHP-Skript erzeugt, ist i.A. der Web-Account der Owner. Günstig (aus Skript-Sicht) ist es, wenn FTP-Account und Web-Account in der gleichen Gruppe liegen, dafür gelten dann die Rechte an zweiter Stelle. Sind sie es nicht und ist der so genannte Safe Mode aktiv, kann ein Skript (Web-Account) nicht auf Dateien zugreifen, die hochgeladen wurden (da diese als Owner dem FTP-Account zugeordnet sind). Und dann gibt es ja noch die Rechte, wie oben beschrieben ... Lange Rede, kurzer Sinn: Du musst Dich selbst informieren, wie es bei Dir aussieht.

Ich persönlich werde Dir auch keine Empfehlung geben, wie eine sichere Konfiguration aussieht, da ich a) es ins letzte Detail auch nicht weiss, b) die Konfiguration nicht kenne, c) mich mit OSX nicht auskenne und d) keine Gewähr dafür übernehmen kann.

Zum Problem:
Das Modul erstellt eine verkleinerte Abbildung und speichert sie im misc-Verzeichnis. Bereits für die Erstellung der Verkleinerung scheinen die Grafikfunktionen eine Schreibberechtigung auf die Originaldateien zu benötigen.

Damit es nun funktionieren kann, muss das Zielverzeichniss und die Dateien darin vom Skript schreibbar sein. Das gleiche gilt für die Dateien im Quellverzeichnis.

Unter *nix gelten Dateirechte und Verzeichnisrechte separat, hast Du die Rechte für alle Dateien und Verzeichnisse gesetzt? 666 sollte ausreichen. Wenn es dann noch nicht geht, ist der Safe Mode aktiv (kann man z.B. über phpinfo ermitteln: Z.B. eine Datei phpinfo.php im Root mit <?php phpinfo(); ?> anlegen)?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

HerrB, danke für deine Ausführungen bzgl. der Rechte-"Entstehungen", damit kann ich was anfangen. Ich möchte ja gar keine Anfänger-Schulung in Sachen Rechten. Ich weiß ja, was das ist und wie das grundsätzlich wirkt, aber ob nicht doch ganz spezifische Einstelllungen f. Contenido nötig sind oder ob ein ganz bestimmtes Verzeichnis auf keinen Fall 777 sein darf, wg. Sicherheit oder was weiß ich .... weiß ich eben nicht, bzw. fehlt mir auch das Urteilsvermögen.

Aber was ich schon seltsam finde, dass beim Bilder-Upload oder beim Verzeichnisanlegen durch solche inkonsistenten und offensichtlich auch falsche Berechtigungen vergeben werden.

Zum Mac und was ich damit mach: Contenido läuft hier auf meinem lokalen Webserver, hierauf habe ich angefangen, mich mit Contenido zu beschäftigen. Mein Eindruck ist, dass das einzige, dass Probleme auf dem Mac macht, die RTE-Editoren sind, die zwar grundsätzlich (mit Firefox) da sind, aber doch nicht so 100% funktionieren (Habe es noch nicht mit Win-Systemen verglichen). Sonst scheint es hier aber 1:1 genauso zu funktionieren, wie auf anderen unix und linux-systemen, die ich mal als Standard bei PHP/mySQL-Arbeiten setze. Was schwieriger, jedenfalls für nicht-Experten ist, ist die Installation von z.B. ImageMagick, weil es hierfür keine fertigen Installer gibt. Und kompilieren kann man zwar, ich aber nicht bzw. ist mir noch zu hart, mich damit zu beschäftigen.

Das Problem tritt aber auf dem Live-Server unter Linux auf. safe_mode ist da _nicht_ eingeschaltet.

Apropos Problem angeht .... hier geht im Moment gar nichts mehr. Die Artikel selbst zeigen die Bilder nicht mehr an und lassen sich auch nicht mehr über den Editor hinzufügen :( :x. Auch eine Artikelliste zeigt nicht mehr das an, was ich möchte ... auch nicht nach Wiederherstellen alter Modulversionen. Habe con_code gelöscht, kein Effekt. Error-Log habe ich reingeschaut, konnte ich aber auch nichts mit anfangen.

Ich mache jetzt folgendes, ich sichte jetzt die 4.6 - Foren und baue das ganze Ding noch mal in 4.6.4, denn beschäftige ich mich wenigstens mit der Gegenwart und weil gleichzeitig auch xhtml damit besser funzen soll ....

Auf jeden Fall danke fürs Mitdenken! In den 4.6-Foren lesen wir uns dann wahrscheinlich wieder

:)

Grüße, Jan
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Verfügt das Verzeichnis contenido/cronjobs und die Dateien darin über alle Rechte (777)?

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

HerrB hat geschrieben:Verfügt das Verzeichnis contenido/cronjobs und die Dateien darin über alle Rechte (777)?

Gruß
HerrB
nein,

das verzeichnis cronjobs: 710
die php-files in "cronjobs": 757
die php.job-files: 640
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Das solltest Du auf 777 ändern...

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt