Herstellerinformationen erweitern

Hallo, ich habe eine Frage zum Bereich „Hersteller“-Informationen. Aktuell kann ich nur 3 Attribute zu einem Hersteller anlegen (inkl. Logo). Ist es möglich, die Attribute zu erweitern (z.B.Anschrift,Telefonnummer…)? Ich habe mir die hersteller.php im Verzeichnis /httpdocs/shop/engine/backend/modules/supplier angeschaut, allerdings reichen meine Programmierkenntnisse nicht, um mir selber zu helfen. Würde mich freuen, wenn mir einer von euch Experten einen Hinweis geben könnte. Beste Grüße Pepsi

Bin ich auch gerade auf der Suche. Schon irgend welche Erkenntnisse?

Alter Schwede;) Ich habe die Hersteller um ein weiteres Textfeld Herstellerinfo erweitert. Zusätzlich musste ich die Datenbank-Tabelle s_articles_supplier um eine Spalte Info erweitern. Um Übersetzung hab ich mich noch nicht gekümmert. Wie es dann im Frontend läuft schaue ich mir gerade nach. Das scheint etwas aufwändiger zu sein… engine/backend/modules/supplier/hersteller.php [code]<?php define(‚sAuthFile‘, ‚sGUI‘);
define(‚sConfigPath‘,"…/…/…/…/");
include("…/…/…/backend/php/check.php");
$result = new checkLogin();
$result = $result->checkUser(); if ($result!=„SUCCESS“){ echo "

Time-Out Bitte loggen Sie sich neu ein! "; die(); } // \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* ?\><?php $_GET["edit"] = intval($_GET["edit"]);

// *****************
// SPEICHERN DER HERSTELLER
// ===========================================
if(isset($_POST[‚sDeleteImg‘]))
{
abfrage = mysql_query(" SELECT img FROM s_articles_supplier WHERE id="._GET[„edit“]."
");
$img = mysql_fetch_array($abfrage);

$uploaddir = '../../../../images/supplier/';
unlink($uploaddir.$img['img']);
mysql_query("
	UPDATE `s_articles_supplier` SET `img` = '' WHERE `id` = '{$_GET["edit"]}' LIMIT 1 ;
");

}
elseif (_POST["saveNow"]){ // Alle Bedingungen erf�llt?? #echo "TEST"; if (!_POST[„txtName“]){
$fehler = 1;
}

$_POST["txtName"] = preg_replace("/\r|\n/s", "", $_POST["txtName"]);

//$_POST["txtName"] = htmlspecialchars($_POST["txtName"]);

if (!$fehler){
	// Falls Datei Upload
	
		if ($_FILES['bild']['tmp_name']){
		
		    $uploaddir = '../../../../images/supplier/';
		    $datei = explode(".",$_FILES['bild']['name']);
		    $endung = $datei[1];
		    
		    $file = $random = md5(uniqid(rand())).".".$endung;
		    if (!move_uploaded_file($_FILES['bild']['tmp_name'], $uploaddir.$file)){
		    	
		    	$sError = $sLang["supplier"]["hersteller_upload_error"];
		    }else {
		    	chmod($uploaddir.$file,0755);
		    	$source = $file;
		    }
		}
		#echo $source; 
	if ($_GET["edit"]){
		$_POST["txtName"] = mysql_real_escape_string($_POST["txtName"]);
		// Editieren
		if ($source){
			$insertHersteller = mysql_query("
			UPDATE s_articles_supplier SET name='{$_POST["txtName"]}', img='$source', link='{$_POST["supplierLink"]}',info='{$_POST["supplierInfo"]}'
			WHERE id={$_GET["edit"]}
			");
		}else {
			$insertHersteller = mysql_query("
			UPDATE s_articles_supplier SET name='{$_POST["txtName"]}', link='{$_POST["supplierLink"]}',info='{$_POST["supplierInfo"]}'
			WHERE id={$_GET["edit"]}
			");
		}
	}else {
		// Hinzuf�gen
		$_POST["txtName"] = mysql_real_escape_string($_POST["txtName"]);
		$sql = "
		INSERT INTO s_articles_supplier (name, img, link)
		VALUES ('{$_POST["txtName"]}','$source','{$_POST["supplierLink"]}')
		";
		
		$insertHersteller = mysql_query($sql);
		
		$_GET["edit"] = mysql_insert_id();
	}	
	if ($insertHersteller){
		$sInform = "Hersteller wurde erfolgreich gespeichert";
	}else {
		$sError = "Hersteller konnte NICHT angelegt werden";
	}
}else {
		$sError = "Bitte geben Sie den Namen des Herstellers ein";
}
if (!$_GET["edit"] && empty($_GET["new"])){
	$_GET["new"] = true;
}

}
// ===========================================
// Delete?
if ($_GET[„delete“]){
abfrage = mysql_query(" SELECT img FROM s_articles_supplier WHERE id="._GET[„delete“]."
");
$deletegfx = mysql_result($abfrage,0,„img“);

$abfrage = mysql_query("
DELETE FROM s_articles_supplier WHERE id=".$_GET["delete"]."
");

if ($abfrage){
	$sInform = $sLang["supplier"]["hersteller_supplier_deleted"];
	if(!empty($deletegfx)) @unlink ("../gfx_hersteller/".$deletegfx);
}else {
	$sError = $sLang["supplier"]["hersteller_supplier_not_deleted"]."<br>".mysql\_error(); } } // Edit? if ($\_GET["edit"]){ $abfrage = mysql\_query(" SELECT \* FROM s\_articles\_supplier WHERE id=".$\_GET["edit"]." "); $editArray = mysql\_fetch\_array($abfrage); $txtName = $editArray["name"]; $\_POST["supplierLink"] = $editArray["link"]; $file = $editArray["img"]; $\_POST["supplierInfo"] = $editArray["info"]; } ?\><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta name="author" content="&lt;?php echo $sLang[" supplier>"/\><meta name="copyright" content="&lt;?php echo $sLang[" supplier>" /\><meta name="company" content="&lt;?php echo $sLang[" supplier>" /\><meta name="reply-to" content="&lt;?php echo $sLang[" supplier>" /\><meta name="rating" content="general"><meta http-equiv="content-language" content="de"><title>Supplier</title><script type="text/javascript" src="../../../backend/js/mootools.js"></script><link href="../../../backend/css/modules.css" rel="stylesheet" type="text/css"><link href="../../../backend/css/icons.css" rel="stylesheet" type="text/css"><script>

// Shopware - 2 JS-Wrapper-Code -
function sWrapper(sFunction, sId){
switch (sFunction){
case „deleteSupplier“:
// Redirect
window.location.href = „<?php echo $_SERVER["PHP_SELF"] ?>?delete=“+sId;
break;
case „deleteSupplierImage“:
// Redirect
window.location.href = „<?php echo $_SERVER["PHP_SELF"] ?>?deleteImage=“+sId;
break;
case „newSupplier“:
window.location.href = „<?php echo $_SERVER["PHP_SELF"] ?>?new=1“;
break;
case „saveSupplier“:
try {
$(‚save‘).submit();
}catch (e) {}

	break;
}

}

function deleteSupplier(ev,text,number){
if (number){
parent.Growl(’<?php echo $sLang["supplier"]["hersteller_this_supplier"] ?> „’+number+’“ <?php echo $sLang["supplier"]["hersteller_articles_assigned"]?>‚);
}else {
parent.parent.sConfirmationObj.show(‘<?php echo $sLang["supplier"]["hersteller_the_supplier"] ?> „’+text+’“ <?php echo $sLang["supplier"]["hersteller_really_delete"] ?>‚,window,‚deleteSupplier‘,ev);
}
}
window.onload = function(){
<?php
if ($sInform){
echo "parent.parent.Growl(‘$sInform’);";
}
if ($sError){
echo „parent.parent.Growl(’$sError’);“;
// Das Fenster shaken
echo „parent.sWindows.focus.shake(50);“;
}
?>

};
<?php if (_GET["edit"] || _GET[„new“]){
?>
<?php if (!$_GET["edit"]) { echo $sLang["supplier"]["hersteller_new_supplier"]; } else { echo $sLang["supplier"]["hersteller_edit_supplier"]; } ?>
">
<?php echo $_SERVER["PHP_SELF"]."?edit={$_GET['edit']}"; ?>


<?php if ($file){
echo „<div style=„padding:15px;“>“;
}
?>

<ul>
<li>

<?php echo $sLang["supplier"]["hersteller_supplier_name"] ?>



  • <ul>
    <li>
    <label for="img"><?php echo $sLang["supplier"]["hersteller_supplier_picture"] ?></label>
    <input type="file" name="bild" id="Filedata">
    
  • <ul>
        <li>
            <label for="img"><?php echo $sLang["supplier"]["hersteller_supplier_homepage"] ?></label>
            <input type="text" class="w200" name="supplierLink" value="&lt;?php echo $_POST[" supplierlink>"
                   id="Filedata"/&gt;
        </li>
        <li class="clear">
    
        <li>
        <label for="info-text">Hersteller Info</label>
        <textarea type="text" class="w200" cols="50" rows="10" name="supplierInfo" id="info-text"><?php echo $_POST["supplierInfo"] ?></textarea>
        </li>
        <li class="clear">
    
        <li>
    	
    <br><br>
    
    <div class="buttons" id="div" style="float: left; width:110px">
      <ul>
      	<li id="buttonTemplate" class="buttonTemplate">
        <button type="submit" value="send" class="button">
        <div class="buttonLabel">Speichern</div>
        </button>
       </li>
      </ul>
    </div>
    
    <?php if(!empty($file))
    {
    ?>
    	<div class="buttons" id="div" style="float: left;">
    	<ul>
    	<li id="buttonTemplate" class="buttonTemplate">
        <button name="sDeleteImg" type="submit" value="send" class="button">
        <div class="buttonLabel">Herstellerbild entfernen</div>
        </button>
       	</li>
    	</ul>
    	</div>
    	
    	<ul>
    	<li class="clear">
    	</ul>
    	
    <?php }
    ?>
    
     </li>
    </ul>
    
    <?php } ?>[/code]
  • So, nun noch das Frontend: Es ist ausdrücklich nicht zum nachmachen gedacht! Ich hab mir die indexAction in der Shopware/Controllers/Frontend/Detail.php so erweitert: //Herstellerinfo holen $getSupplier = Shopware()-\>Db()-\>fetchRow(' SELECT Info FROM s\_articles\_supplier WHERE id = ' . $article['supplierID'] . ' '); $this-\>View()-\>supplier = $getSupplier; } Im Template kann man dann **{se name="SupplierInfo"}{/se}: {$supplier.Info}** sich das dann ausgeben lassen. Das ist aber weder Updatesicher noch ist es schön im Sinne von MVC. Da ich noch neu im Shopware bin muss ich die Struktur erst mal durchdringen. Wenn ich dann den Kickstarter verstanden hab, dann kann man das auch in ein Plugin verschieben. So sollte man das auch machen, denk ich… Viel Erfolg.