ProductAttributes lite v2

Quick.Cart    Add comments

product_attributes_lite_v22

product_attributes_lite_v21

Nová verze původního pluginu ProductAttributes lite z mé tvorby, která obsahuje vylepšené administrační rozhraní.


Čísla řádků odpovídají originálnímu Quick.Cart v3.6.
(upravené soubory ke stažení)

Následující části kódu se vkládají na uvedené řádky PŘED text, který se na nich nalézá. Případně kód nahrazuje určité řádky nebo obsah souboru.
Nezapomeňte na úpravu databáze, především na vkládání symbolu $ na konec řádků s daty v níže určených souborech.


Uvedená práce (dílo) podléhá licenci Creative Commons Attribution-ShareAlike 3.0 Licence Creative Commons

To znamená, že kód (dílo) smíte šířit (kopírovat, distribuovat a sdělovat dílo veřejnosti) a upravovat (pozměňovat, doplňovat, využívat celé nebo částečně v jiných dílech). Za podmínek uvedení autora (uvedení odkazu, viz níže) a zachování licence.

Uvedení odkazu: na každé stránce generované obchodem (či jiným systémem), ve kterém byl kód použit, musí být uveden viditelný odkaz na web eFox.cz ve formátu:

<a title="eFox.cz" href="http://efox.cz">Extended by <strong>eFox.cz</strong></a>

Pokud mi zašlete mail o umístění odkazu v obchodě s linkem a krátkým popisem, zařadím Vás do seznamu uživatelů.

vložit do souboru actions_admin/products.php na řádek 64

  if ( ereg( '\|\|', $aData['sTyp'] ) ) {
    $nameExplode = explode( '||', $aData['sTyp'] );
    $sTyp = trim( $nameExplode[0] );
$aExplode = explode( '|', $nameExplode[1] );
$iExplode = count( $aExplode );
for ($i = 0; $i < $iExplode; $i++ ) {
$sAttributes .= "        <tr>";
      $sAttributes .= "          <td>";
      $sAttributes .= "            <input type=\"text\" name=\"aAttributes[".$i."]\" class=\"input\" value=\"".trim( $aExplode[$i] )."\" size=\"20\" />";
      $sAttributes .= "          </td>";
      $sAttributes .= "        </tr>";
    }
for ($i = $iExplode; $i < $iExplode + 3; $i++ ) {
$sAttributes .= "        <tr>";
      $sAttributes .= "          <td>";
      $sAttributes .= "            <input type=\"text\" name=\"aAttributes[".$i."]\" class=\"input\" value=\"\" size=\"20\" />";
      $sAttributes .= "          </td>";
      $sAttributes .= "        </tr>";
    }
  } else {
    $sTyp = "";
for ( $i = 0; $i < 3; $i++ ) {
      $sAttributes .= "        <tr>";
      $sAttributes .= "          <td>";
      $sAttributes .= "            <input type=\"text\" name=\"aAttributes[".$i."]\" class=\"input\" value=\"\" size=\"20\" />";
      $sAttributes .= "          </td>";
      $sAttributes .= "        </tr>";
}
  }

nahradit v souboru actions_client/p.php řádek 77

        $oOrder->deleteFromBasket( $iProductDelete, $sTyp );

vložit do souboru actions_client/p.php na řádek 83

if ( isset( $_POST['sTyp'] ) ) {
$sTyp = str_replace( '$', '&#36;', htmlspecialchars (stripslashes( $_POST['sTyp'] ) ) );
      } else {
$sTyp = "";
      }

nahradit v souboru actions_client/p.php řádek 90

        $oOrder->addToBasket( $iProductAdd, $iQuantity, $sTyp );

vložit do souboru actions_client/products.php na řádek 7

  	if ( !empty( $aData['sTyp'] ) ) {
$nameExplode = explode( '||', $aData['sTyp'] );
$aData['sTyp'] = "<strong>".trim( $nameExplode[0] )."</strong>&nbsp;";
$typeExplode = explode( '|', $nameExplode[1] );
$aData['sTyp'] .= "<select name=\"sTyp\">";
foreach ( $typeExplode as $typeOption ) {
$aData['sTyp'] .= "<option value=\"".trim( $typeOption )."\">".trim( $typeOption )."</option>";
}
$aData['sTyp'].= "</select>";
}

nahradit v souboru core/orders.php řádek 39

        $aData['sLinkDelete'] = defined( 'CUSTOMER_PAGE' ) ? $GLOBALS['aData']['sLinkName'].'&amp;iProductDelete='.$aData['iProduct'].'&amp;sTyp='.urlencode($aData['sTyp']) : null;

nahradit v souboru core/orders.php řádky 74,75,76

        $this->aProducts[$i] = orders_temp( $aExp );
        $this->aProducts[$i]['sLinkName'] = '?'.$aExp[1].','.change2Url( $this->aProducts[$i]['sName'] );
        $this->aProducts[$i]['fSummary'] = normalizePrice( $this->aProducts[$i]['fPrice'] * $this->aProducts[$i]['iQuantity'] );

vložit do souboru core/orders.php na řádek 77

if ( !empty( $this->aProducts[$i]['sTyp'] ) ) { $this->aProducts[$i]['sName'] .= " [".$this->aProducts[$i]['sTyp']."]"; }

nahradit v souboru core/orders.php řádky 133,134

          if( isset( $aForm['aProducts'][$aExp[1]]['~'.$aExp[5]] ) && is_numeric( $aForm['aProducts'][$aExp[1]]['~'.$aExp[5]] ) && $aForm['aProducts'][$aExp[1]]['~'.$aExp[5]] > 0 && $aForm['aProducts'][$aExp[1]]['~'.$aExp[5]] < 10000 && $aExp[0] == $_SESSION['iCustomer'.LANGUAGE] ){
            $aExp[2] = (int) $aForm['aProducts'][$aExp[1]]['~'.$aExp[5]];

nahradit v souboru core/orders.php řádek 157

  function deleteFromBasket( $iProduct, $sTyp, $iOrder = null ){

nahradit v souboru core/orders.php řádek 170

        if( $aExp[1] == $iProduct && $aExp[0] == $iOrder && $aExp[5] == urldecode($sTyp) ){

nahradit v souboru core/orders.php řádek 193

  function addToBasket( $iProduct, $iQuantity, $sTyp, $iOrder = null ){

vložit do souboru core/orders.php na řádek 211

if( $aExp[5] == $sTyp ){

vložit do souboru core/orders.php na řádek 220

} else {
            $aFile[$i] .= "\n";
          }

nahradit v souboru core/orders.php řádek 241

      fwrite( $rFile, $iOrder.'$'.$iProduct.'$'.$iQuantity.'$'.$oProduct->aProducts[$iProduct]['fPrice'].'$'.$oProduct->aProducts[$iProduct]['sName'].'$'.$sTyp.'$'."\n" );

vložit do souboru core/products-admin.php na řádek 178

if( isset( $aForm['aAttributes'] ) && is_array( $aForm['aAttributes'] ) ) {
$empty = true;
foreach( $aForm['aAttributes'] as $sValue ) { if ( !empty( $sValue ) ) $empty = false; }
if ( $empty ) { $aForm['sTyp'] = ""; }
else {
$aForm['sTyp'] = trim( str_replace( '|', '&#124;', $aForm['sTyp'] ) ).'||';
$first = true;
foreach( $aForm['aAttributes'] as $sValue ){
$sValue = trim( $sValue );
if ( !empty( $sValue ) ) {
if ( $first ) { $first = false; }
else { $aForm['sTyp'] .= '|'; }
$aForm['sTyp'] .= trim ( str_replace( '|', '&#124;', $sValue ) );
}
}
}
} else { $aForm['sTyp'] = ""; }

vložit v souboru db/en_products.php na konec každého řádku s daty znak $

nahradit obsah souboru db/en_products.def.php

<?php
$aFieldsNames   = Array( 'iProduct' => 0, 'sName' => 1, 'fPrice' => 2, 'iStatus' => 3, 'iPosition' => 4,  'sAvailable' => 5, 'sDescriptionShort' => 6, 'sTyp' => 7 );
$aFieldsSort    = Array( 'iPosition', 'sName', 'iProduct', 'sAvailable', 'fPrice', 'sDescriptionShort', 'iStatus', 'sTyp' );

function en_products( $aExp ){
  return Array( 'iProduct' => $aExp[0], 'sName' => $aExp[1], 'fPrice' => $aExp[2], 'iStatus' => $aExp[3], 'iPosition' => $aExp[4], 'sAvailable' => $aExp[5], 'sDescriptionShort' => $aExp[6], 'sTyp' => $aExp[7] );
}
?>

vložit v souboru db/orders_temp.php na konec každého řádku s daty znak $

nahradit obsah souboru db/orders_temp.def.php

<?php
$aFieldsNames = Array( 'iCustomer' => 0, 'iProduct' => 1, 'iQuantity' => 2, 'fPrice' => 3, 'sName' => 4, 'sTyp' => 5 );

function orders_temp( $aExp ){
  return Array( 'iCustomer' => $aExp[0], 'iProduct' => $aExp[1], 'iQuantity' => $aExp[2], 'fPrice' => $aExp[3], 'sName' => $aExp[4], 'sTyp' => $aExp[5] );
}
?>

vložit do souboru lang/en.php na řádek 213

$lang['productattributes_lite_buy'] = "Koupit";
$lang['Attributes'] = "Druhy";
$lang['productattributes_admin_title'] = "Popis";
$lang['productattributes_admin_attribute'] = "Druh";

nahradit v souboru templates/orders_basket.tpl řádek 10

    <label for="quantity$aData[iProduct]">$lang[Quantity]</label><input type="text" name="aProducts[$aData[iProduct]][~$aData[sTyp]]" value="$aData[iQuantity]" size="3" maxlength="4" class="input" id="quantity$aData[iProduct]" alt="int" />

nahradit v souboru templates/pages_default.tpl řádek 74

<div class="basket"><a href="$aData[sLinkName]">$lang[productattributes_lite_buy]</a></div>

vložit do souboru templates/products_default.tpl na řádek 36

    $aData[sTyp]

vložit do souboru templates/admin/products.tpl na řádek 165

<li class="tabAttributes"><a href="#more" onclick="displayTab( 'tabAttributes' )">$lang['Attributes']</a></li>

vložit do souboru templates/admin/products.tpl na řádek 225

    <table class="tab" id="tabAttributes">
    <!-- tab attributes start -->
      <thead>
        <tr>
          <td>$lang['productattributes_admin_title']</td>
        </tr>
        <tr>
          <td><input type="text" name="sTyp" class="input" value="$sTyp" size="15" /></td>
        </tr>
        <tr>
          <td>$lang['productattributes_admin_attribute']</td>
        </tr>
      </thead>
      <tbody>
$sAttributes
      </tbody>
    <!-- tab attributes end -->
    </table>



6 Responses to “ProductAttributes lite v2”

  1. Miloš napsal: | Odpovědět

    Pouzil jsem toto rozsireni ale po ulozeni se mi neulozi nastavení tohoto rozšíření.. Může někdo poradit?

    • admin napsal: | Odpovědět

      Máte korektně nastavené atributy u souborů ve složce „db“? Upravoval jste obchod samostatně nebo využil upravené soubory?

      • Miloš napsal: | Odpovědět

        Vše jede… Díky za užitečné fce.

  2. Miloš napsal: | Odpovědět

    Jdu na to znova, mam verzi 3.4, pujde to naroubovat? Taktez jsem pouzil rozsireni zobrazovani posledních produktu a taktez nemohu menit nastavení.

  3. Tom napsal: | Odpovědět

    Ahoj, neřešili jste to pro QC v4.x? Zkoušel jsem to, ale je tam jiny obsah souboru, napr action-client/p.php je jiny. Diky

Leave a Reply

Premium Wordpress Themes by Natty WP. Web Hosting
Images by our golf tips desEXign.