# Herstellerinformationen erweitern

**URL:** <https://forum.shopware.com/t/herstellerinformationen-erweitern/7049>\
**Category:** Shopware 3.5\
**Tags:** general\
**Created:** [7. Mai 2012 um 23:01 UTC](https://forum.shopware.com/t/herstellerinformationen-erweitern/7049 "2012-05-07T23:01:12Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![pepsilight](https://avatars.discourse-cdn.com/v4/letter/p/e274bd/32.png) [@pepsilight](https://forum.shopware.com/u/pepsilight)\
**Post date:** [7. Mai 2012 um 23:01 UTC](https://forum.shopware.com/t/herstellerinformationen-erweitern/7049/1 "2012-05-07T23:01:12Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![fenta23](https://avatars.discourse-cdn.com/v4/letter/f/ea666f/32.png) [@fenta23](https://forum.shopware.com/u/fenta23)\
**Post date:** [10. Mai 2012 um 13:06 UTC](https://forum.shopware.com/t/herstellerinformationen-erweitern/7049/2 "2012-05-10T13:06:22Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![fenta23](https://avatars.discourse-cdn.com/v4/letter/f/ea666f/32.png) [@fenta23](https://forum.shopware.com/u/fenta23)\
**Post date:** [10. Mai 2012 um 14:37 UTC](https://forum.shopware.com/t/herstellerinformationen-erweitern/7049/3 "2012-05-10T14:37:14Z")

</div>

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]

---

<div class="post-metadata">

**Author:** ![fenta23](https://avatars.discourse-cdn.com/v4/letter/f/ea666f/32.png) [@fenta23](https://forum.shopware.com/u/fenta23)\
**Post date:** [10. Mai 2012 um 16:00 UTC](https://forum.shopware.com/t/herstellerinformationen-erweitern/7049/4 "2012-05-10T16:00:54Z")

</div>

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.
