Rádió gomb egyedi átalakítása 1. verzió

Nem rég találkoztam egy olyan problémával, ami miatt a Joomla - VirtueMart (custom field) kiválasztó rádiógombt kellett átdizájnolni... tekintve, hogy a kód elég kötött megpróbáltam leginkább CSS-ből megoldani a problémát.

Virtuemart termék csatolt file egyedi mezővel

Egy munka során merült fel igény termékekhez tájékoztató dokumentum feltöltés, amit azután a vásárló korlátozás nélkül le tud tölteni. A neten található mindenféle megoldás, amik általában többet tudnak mint ami minimálisan szükséges, viszont cseréve jellemzően 19-49$ áron érhető el, néhány esetben még tesztelni sem lehet.

Az alábbi megoldás J 3.x és VM 3.x pároson működik. Továbbfejleszthető...

Egyedi mező felvitele

A Custom fileds (egyedi mezők) menüben vegyünk fel egy új egyedi mezőt: 

  • Típus: String
  • Title (cím): File / Letöltés / stb. (ez lesz a mező csoport elnevezése)
  • Layout position: file

Egyedi mező létrehozás, felülírás sablonból

Ha ez meg van, készítsünk sablon felülírást erről a fileról (ha még nincs):

components > com_virtuemart > views > productdetails > default.php

ide:

templates > [saját sablon neve] > html > com_virtuemart > productdetails > default.php

Egyes sablonoknál előfordul, hogy a VM fájlok felül vannak írva, ezek esetében meg kell keresnünk a legjobb helyet a letölthető fájl(ok)nak.

Egyedi mező beillesztés

<?php// custom file
$product = $this->product;
$position = 'file';$class = 'product-fields';  
if (!empty($product->customfieldsSorted[$position]))  {   
   $custom_title = null;
   foreach ($product->customfieldsSorted[$position] as $field)  {       
      if ( $field->is_hidden )   continue;  ?>
      <div class="product-field product-field-type-<?php echo $field->field_type ?>">           
      <?php if (!$customTitle and $field->custom_title != $custom_title and $field->show_title) { ?>
          <span class="product-fields-title-wrapper"><span class="product-fields-title"><strong><?php echo vmText::_ ($field->custom_title) ?></strong></span>
          <?php if ($field->custom_tip) {
                        echo JHtml::tooltip ($field->custom_tip, vmText::_ ($field->custom_title), 'tooltip.png');
                    } ?></span>
         <?php }
            if (!empty($field->display)){
                  $filestring = $field->display;
                  if (!strpos($filestring,'|')) { 
             ?>
               <div class="product-field-display"><a href="/images/stories/virtuemart/pdf/<?php echo $field->display; ?>">file download</a></div>
            <?php
} else {
                $file = array();
                $file = explode("|",$filestring);?>
               <div class="product-field-display">
               <a href="/images/stories/virtuemart/pdf/<?php echo $file[1] ?>"><?php echo $file[0]; ?></a>
               </div><?php
>                }}
          if (!empty($field->custom_desc)) {
               ?>
         <div class="product-field-desc"><?php echo vmText::_($field->custom_desc) ?></div>
          <?php   }  ?>
        </div>   
<?php    }} // custom file end ?>

A kódot értelem szerint oda tegyük, ahol a tartalmat meg szeretnénk jeleníteni. A kód alapvető formázáshoz szükséges osztályokkal is rendelkezik, amik kiolvashatók.

Működés

A letölthető állományokat a "images/stories/virtuemart/pdf/" könyvtárba kell helyezni. 

 Termék oldalon hozzá adjuk a létrehozott egyedi mezőt.

A mező értéke egyszerű esetben a fájlnév. Ebben az esetben a "Download file" felirat jelenik meg. (Nyelvi változóval helyettesíthető)

Ha szeretnénk egyedi címet adni, azt ilyen formában tehetjük:

állomány cím|filenev.file

Azaz a név és a fájlnév közé tegyünk egy | (pipe) jelet.