Seite 1 von 2

Mandant 2 greift auf Dateiverwaltung von Mandant 1 zu

Verfasst: Fr 31. Okt 2008, 11:35
von Rincewind
Ich hab das Problem das Mandant 2 jedesmal auf die Dateiverwaltung von Mandant 1 zugreift und ich so natürlich keine Fotos hochladen kann.

Hat da jemand von euch eine Lösung parat ?

Über die Suche hab ich nix gefunden, in der config.php und der tabelle con_clients ist nix zu finden..

Verfasst: Fr 31. Okt 2008, 15:36
von OliverL
Hast du den Pfad des Mandanten 2 verändert?

s. Adminstration > Mandanten im Backend

Wenn die Pfade gleich sind solltest du diese ändern.

mfg OliverL

Verfasst: Fr 31. Okt 2008, 16:15
von Rincewind
OliverL hat geschrieben:Hast du den Pfad des Mandanten 2 verändert?

s. Adminstration > Mandanten im Backend

Wenn die Pfade gleich sind solltest du diese ändern.

mfg OliverL
Klar, die Mandanten funktionieren ja auch sonst.

Verfasst: Fr 31. Okt 2008, 23:25
von Rincewind
als nachtrag ..
die Mandanten funktionieren ansonsten, ich kann über den Menupunkt "Dateiverwaltung" auch auf die Dateiverwaltung von Mandant 2 zugreifen.
(also alles richtig)

wenn ich ein bildmodul nutze (z.b. die lightbox-gall) versucht diese nicht auf die dateiverwaltung vom mandant 2 zuzugreifen, sondern auf die vom mandant 1.

die fehlermeldung

Code: Alles auswählen

Fatal error: Error: Can't include /www/htdocs/w00a6a74/1380/includes/class.uploadmeta.php in /www/htdocs/w00a6a74/contenido/includes/api/functions.api.general.php on line 181
die kommt poste ich mal mit, halte ich für zweitrangig da das problem ja beim o.g. falschzugriff zu finden ist.

jemand eine idee ?

