Virtuemart. Užrašas „Išpardavimas“, „Naujiena“, „Nuolaida“

PDFSpausdintiEl. paštas

Sekmadienis, 22 Gruodis 2013 15:55 Parašė Rimvydas Peržiūrų: 4561

( 6 Balsai )
Virtuemart. Užrašas „Išpardavimas“, „Naujiena“, „Nuolaida“ - 5.0 out of 5, based on 6 votes

Šiuo metu tai populiaru, gražu ir informatyvu. Dauguma klubinių šablonų tai turi ir pateikia kaip privalumą taigi jei tai aktualu ir nenorime mokėti už papildomus įskiepius imame ir pasidarome patys. Pasirausus internete ir kode paaiškėjo kad galimi keli variantai. Kadangi straipsnis kaip ir daugumas čia pateikiamų patarimų skirtas „pradedantiems“ darome universalų paprastesnį variantą. Ant esamos prekės paveikslėlio norimai prekei uždėsime reikiamą užrašą.

 

Pirmiausiai, kad būtų galima konkrečiai prekei priskirt ar ne užrašą ir patogu būtų tai daryt visa tai turime atlikt prekės formavimo lentelėje. Visą pvz. demonstruoju su standartiniu Joomla šablonu ir VM 2.0.26 versija. Iš princpo tai VM versija neturi reikšmės  viskas turi veikt ir su žemesnia versija taip pat visa tai su nedidelėmis korekcijomis galima pritaikyti ir VM 1.1.X versijai. Šiame pavyzdyje Virtuemart šablonas „neperskirstytas“ t.y neperkeltas į temlpates/html katalogą, o yra components/com_virtuemart kataloge. Šiaip tai šablono failus reikėtų persikelt į html katalogą tada atliekant VM atnaujinimus "mažiau darbo" bus ateityje.

Atsidarome failą   product_edit_information.php esantį: administrator\components\com_virtuemart\views\product\tmpl\product_edit_information.php


Susirandame kodą (43 eilutė):

1
2
3
4
5
6
7
<th >
 <?php echo JText::_('COM_VIRTUEMART_PRODUCT_FORM_SKU') ?>
</th>
    <td  height="2" colspan="3" >
        <input type="text" class="inputbox" name="product_sku" id="product_sku" value="<?php echo $this->product->product_sku; ?>" size="32" maxlength="64" />
    </td>
</tr>

Ir po juo įterpiame:

1
2
3
4
5
6
<td width="21%" >
    <div style="text-align:right;font-weight:bold;"><?php echo "Produkto žymėjimas" ?></div>
</td>
<td width="79%" height="2">
    <input type="text" class="inputbox" name="product_sale" id="product_sale" value="<?php echo $this->product->product_sale; ?>" size="32" maxlength="64" />
</td>

Sekantis etapas duomenų bazės lentelės korekcija .
Duomenų bazės lentelėje „prefix_ virtuemart_products“ susikuriame papildomą lauką product_sale  su parametrais (atributais) analogiškais product_sku laukui.

Toliau:
administrator/components/com_virtuemart/tables/products.php

susirandame įrašą class TableProducts extends VmTable {

ir sakykime po sku eilute įterpiame savo eilutę:
var $product_sale= '';
Toliau pasidarome  paveikslėlius (png)  kuriuos norėsime, matyt, kaip užrašą ir įkeliame į images katalogą.
Pabaigai  visa tai reikia išvest į ekraną. Kad tai būtų atvaizduojama prekės šablone koreguojame  \components\com_virtuemart\views\productdetails\tmpl\default.php

Jame susirandame  koda (apie 201 eilutę):

1
2
3
<?php
echo $this->loadTemplate('images');
?>
Ir virš jo talpiname sękanti kodo gabaliuką:
1
<img style="margin-bottom:-20px;margin-left:50px; position:relative; top:0px; right:0px;" src="/images/<?php echo $this->product->product_sale; ?>.png" width="80" height="80" />

Matome rezultatą:

Truputi paaiškinu šioje vietoje kodą. Paveikslėlio vieta ,padėtis, dydis ir t.t. koreguojama pagal reikiamą šabloną ir dizainą keičiant margin,position,width,height parametrus.
Šiuo kodu  <?php echo $this->product->product_sale; ?>.png mes įterpiame ne vieną konkretų paveikslėlį, o nurodome jo vardą be plėtinio kurį turime įrašyt  prekės kortelėje mūsų sukurtame „Produkto žymėjimas“ laukelyje. Taip padarome laukelį universalų todėl nereikai kiekvienm užrašui daryt atskirai.

Kad visa tai būtų matoma ir kategorijose koreguojame kategorijos šabloną:

Susirandame gairę <div class="spacer"> (apie 230 eilutė)
Ir po ja  įterpiame

1
<img style="margin-bottom:-20px;margin-left:80px; position:relative; top:0px; right:0px;" src="/images/<?php echo $product->product_sale; ?>.png" width="45" height="45" />


Žiūrim gautą rezultatą:


Aptarkite šį straipsnį forume
Norėdami dalyvauti diskusijoje turite prisijungti arba užsiregistruoti .

Joomla123.lt is not affiliated with or endorsed by Open Source Matters or the Joomla! Project.
The Joomla!® name is used under a limited license from Open Source Matters in the United States and other countries.