Hallo zusammen,
ich suche eine Lösung zur Grundpreisangabe für einen Weinshop(Virtuemart Version 1.1.5). Bisher habe ich leider nichts brauchbares gefunden.
Hat jemand einen Tipp für mich?
Viele Dank im Voraus!
jorgoz
Hallo zusammen,
ich suche eine Lösung zur Grundpreisangabe für einen Weinshop(Virtuemart Version 1.1.5). Bisher habe ich leider nichts brauchbares gefunden.
Hat jemand einen Tipp für mich?
Viele Dank im Voraus!
jorgoz
In die Richtung ist mir leider nix bekannt, aber bastel es doch selbst fix ein. Fügst halt fix ne neue Spalte namens "grundpreis" oder anders in deine Tabelle "jos_vm_product" und baust dir ins Backend in die Datei:
\administrator\components\com_virtuemart\html\prod uct.product_form.php
ein weiteres Inputfield ein, wo du deinen Grundpreis für das Produkt einträgst
und in der Datei:
\administrator\components\com_virtuemart\classes\p s_product.php
fügst du nur die Zeilen fürs Eintragen in die DB und fürs Updaten in der DB ein
Oder (was natürlich etwas aufwendiger und weniger flexibel wäre) du schreibst es bei den Produkten in die Produktbeschreibung mit rein.
90% aller Computerprobleme entstehen zwischen Stuhl und Tastatur.
Steht bei mir als nächstes an.
Ich stelle die Dateien dann hier ein.
Zwei kurze Fragen hab ich noch:
Die Formularfelder und DB-Felder heißen basis_gewicht und basis_gewicht_einheit. Beide einfache Textfelder, Gewicht ist in DB decimal (10,4), basis_gewicht_einheit ist VARCHAR (45).
in ps_product.php
basis_gewicht_einheit ist VARCHAR, kann ich das so übergeben?PHP-Code:'basis_gewicht' => vmRequest::getFloat('basis_gewicht'),
'basis_gewicht_einheit' => $d['basis_gewicht_einheit'] );
in shop.browse.php muss ich es ja auch wieder auslesen, wie?
würde ich als Vorlage benutzen.PHP-Code:$sqlman = mysql_query("SELECT DISTINCT ma.mf_name
FROM jos_vm_manufacturer AS ma, jos_vm_product_mf_xref AS mf
WHERE mf.product_id = $product_id
AND mf.manufacturer_id = ma.manufacturer_id");
*kopfschüttel* Mann bin ich lange raus *seufz*
TIA
samundo
Geändert von samundo (18.08.2010 um 07:50 Uhr)
Auf dem richtigen Weg
In der \administrator\components\com_virtuemart\html\prod uct.product_form.php
baust du deine Input Felder ein.
Im Prinzip 2 neue Zeilen, in etwa so:
in der \administrator\components\com_virtuemart\classes\p s_product.phpPHP-Code:<tr>
<td width="29%" >
<div style="text-align:right;font-weight:bold;">
Grundpreis:
</div>
</td>
<td>
<input type="text" class="inputbox" name="basis_gewicht" value="<?php $db->sp("basis_gewicht"); ?>" size="10" maxlength="10" />
</td>
</tr>
<tr>
<td width="29%" >
<div style="text-align:right;font-weight:bold;">
Grundpreis:
</div>
</td>
<td>
<input type="text" class="inputbox" name="basis_gewicht_einheit" value="<?php $db->sf("basis_gewicht_einheit"); ?>" size="10" maxlength="10" />
</td>
</tr>
dann deine 2 Zeilen, sowohl in der update() als auch in der add() Funktion
also:
in der \administrator\components\com_virtuemart\html\shop .browse.phpPHP-Code:'basis_gewicht' => vmRequest::getFloat('basis_gewicht'),
'basis_gewicht_einheit' => vmGet($d,'basis_gewicht_einheit'),
und zu guter Letzt dann in deiner \components\com_virtuemart\themes\default\template s\browse\browse_1.php oder browse_2.php oder welche auch immer du nutztPHP-Code:$product_id = $db_browse->f('product_id');
$sqlgp = mysql_query("SELECT basis_gewicht,basis_gewicht_einheit
FROM jos_vm_product
WHERE product_id = $product_id");
while($rowgp = mysql_fetch_object($sqlgp)){
$products[$i]['basis_gewicht'] = $rowgp->basis_gewicht;
$products[$i]['basis_gewicht_einheit'] = $rowgp->basis_gewicht_einheit;
}
diese Zeilen nutzen:
PHP-Code:<?php echo sprintf("%01.2f",$basis_gewicht) ?>€
<?php echo $basis_gewicht_einheit ?>
90% aller Computerprobleme entstehen zwischen Stuhl und Tastatur.
Danke wats,
da du ja nun die Beispiele so schön hier rein gestellt hsat kann ich es jawohl dabei belassen.
Ein Hinweis nur noch: AUCH in die flypage.tpl.php gehört natürlich die Grundpreisangabe. Meine Variante:Danke klickt und sagtPHP-Code:(€ <?php echo sprintf("%01.2f",$basis_gewicht) ?>/<?php echo $basis_gewicht_einheit ?>)
samundo (.de)
P.S.: Ach ja, den value für das input-feld auslesen *vordiestirnklopp* und sprintf() *AUA*
Kann man auch einen PHP-Neuling erklären, an welche Stellen(Zeilen) der PHP-Dateien, die Änderungen eingefügt werden?
Vielen Dank!
Hallo jorgoz,
mom. hab ich leider keine unbearbeitete Version der Dateien mehr auf dem Rechner um die Zeilennummern nennen zu können, aber im Grunde steht wirklich alles oben.
Den HTML-Teil in \administrator\components\com_virtuemart\html\prod uct.product_form.php stellst du dahin, wo du ihn in der Seite sehen willst, bei mir unter dem Bruttopreis.
Genauso wahlfrei ist die Platzierung in \components\com_virtuemart\themes\default\template s\browse\browse_1.php bzw. der flypage.tpl.php. Dort, wo du die Ausgabe sehen willst kommt der Code.
In \administrator\components\com_virtuemart\classes\p s_product.php wirst du CIRCA bei Zeile 300 UND 500 fündig.
In \administrator\components\com_virtuemart\html\shop .browse.php habe ich es nach dem Abschnitt "// Add-to-Cart Button", der bei mir mit Zeile 431 endet.
HTH samundo
Danke samundo,
es hat wunderbar geklappt!
Gruß
jorgoz
Cheers mate, you're welcome!
Lesezeichen