habe mal die Upload-Erweiterung zur Angabe von Medienname, Beschreibung, Schlüsselwörtern und der internen Notiz direkt beim Upload ergänzt. In der "include.upl_files_overview.php" war noch die Anweisung für die Speicherung der Beschreibung deaktiviert und die if-Abfrage nicht geschlossen, daher poste ich den Teil gleich nochmal mit. Dann habe ich das Uploadformular entsprechend angepasst. In Hinsicht auf's Contenido-Layout vielleicht nicht 100%ig stimmig, aber es erfüllt seinen Zweck. Hier gibbet nen Screenshot zu sehen. Mit einem Klick auf das "Artikeleigenschaften"-Symbol des jeweiligen Uploadfeldes, können die entsprechenden Eingabefelder ein- bzw. ausgeblendet werden. Nun zum Eingemachten....
1. "contenido/includes/include.upl_files_overview.php" zum bearbeiten öffnen
2. Eventuell cIncludes ergänzen (nicht nötig bei Contenido 4.6.15):
Code: Alles auswählen
cInclude("classes", "class.ui.php");
cInclude("classes", "class.htmlelements.php");
cInclude("includes", "api/functions.frontend.list.php");
cInclude("classes", "class.properties.php");
cInclude("classes", "class.todo.php");
Code: Alles auswählen
/**
* @author wogr
* 2006-12-05
* A modified version of the upload method, which lets the user set the "Keywords" and "Internal notes" right in the uploading-dialog.
*
* Other files of interest: include.upl_files_upload.php.
*/
if ($action == "upl_withinfo") {
$position = 0;
if (count($_FILES) == 1) {
foreach ($_FILES['file']['name'] as $key => $value) {
if (file_exists($_FILES['file']['tmp_name'][$key])) {
$tmp_name = $_FILES['file']['tmp_name'][$key];
$_cecIterator = $_cecRegistry->getIterator("Contenido.Upload.UploadPreprocess");
if ($_cecIterator->count() > 0) {
/* Copy file to a temporary location */
move_uploaded_file($tmp_name, $cfg["path"]["contenido"] . $cfg["path"]["temp"] . $_FILES['file']['name'][$key]);
$tmp_name = $cfg["path"]["contenido"] . $cfg["path"]["temp"] . $_FILES['file']['name'][$key];
while ($chainEntry = $_cecIterator->next()) {
$modified = $chainEntry->execute($tmp_name, $cfgClient[$client]['upl']['path'] . $path . uplCreateFriendlyName($_FILES['file']['name'][$key]));
if ($modified !== false) {
$tmp_name = $modified;
}
}
}
if (is_dbfs($qpath)) {
$dbfs->writeFromFile($tmp_name, $qpath . uplCreateFriendlyName($_FILES['file']['name'][$key]));
unlink($tmp_name);
} else {
if (is_uploaded_file($tmp_name)) {
move_uploaded_file($tmp_name, $cfgClient[$client]['upl']['path'] . $path . uplCreateFriendlyName($_FILES['file']['name'][$key]));
} else {
rename($tmp_name, $cfgClient[$client]['upl']['path'] . $path . uplCreateFriendlyName($_FILES['file']['name'][$key]));
}
}
}
$filename = uplCreateFriendlyName($_FILES['file']['name'][$key]);
$uploads->select("idclient = '$client' AND dirname = '$qpath' AND filename='$filename'");
if ($upload = $uploads->next()){
$upload->set("description", "beschreibung");
$upload->store();
}
$properties = new PropertyCollection;
$properties->setValue("upload", $qpath . $filename, "file", "medianame", stripslashes($medianame[$position]));
$properties->setValue("upload", $qpath . $filename, "file", "keywords", stripslashes($keywords[$position]));
$properties->setValue("upload", $qpath . $filename, "file", "medianotes", stripslashes($medianotes[$position]));
$position = $position +1;
} // end for each
}
}
/* wogr end */
Code: Alles auswählen
<?php
/*****************************************
* File : $RCSfile: include.upl_files_upload.php,v $
* Project : Contenido
* Descr : Directory overview
*
* Author : Timo A. Hummel
*
* Created : 30.12.2003
* Modified : $Date: 2006/06/12 17:29:07 $
*
* © four for business AG, www.4fb.de
*
* $Id: include.upl_files_upload.php,v 1.7 2006/06/12 17:29:07 bjoern.behrens Exp $
******************************************/
cInclude("classes", "class.ui.php");
cInclude("classes", "class.htmlelements.php");
cInclude("classes", "class.properties.php");
cInclude("includes", "functions.upl.php");
$page = new UI_Page;
if (is_writable($cfgClient[$client]["upl"]["path"].$path) || is_dbfs($path))
{
$form = new UI_Table_Form("properties");
$form->setVar("frame", $frame);
$form->setVar("area", "upl");
$form->setVar("path", $path);
$form->setVar("file", $file);
# $form->setVar("action", "upl_upload");
$form->setVar("action", "upl_withinfo");
$form->setVar("appendparameters", $_REQUEST["appendparameters"]);
$form->addHeader(i18n("Upload"));
$num_upload_files = getEffectiveSetting('backend','num_upload_files',10);
$uplelement = new cHTMLUpload("file[]",40);
/*****************************************
* BEGIN: Edit by florian@administra.de : 2007/06/23 20:43
******************************************/
$kwedit = new cHTMLTextarea("keywords[]", "");
$kwedit->setHeight (2);
$mnedit = new cHTMLTextbox("medianame[]", "",53);
$moedit = new cHTMLTextarea("medianotes[]", "");
$moedit->setHeight (2);
$dsedit = new cHTMLTextarea("description[]", "");
$dsedit->setHeight (2);
$viewoptimg = '<img style="margin-left: 2px; margin-right: 2px;" alt="'.i18n("Display properties").'" title="'.i18n("Display properties").'" src="images/but_art_conf2.gif">';
$viewoptimgdiv = new cHTMLDIV($viewoptimg);
$viewoptimgdiv->setStyle("float:right; padding-top:2px");
for ($i=1; $i<=$num_upload_files; $i++) {
$viewoptimgdiv->setEvent("click", "(document.getElementById('viewopt$i').style.display=='none')?document.getElementById('viewopt$i').style.display='inline':document.getElementById('viewopt$i').style.display='none';");
$viewoptdiv = new cHTMLDIV();
$viewoptdiv->setId('viewopt'.$i);
$viewoptdiv->setClass("text_medium");
$viewoptdiv->setStyle("display:none");
$viewoptdiv->setContent('<br /><br />'.i18n("Media name").'<br />'.$mnedit->render().'<br /><br />'.
i18n("Description").'<br />'.$dsedit->render().'<br /><br />'.
i18n("Keywords").'<br />'.$kwedit->render().'<br /><br />'.
i18n("Internal notes").'<br />'.$moedit->render().'<br /><br />');
$form->add(i18n("File").' '.$i, $viewoptimgdiv->render().$uplelement->render().$viewoptdiv->render());
}
/*****************************************
* END: Edit by florian@administra.de : 2007/06/23 20:43
******************************************/
$page->setContent($form->render());
} else {
$page->setContent($notification->returnNotification("error", i18n("Directory not writable")));
}
$page->render();
?>
Beste Grüße,
Schwarzesocke