Verfasst: So 2. Nov 2008, 13:44
von Rincewind
keiner eine idee ? :(

Verfasst: Mo 3. Nov 2008, 01:42
von GaMbIt_
schau doch mal in der SQL Abfrage nach ob da der Mandant vielleicht fest eingegeben ist..
Dann kanns sein dass immer Mandant mit der ID 1 verwendet wird... das noch gegen die Mandantenvariable austauschen und es sollte passen...

Wenns das nicht war weiss ich auch nicht weiter...

Verfasst: Mo 3. Nov 2008, 12:54
von Rincewind
magst du mir kurz mit der tabelle auf die sprünge helfen ?

Verfasst: Mo 3. Nov 2008, 16:58
von GaMbIt_
Nein... dürfter korrekt sein...
In einem abgewandelten Modul hab ich mal nachgesehen... Es wird immer der

Code: Alles auswählen

    $sPath= $cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"] . "/bildergalerie/";
verwendet...

Welche Contenido Version hast Du denn?
Die Fehlermeldung lässt darauf schliessen dass Du die Datei
class.uploadmeta.php nicht hast... sieh doch mal nach ob die in dem Verzeichnis /www/htdocs/w00a6a74/1380/includes/ enthalten ist.. falls nicht darfst Du die gern aus dem anderen Mandantenverzeichnis hierher kopieren...

Verfasst: Mo 3. Nov 2008, 21:22
von Rincewind
du hast recht, ich hab die datei class.upload-meta.php nicht hochgeladen gehabt. dies habe ich sofort nachgeholt.

Aber ich sehe immer noch nicht das richtige client-verzeichnis, nun bekomme ich folgende fehlermeldung:

Code: Alles auswählen

Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be an array or a sort flag in /www/htdocs/w00a6a74/contenido/includes/include.con_editcontent.php(640) : eval()'d code on line 922
meine Contenido-Version ist 4.8.8. Komplett neu. nicht upgedatet

Verfasst: Mo 3. Nov 2008, 23:18
von GaMbIt_
Dann wird das Array das soriert wird kein Array sein..

Hast Du ein Verzeichnis angegeben ?
Existiert der upload Ordner??

Verfasst: Mo 3. Nov 2008, 23:34
von Rincewind
GaMbIt_ hat geschrieben:Dann wird das Array das soriert wird kein Array sein..

Hast Du ein Verzeichnis angegeben ?
Existiert der upload Ordner??
wo soll ich ein verzeichnis angeben ?
ich hab weder das modul noch inclode.con_editcontent.php editiert.

der upload-ordner existiert natürlich

Verfasst: Mo 3. Nov 2008, 23:38
von GaMbIt_
In der Konfiguration des Moduls im Template oder im Artikel unter Kofiguration...

Verfasst: Di 4. Nov 2008, 14:40
von Rincewind
mein modul:

Code: Alles auswählen

[b]INPUT[/b]?>
<table>
  <tr>
    <td><?php echo mi18n("Breite").' x '.mi18n("H&ouml;he"); ?></td>
    <td><input type="text" name="<?php echo "CMS_VAR[0]"; ?>" value="<?php echo "CMS_VALUE[0]"; ?>" style="width:40px;"> x <input type="text" name="<?php echo "CMS_VAR[1]"; ?>" value="<?php echo "CMS_VALUE[1]"; ?>" style="width:40px;"></td>
  </tr><tr>
    <td><?php echo mi18n("Spalten");?> x <?php echo mi18n("Zeilen");?></td>
    <td><input type="text" name="<?php echo "CMS_VAR[2]"; ?>" value="<?php echo "CMS_VALUE[2]"; ?>" style="width:40px;"> x <input type="text" name="<?php echo "CMS_VAR[3]"; ?>" value="<?php echo "CMS_VALUE[3]"; ?>" style="width:40px;"></td>
  </tr>
  <?php
  $sql = "SELECT DISTINCT dirname FROM ".$cfg['tab']['upl']." ORDER BY dirname";
  $db->query($sql);
  echo '<tr><td>'.mi18n("Verzeichnis auswählen").'</td><td>
        <select name="CMS_VAR[4]" size="1" style="width: 320px">
            <option value="">'.mi18n("Nichts ausgewählt").'</option>';
            while ($db->next_record()) {
                if ( stristr($db->f("dirname"),'CVS/') === FALSE ) {
                    if ($db->f("dirname")=="CMS_VALUE[4]") {
                        echo '<option value="'.$db->f("dirname").'" selected="selected">'.$db->f("dirname").'</option>';
                    } else {
                        echo '<option value="'.$db->f("dirname").'">'.$db->f("dirname").'</option>';
                    }
                }
            }
    echo '</select></td></tr>';?>

<?php
$sort = "";
if("CMS_VALUE[5]" == "asc" || "CMS_VALUE[5]" == "") {
 $asc = " checked";
} else {
 $desc = " checked";
}
?>
    <tr>
        <td><?php echo mi18n("Sortierrichtung");?></td>
        <td>
            <input type="radio" name="CMS_VAR[5]" value="asc"<?php echo $asc; ?>> <?php echo mi18n("Aufsteigend"); ?>
            <input type="radio" name="CMS_VAR[5]" value="desc"<?php echo $desc; ?>> <?php echo mi18n("Absteigend"); ?>
        </td>
    </tr><tr>
    <td><?php echo mi18n("Zeichenanzahl");?></td>
    <td><input type="text" name="<?php echo "CMS_VAR[6]"; ?>" value="<?php echo "CMS_VALUE[6]"; ?>" style="width:40px;"></td>
  </tr>
</table>
<?php>

Code: Alles auswählen

[b]OUTPUT[/b]
<?php

cInclude("includes", "functions.api.images.php");

/* Gallery variables */
$bRecursive = false;

/* Input variables */
$iWidth = "CMS_VALUE[0]";
$iHeight = "CMS_VALUE[1]";
if ($iWidth == 0) {
  $iWidth = 300;
}
if ($iHeight == 0) {
  $iHeight = 300;
}

$iColumns = "CMS_VALUE[2]";
if ($iColumns == 0) {
  $iColumns = 2;
}

$iRows = "CMS_VALUE[3]";
if ($iRows == 0) {
  $iRows = 2;
}

$sPath = "CMS_VALUE[4]";
if ($sPath=='') {
    $sPath = $cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"] . "bildergalerie/";
} else {
    $sPath = $cfgClient[$client]["path"]["frontend"] . $cfgClient[$client]["upl"]["frontendpath"] . "CMS_VALUE[4]";
}

$sort = "CMS_VALUE[5]";
if( $sort == "asc" ) {
    $sort = SORT_ASC;
} else {
    $sort = SORT_DESC;
}

$words = "CMS_VALUE[6]";

if (isset($start)) {
  $iCurrentPage = $start;
} else {
  $iCurrentPage = 1;
}

$aValidExtensions = array("jpg", "jpeg", "gif", "png");

$iImagesPerPage = $iRows * $iColumns;

/* Read all gallery files */
$aGalleryFiles = scanDirectory($sPath, $bRecursive);
array_multisort($aGalleryFiles, $sort, SORT_STRING);

if (is_array($aGalleryFiles)) {
    /* Filter out non-images */
    foreach ($aGalleryFiles as $key => $aGalleryFile) {
        $sExtension = strtolower(getFileExtension($aGalleryFile));
        if (!in_array($sExtension, $aValidExtensions)) {
            unset($aGalleryFiles[$key]);
        }
    }
    
    /* Calculate effective variables */
    $iFileCount = count($aGalleryFiles);
    $iPages = ceil($iFileCount / $iImagesPerPage);
    
    $aImagesToDisplay = array_slice($aGalleryFiles, ($iCurrentPage - 1) * $iImagesPerPage, $iImagesPerPage);
    
    $oImageTpl = new Template;
    $oGalleryTpl = new Template;
    $oEmptyImageTpl = new Template;
    
    $aRenderedImages = array();
    
    $iRow = 0;
    $iImagesRendered = 0;
    
    foreach ($aImagesToDisplay as $sImageToDisplay) {
        /* Do Scaling */
        $sScaledImage = cApiImgScale($sImageToDisplay, $iWidth, $iHeight);
        $sScaledImage = str_replace($cfgClient[$client]["path"]["htmlpath"],"",$sScaledImage);
        
        $link = str_replace($cfgClient[$client]['path']['frontend'],$cfgClient['htmlpath'],$sImageToDisplay);
        
        $media_name = ig_getMedienName($sImageToDisplay);
        
        $link_description = ig_getImageDescription($sImageToDisplay);
        
        if ($words != "" || $words != 0) {
            # Cutting text but preserving words and entities
            if(strlen($link_description) > $words){
               $description = htmlentities(capiStrTrimAfterWord($link_description, $words)."...");
            } else {
               $description = "";
            }
        }
        
        if( $media_name != "" && $link_description != "") {
            $link_description = $media_name.': '.$link_description;
        } elseif( $media_name != "" ) {
            $link_description = $link_description;
        } elseif( $description != "" ) {
            $link_description = $link_description;
            $media_name = "&nbsp;"; 
        }
        
        $oImageTpl->reset();
        $oImageTpl->set("s", "FILE", $sScaledImage);
        $oImageTpl->set("s", "WIDTH", $iWidth);
        $oImageTpl->set("s", "HEIGHT", $iHeight);
        $oImageTpl->set("s", "LINK", $link);
        $oImageTpl->set("s", "MEDIANAME", $media_name);
        $oImageTpl->set("s", "DESCRIPTION", $description);
        $oImageTpl->set("s", "LINKDESCRIPTION", $link_description);
        
        $aRenderedImages[] = $oImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-gallery_image.html", true, false);
        
        $iImagesRendered++;
        
        if ($iImagesRendered == $iColumns) {
            $oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages));
            $oGalleryTpl->next();
            $iImagesRendered = 0;
            $aRenderedImages = array();
        }
    }
    
    if (count($aRenderedImages) < $iColumns && count($aRenderedImages) > 0) {
        $iEmptyCells = $iColumns - count($aRenderedImages);
        
        $oEmptyImageTpl->set("s", "WIDTH", $iWidth);
        $oEmptyImageTpl->set("s", "HEIGHT", $iHeight);
        
        $sEmptyCells = str_repeat($oEmptyImageTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-gallery_empty.html", true, false),$iEmptyCells);
        
        $oGalleryTpl->set("d", "COLUMNS", implode("", $aRenderedImages) . $sEmptyCells);
        $oGalleryTpl->next();
    }
    
    $aLinks = array();
    
    if ($iCurrentPage > 1) {
        $oPreviousTpl = new Template;
        $oPreviousTpl->set("s", "LINK", $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&start=%s", $idcatart, $iCurrentPage - 1));
        $oPreviousTpl->set("s", "TITLE", mi18n("Zurück"));
        $aLinks[] = $oPreviousTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-gallery_link.html", true, false);
    }
    
    if (($iCurrentPage < $iPages) && $iCurrentPage) {
        $oNextTpl = new Template;
        $oNextTpl->set("s", "LINK", $cfgClient[$client]["path"]["htmlpath"] . sprintf("front_content.php?idcatart=%s&start=%s", $idcatart, $iCurrentPage + 1));
        $oNextTpl->set("s", "TITLE", mi18n("Vor"));
        $aLinks[] = $oNextTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-gallery_link.html", true, false);
    }
    
    $oGalleryTpl->set("s", "NAVIGATION", implode("", $aLinks));
    
    $oGalleryTpl->generate($cfgClient[$client]["path"]["frontend"] . "templates/lightbox-gallery.html", false, false);
}

function ig_getImageDescription($idupl){

    global $cfg, $cfgClient, $db, $client, $lang;
    
    $cApiClient = new cApiClient($client);
    $language_separator = $cApiClient->getProperty('language','separator');
    if ($language_separator == "") {
        //Sanity, if module used in client without set client setting
        $language_separator = "§§§";
        $cApiClient->setProperty('language','separator', $language_separator);
    }
    if(is_numeric($idupl)) {
        //ID is a number 
        $query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE idupl = ".$idupl;
    } else {
        //ID is a string
        $path_parts = pathinfo($idupl);
        $upload = $cfgClient[$client]['upl']['frontendpath'];
        $len = strlen($upload);
        $pos = strpos($idupl,$upload);
        $dirname = substr($path_parts['dirname'],$pos+$len).'/';
        $query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE (dirname = '".$dirname."') AND (filename='".$path_parts['basename']."') AND (filetype='".$path_parts['extension']."')";
    }
    $db->query($query);
    if($db->next_record()) {
        return htmlspecialchars(urldecode($db->f("description")));
    } else {
        return '';
    }
}

function ig_getMedienName($idupl) {
    
    global $cfg, $cfgClient, $db, $client, $lang;
    
    $cApiClient = new cApiClient($client);
    $language_separator = $cApiClient->getProperty('language','separator');
    if ($language_separator == "") {
        //Sanity, if module used in client without set client setting
        $language_separator = "§§§";
        $cApiClient->setProperty('language','separator', $language_separator);
    }
    if( is_numeric($idupl) ) {
        //ID is a number
        $query = "SELECT description FROM ".$cfg["tab"]["upl"]." WHERE idupl = ".$idupl;
    } else {
        //ID is a string
        $path_parts = pathinfo($idupl);
        $upload = $cfgClient[$client]['upl']['frontendpath'];
        $len = strlen($upload);
        $pos = strpos($idupl,$upload);
        $dirname = substr($path_parts['dirname'],$pos+$len).'/';
        $danis = $dirname.$path_parts['basename'];
        $query = "SELECT value FROM ".$cfg["tab"]["properties"]." WHERE itemid = '".$dirname.$path_parts['basename']."' AND name = 'medianame'";
    }
    $db->query($query);
    if( $db->next_record() ) {
        return htmlspecialchars(urldecode($db->f("value")));
    } else {
        return '';
    }
}
?>
in der templatevorkonfiguration hab ich natürlich keine änderungen gemacht

Verfasst: Di 4. Nov 2008, 14:46
von Dodger77
Eine Änderung von

Code: Alles auswählen

$sql = "SELECT DISTINCT dirname FROM ".$cfg['tab']['upl']." ORDER BY dirname";
zu

Code: Alles auswählen

$sql = "SELECT DISTINCT dirname FROM ".$cfg['tab']['upl']." WHERE idclient = ".$client." ORDER BY dirname";
sollte Wunder wirken.

Verfasst: Di 4. Nov 2008, 16:11
von GaMbIt_
Da lag ich mit meiner ersten Vermutung doch nicht so verkehrt :lol: