Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Year Make Model Fahrzeug-Filter von OSC nach XTC konvertieren

    digiti09

    • Neu im Forum
    • Beiträge: 22
    Hallo,

    ich versuche das Contrib

    Year Make Model (YMM) "Select Vehicle" box for Auto Parts web sites

    http://addons.oscommerce.com/info/6684/v,22

    für XTC an zu passen.

    Soweit klappt alles, bis auf die BOX im column_left.

    Vielleicht hat hier einer die Erfahrung und baut die mal schnell um?  :-/

    Wenns funktioniert, stell ich die hier mal zur Schau.

    Code: PHP  [Auswählen]
    <?php
    /*
    Written by pektsekye@gmail.com on Saturday Jun 20  2009
    version 1.5.0
    */


      $Make_Model_Year_query = tep_db_query("select distinct products_car_make, products_car_model, products_car_year_bof, products_car_year_eof from products_ymm where products_car_make != '' and  products_car_model != '' and products_car_year_bof !=0 and products_car_year_eof != 0 order by products_car_make, products_car_model, products_car_year_bof, products_car_year_eof");
      if ($number_of_rows = tep_db_num_rows($Make_Model_Year_query)) {
    ?>
    <!-- year make model //-->
              <tr>
                <td>
    <?php
        $info_box_contents = array();
        $info_box_contents[] = array('text'  => '<font color="' . $font_color . '">' . BOX_HEADING_MAKE_MODEL_YEAR . '</font>');
        new infoBoxHeading($info_box_contents, false, false);

    // Display a drop-down

            $Make_array[] = array('id' => 'all', 'text' => 'Choose Vehicle');
                    $Model_array[] = array('id' => 'all', 'text' => 'Choose Model');
                    $Year_array[] = array('id' => 0, 'text' => 'Choose Year');

       $javascript = '<script language="javascript" type="text/javascript">
    var a = new Array();
    var b = new Array();
    var c = new Array();'
    ;

            $y = array();
            $M_a = array();
            $products_car_make_old = '';
            $products_car_model_old = '';
            while ($Makes = tep_db_fetch_array($Make_Model_Year_query)) {
                   
                            if (!isset($M_a [$Makes['products_car_make']]))
                                    $Make_array[] = array('id' => $Makes['products_car_make'], 'text' => $Makes['products_car_make']);

                                                   
                            if (!isset($M_a [$Makes['products_car_make']][$Makes['products_car_model']]) && count($y) > 0){
                                    $M_a [$products_car_make_old][$products_car_model_old]=$y;
                                    $y = array();
                            }
                           
                            if ($Makes['products_car_year_bof'] != 0 && $Makes['products_car_year_eof'] != 0){
                                    if ($Makes['products_car_year_bof']  == $Makes['products_car_year_eof']){
                                            $y [$Makes['products_car_year_bof']] = 1;
                                    } elseif ($Makes['products_car_year_bof']  < $Makes['products_car_year_eof']){ 
                                            while ($Makes['products_car_year_bof'] <= $Makes['products_car_year_eof']){
                                                    $y [$Makes['products_car_year_bof']] = 1;
                                                    $Makes['products_car_year_bof']++;
                                            }
                                    }
                            }
                            $products_car_make_old = $Makes['products_car_make'];
                            $products_car_model_old = $Makes['products_car_model'];
                            $M_a [$Makes['products_car_make']][$Makes['products_car_model']] = array();
            }

            $M_a [$products_car_make_old][$products_car_model_old]=$y;
                   

                   
            $i = 0;
            foreach ($M_a as $k =>$v){
                    $javascript .= 'a['.$i.']="'.$k.'";b['.$i.']=new Array(';
                            $ii = 0;
                            $s = '';
                            foreach ($M_a[$k] as $kk =>$vv){
                                    $javascript .= ($ii != 0 ? ',' : '').'"'.$kk.'"';
                                    $ss = '';
                                    $iii = 0;
                                    foreach ($M_a[$k][$kk] as $kkk => $vvv){
                                            $ss .= ($iii != 0 ? ',' : '').$kkk;
                                            $iii++;
                                    }
                                    if ($iii == 1)
                                            $ss = '"'.$ss.'"';
                                    $s .= 'c['.$i.']['.$ii.']=new Array('.$ss.');';
                                    $ii++; 
                            }
                    $javascript .= ');c['.$i.']=new Array();'.$s;  
                    $i++;  
            }      
           
          $javascript .= '
    function pop_model(){
           
            var o ="<select name=\"Model\" onChange=\"pop_year();\" style=\"width: 100%\"><option value=\"all\">Choose Model</option>";    
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    for(var i = 0; i < b[v].length; i++)
                      o+="<option value=\""+b[v][i]+"\">"+b[v][i]+"</option>";
            }
            o+="</select>";
            document.getElementById("model_select").innerHTML= o;
        document.getElementById("year_select").innerHTML= "<select name=\"Year\" style=\"width: 100%\"><option value=\"0\">Choose Year</option></select>";
    }
    function pop_year(){
           
            var o ="<select name=\"Year\" style=\"width: 100%\" onChange=\"document.make_model_year.submit();\"><option value=\"0\">Choose Year</option>";
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    var sv2 = document.make_model_year.Model.value;
                            if(sv2 != "all"){
                                    var v2 = b[v].length;
                                    while(v2--) if(sv2 == b[v][v2]) break; 
                                    for(var i = 0; i < c[v][v2].length; i++)
                                            o+="<option value=\""+c[v][v2][i]+"\">"+c[v][v2][i]+"</option>";
                            }
            }
            o+="</select>";
            document.getElementById("year_select").innerHTML= o;
    }
    </script>'
    ;

        if (isset($Make_selected_var) && isset($M_a[$Make_selected_var])){
          foreach ($M_a[$Make_selected_var] as $k => $v)
                    $Model_array[] = array('id' => $k, 'text' => $k);}
            if (isset($Make_selected_var) && isset($Model_selected_var) && isset($M_a[$Make_selected_var][$Model_selected_var]))
          foreach ($M_a[$Make_selected_var][$Model_selected_var] as $k => $v)
                    $Year_array[] = array('id' => $k, 'text' => $k);
                   
              $script = basename($_SERVER['SCRIPT_NAME']);
                           
                    if ($script == 'index.php' && (!isset($cPath)  || $cPath == '')){
                            if (defined('FILENAME_ALLPRODS_SEO') && ALL_PRODUCTS_SEO == 'true'){
                                    $script = FILENAME_ALLPRODS_SEO ;
                            } elseif (defined('ALL_PRODUCTS') && ALL_PRODUCTS == 'true'){
                                    $script = FILENAME_ALLPRODS ;  
                            }      
                    }
                           
           
                           
                           
              $hidden_get_variables = '';
              $keys = Array('Year','Make','Model',tep_session_name(),'x','y');

            if ($script == 'product_info.php'){
                    if(isset($cPath)  || $cPath != ''){
                            $HTTP_GET_VARS['cPath'] = $cPath;
                            $link = 'index.php?cPath='.$cPath.'&Make=all&Model=all&Year=0';                
                    } else {
                            $link = 'index.php?Make=all&Model=all&Year=0';                 
                    }                              
                    $action = 'index.php';
                    $keys [] = 'products_id';      
            } elseif (SEO_ENABLED == 'true' && basename($PHP_SELF) != FILENAME_ADVANCED_SEARCH_RESULT){
                    $action = tep_href_link($script, tep_get_all_get_params(array('Make','Model','Year')), 'NONSSL', false);
                    $link = tep_href_link($script, tep_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0', 'NONSSL', false);
                    $keys [] = 'cPath';
                    $keys [] = 'products_id';      
                    $keys [] = 'manufacturers_id';                 
            } else {
                    $action = $script;                     
                    $link = $script.'?'.tep_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0';                  
            }
                   
              reset($HTTP_GET_VARS);
              while (list($key, $value) = each($HTTP_GET_VARS)) {
                    if (!in_array($key,$keys))
                      $hidden_get_variables .= tep_draw_hidden_field($key, $value);
              }            
             
          $info_box_contents = array();
              $info_box_contents[] = array("text"  => $javascript);
          $info_box_contents[] = array('form' => tep_draw_form('make_model_year', $action, 'get'),
                                       'text' =>  tep_draw_pull_down_menu('Make', $Make_array, (isset($Make_selected_var) ? $Make_selected_var : ''), 'onChange="pop_model();"  style="width: 100%"') .'<br><br>'.
                                                                        '<span id="model_select">'.tep_draw_pull_down_menu('Model', $Model_array, (isset($Model_selected_var) ? $Model_selected_var : ''), 'onChange="pop_year();" style="width: 100%"') .'</span><br><br>'.
                                                                        '<span id="year_select">'.tep_draw_pull_down_menu('Year', $Year_array, (isset($Year_selected_var) ? $Year_selected_var : ''), 'onChange="document.make_model_year.submit();" style="width: 100%"') .'</span><br><br>'.
                                                                            $hidden_get_variables . tep_hide_session_id() .
                                                                            '<input type="submit" value="Go">&nbsp;&nbsp;&nbsp;<a href="'.$link.'">Clear Vehicle</a>');
       

        new infoBox($info_box_contents);
    ?>
                </td>
              </tr>
    <!-- year make model_eof //-->
    <?php
      }
    ?>
     


    Linkback: https://www.modified-shop.org/forum/index.php?topic=20441.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Soweit klappt alles, bis auf die BOX im column_left.

    Was an der Box "klappt" denn nicht ?

    Gruß,
    noRiddle

    digiti09

    • Neu im Forum
    • Beiträge: 22
    Also ich hab noch nie eine Box in XTC gebaut, die Struktur und die Befehle sind mir da neu.

    Die Box erscheint nicht, ich hab versucht aus einer XTC Box mir die Befehle abzugucken, sie ist aber nicht in der linken Spalte. Ich poste mal die Box, so wie ich dachte, dass sie funktionieren sollte:

    Code: PHP  [Auswählen]
    <?php
    /*
    Written by pektsekye@gmail.com on Saturday Jun 20  2009
    version 1.5.0
    */

      $box_smarty = new smarty;
      $box_content = '';
      $box_smarty->assign('tpl_path', 'templates/' . CURRENT_TEMPLATE . '/');

        // include needed funtions
        require_once (DIR_FS_INC.'xtc_hide_session_id.inc.php');
        require_once (DIR_FS_INC.'xtc_draw_form.inc.php');
        require_once (DIR_FS_INC.'xtc_draw_pull_down_menu.inc.php');
     
      $Make_Model_Year_query = xtc_db_query("select distinct products_car_make, products_car_model, products_car_year_bof, products_car_year_eof from products_ymm where products_car_make != '' and  products_car_model != '' and products_car_year_bof !=0 and products_car_year_eof != 0 order by products_car_make, products_car_model, products_car_year_bof, products_car_year_eof");
      if ($number_of_rows = xtc_db_num_rows($Make_Model_Year_query)) {
    ?>

    <?php


    // Display a drop-down

            $Make_array[] = array('id' => 'all', 'text' => 'Choose Vehicle');
                    $Model_array[] = array('id' => 'all', 'text' => 'Choose Model');
                    $Year_array[] = array('id' => 0, 'text' => 'Choose Year');

       $javascript = '<script language="javascript" type="text/javascript">
    var a = new Array();
    var b = new Array();
    var c = new Array();'
    ;

            $y = array();
            $M_a = array();
            $products_car_make_old = '';
            $products_car_model_old = '';
            while ($Makes = xtc_db_fetch_array($Make_Model_Year_query)) {
                   
                            if (!isset($M_a [$Makes['products_car_make']]))
                                    $Make_array[] = array('id' => $Makes['products_car_make'], 'text' => $Makes['products_car_make']);

                                                   
                            if (!isset($M_a [$Makes['products_car_make']][$Makes['products_car_model']]) && count($y) > 0){
                                    $M_a [$products_car_make_old][$products_car_model_old]=$y;
                                    $y = array();
                            }
                           
                            if ($Makes['products_car_year_bof'] != 0 && $Makes['products_car_year_eof'] != 0){
                                    if ($Makes['products_car_year_bof']  == $Makes['products_car_year_eof']){
                                            $y [$Makes['products_car_year_bof']] = 1;
                                    } elseif ($Makes['products_car_year_bof']  < $Makes['products_car_year_eof']){ 
                                            while ($Makes['products_car_year_bof'] <= $Makes['products_car_year_eof']){
                                                    $y [$Makes['products_car_year_bof']] = 1;
                                                    $Makes['products_car_year_bof']++;
                                            }
                                    }
                            }
                            $products_car_make_old = $Makes['products_car_make'];
                            $products_car_model_old = $Makes['products_car_model'];
                            $M_a [$Makes['products_car_make']][$Makes['products_car_model']] = array();
            }

            $M_a [$products_car_make_old][$products_car_model_old]=$y;
                   

                   
            $i = 0;
            foreach ($M_a as $k =>$v){
                    $javascript .= 'a['.$i.']="'.$k.'";b['.$i.']=new Array(';
                            $ii = 0;
                            $s = '';
                            foreach ($M_a[$k] as $kk =>$vv){
                                    $javascript .= ($ii != 0 ? ',' : '').'"'.$kk.'"';
                                    $ss = '';
                                    $iii = 0;
                                    foreach ($M_a[$k][$kk] as $kkk => $vvv){
                                            $ss .= ($iii != 0 ? ',' : '').$kkk;
                                            $iii++;
                                    }
                                    if ($iii == 1)
                                            $ss = '"'.$ss.'"';
                                    $s .= 'c['.$i.']['.$ii.']=new Array('.$ss.');';
                                    $ii++; 
                            }
                    $javascript .= ');c['.$i.']=new Array();'.$s;  
                    $i++;  
            }      
           
          $javascript .= '
    function pop_model(){
           
            var o ="<select name=\"Model\" onChange=\"pop_year();\" style=\"width: 100%\"><option value=\"all\">Choose Model</option>";    
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    for(var i = 0; i < b[v].length; i++)
                      o+="<option value=\""+b[v][i]+"\">"+b[v][i]+"</option>";
            }
            o+="</select>";
            document.getElementById("model_select").innerHTML= o;
        document.getElementById("year_select").innerHTML= "<select name=\"Year\" style=\"width: 100%\"><option value=\"0\">Choose Year</option></select>";
    }
    function pop_year(){
           
            var o ="<select name=\"Year\" style=\"width: 100%\" onChange=\"document.make_model_year.submit();\"><option value=\"0\">Choose Year</option>";
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    var sv2 = document.make_model_year.Model.value;
                            if(sv2 != "all"){
                                    var v2 = b[v].length;
                                    while(v2--) if(sv2 == b[v][v2]) break; 
                                    for(var i = 0; i < c[v][v2].length; i++)
                                            o+="<option value=\""+c[v][v2][i]+"\">"+c[v][v2][i]+"</option>";
                            }
            }
            o+="</select>";
            document.getElementById("year_select").innerHTML= o;
    }
    </script>'
    ;

        if (isset($Make_selected_var) && isset($M_a[$Make_selected_var])){
          foreach ($M_a[$Make_selected_var] as $k => $v)
                    $Model_array[] = array('id' => $k, 'text' => $k);}
            if (isset($Make_selected_var) && isset($Model_selected_var) && isset($M_a[$Make_selected_var][$Model_selected_var]))
          foreach ($M_a[$Make_selected_var][$Model_selected_var] as $k => $v)
                    $Year_array[] = array('id' => $k, 'text' => $k);
                   
              $script = basename($_SERVER['SCRIPT_NAME']);
                           
                    if ($script == 'index.php' && (!isset($cPath)  || $cPath == '')){
                            if (defined('FILENAME_ALLPRODS_SEO') && ALL_PRODUCTS_SEO == 'true'){
                                    $script = FILENAME_ALLPRODS_SEO ;
                            } elseif (defined('ALL_PRODUCTS') && ALL_PRODUCTS == 'true'){
                                    $script = FILENAME_ALLPRODS ;  
                            }      
                    }
                           
           
                           
                           
              $hidden_get_variables = '';
              $keys = Array('Year','Make','Model',xtc_session_name(),'x','y');

            if ($script == 'product_info.php'){
                    if(isset($cPath)  || $cPath != ''){
                            $HTTP_GET_VARS['cPath'] = $cPath;
                            $link = 'index.php?cPath='.$cPath.'&Make=all&Model=all&Year=0';                
                    } else {
                            $link = 'index.php?Make=all&Model=all&Year=0';                 
                    }                              
                    $action = 'index.php';
                    $keys [] = 'products_id';      
            } elseif (SEO_ENABLED == 'true' && basename($PHP_SELF) != FILENAME_ADVANCED_SEARCH_RESULT){
                    $action = xtc_href_link($script, xtc_get_all_get_params(array('Make','Model','Year')), 'NONSSL', false);
                    $link = xtc_href_link($script, xtc_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0', 'NONSSL', false);
                    $keys [] = 'cPath';
                    $keys [] = 'products_id';      
                    $keys [] = 'manufacturers_id';                 
            } else {
                    $action = $script;                     
                    $link = $script.'?'.xtc_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0';                  
            }
                   
              reset($HTTP_GET_VARS);
              while (list($key, $value) = each($HTTP_GET_VARS)) {
                    if (!in_array($key,$keys))
                      $hidden_get_variables .= xtc_draw_hidden_field($key, $value);
              }            
             
             

           
    $box_smarty->assign('INPUT_FIELD',xtc_draw_pull_down_menu('Make', $Make_array, (isset($Make_selected_var) ? $Make_selected_var : ''), 'onChange="pop_model();"  style="width: 100%"') .'<br><br>'.
                                                                        '<span id="model_select">'.xtc_draw_pull_down_menu('Model', $Model_array, (isset($Model_selected_var) ? $Model_selected_var : ''), 'onChange="pop_year();" style="width: 100%"') .'</span><br><br>'.
                                                                        '<span id="year_select">'.xtc_draw_pull_down_menu('Year', $Year_array, (isset($Year_selected_var) ? $Year_selected_var : ''), 'onChange="document.make_model_year.submit();" style="width: 100%"') .'</span><br><br>'.
                                                                            $hidden_get_variables . xtc_hide_session_id() .
                                                                            '<input type="submit" value="Go">&nbsp;&nbsp;&nbsp;<a href="'.$link.'">Clear Vehicle</a>');
                                                                           


    $box_smarty->assign('BOX_CONTENT', $box_content);
    $box_smarty->assign('language', $_SESSION['language']);

    $box_smarty->caching = 0;
    $box_year_make_model = $box_smarty->fetch(CURRENT_TEMPLATE . '/boxes/box_year_make_model.html');

    $smarty->assign('box_YEAR_MAKE_MODEL', $box_year_make_model);
      }
    ?>
     

    und hier die box_year_make_model.html :

    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="boxes"}
    <h2 class="boxheader">{#heading_year_make_model#}</h2>
    <div class="boxbody">


            <p>{$INPUT_FIELD}</p>

    </div>

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Du mußt auch eine Datei in /templates/DEIN_TEMPLATE/source/boxes anlegen für die Box.
    Benutze mal die Forensuche (aus der Übersicht heraus), es gibt einen Thread mit Anleitung zum Erstellen neuer Boxen (evtl. auch noch im WIKI).

    Gruß,
    noRiddle

    digiti09

    • Neu im Forum
    • Beiträge: 22
    Aber das da oben ist doch die Datei aus diesem Verzeichnis...

    Ich probier aber mal das Wiki aus....

    Melde mich wenns funktionert

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Uppps  :tomato:

    Hast du die Box auch so {$box_YEAR_MAKE_MODEL} in der index.html im Template integriert ?

    Gruß,
    noRiddle

    digiti09

    • Neu im Forum
    • Beiträge: 22
    Juppp, hab ich

    Mache gerade das Tuturial durch, gib mir paar minuten

    ............

    So, eine Test-Box erscheint schonmal..... SUPER UND DANKE erstmal.....

    Jetzt muß mal der Inhalt da rein, einen Moment......

    digiti09

    • Neu im Forum
    • Beiträge: 22
    Es fehlt nur noch folgendes:

    Der Bereich mit der Bezeichnung INPUT_FIELD:

    Code: PHP  [Auswählen]
    $box_smarty->assign('INPUT_FIELD',xtc_draw_pull_down_menu('Make', $Make_array, (isset($Make_selected_var) ? $Make_selected_var : ''), 'onChange="pop_model();"  style="width: 100%"') .'<br><br>'.
                                                                        '<span id="model_select">'.xtc_draw_pull_down_menu('Model', $Model_array, (isset($Model_selected_var) ? $Model_selected_var : ''), 'onChange="pop_year();" style="width: 100%"') .'</span><br><br>'.
                                                                        '<span id="year_select">'.xtc_draw_pull_down_menu('Year', $Year_array, (isset($Year_selected_var) ? $Year_selected_var : ''), 'onChange="document.make_model_year.submit();" style="width: 100%"') .'</span><br><br>'.
                                                                            $hidden_get_variables . xtc_hide_session_id() .
                                                                            '<input type="submit" value="Go">&nbsp;&nbsp;&nbsp;<a href="'.$link.'">Clear Vehicle</a>');    

    muss jetzt in der Box ausgegeben werden, habe den Inhalts-Text "Inhalt provisorisch" mal übernommen, Bezeichnung BOX_CONTENT:

    Code: PHP  [Auswählen]
      <?php
      /* -----------------------------------------------------------------------------------------
         year_make_model.php
         ---------------------------------------------------------------------------------------*/

      $box_smarty = new smarty;
      $box_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

      $Make_Model_Year_query = xtc_db_query("select distinct products_car_make, products_car_model, products_car_year_bof, products_car_year_eof from products_ymm where products_car_make != '' and  products_car_model != '' and products_car_year_bof !=0 and products_car_year_eof != 0 order by products_car_make, products_car_model, products_car_year_bof, products_car_year_eof");
      if ($number_of_rows = xtc_db_num_rows($Make_Model_Year_query)) {


    <?php


    // Display a drop-down

            $Make_array[] = array('id' => 'all', 'text' => 'Choose Vehicle');
                    $Model_array[] = array('id' => 'all', 'text' => 'Choose Model');
                    $Year_array[] = array('id' => 0, 'text' => 'Choose Year');

       $javascript = '<script language="javascript" type="text/javascript">
    var a = new Array();
    var b = new Array();
    var c = new Array();'
    ;

            $y = array();
            $M_a = array();
            $products_car_make_old = '';
            $products_car_model_old = '';
            while ($Makes = xtc_db_fetch_array($Make_Model_Year_query)) {
                   
                            if (!isset($M_a [$Makes['products_car_make']]))
                                    $Make_array[] = array('id' => $Makes['products_car_make'], 'text' => $Makes['products_car_make']);

                                                   
                            if (!isset($M_a [$Makes['products_car_make']][$Makes['products_car_model']]) && count($y) > 0){
                                    $M_a [$products_car_make_old][$products_car_model_old]=$y;
                                    $y = array();
                            }
                           
                            if ($Makes['products_car_year_bof'] != 0 && $Makes['products_car_year_eof'] != 0){
                                    if ($Makes['products_car_year_bof']  == $Makes['products_car_year_eof']){
                                            $y [$Makes['products_car_year_bof']] = 1;
                                    } elseif ($Makes['products_car_year_bof']  < $Makes['products_car_year_eof']){ 
                                            while ($Makes['products_car_year_bof'] <= $Makes['products_car_year_eof']){
                                                    $y [$Makes['products_car_year_bof']] = 1;
                                                    $Makes['products_car_year_bof']++;
                                            }
                                    }
                            }
                            $products_car_make_old = $Makes['products_car_make'];
                            $products_car_model_old = $Makes['products_car_model'];
                            $M_a [$Makes['products_car_make']][$Makes['products_car_model']] = array();
            }

            $M_a [$products_car_make_old][$products_car_model_old]=$y;
                   

                   
            $i = 0;
            foreach ($M_a as $k =>$v){
                    $javascript .= 'a['.$i.']="'.$k.'";b['.$i.']=new Array(';
                            $ii = 0;
                            $s = '';
                            foreach ($M_a[$k] as $kk =>$vv){
                                    $javascript .= ($ii != 0 ? ',' : '').'"'.$kk.'"';
                                    $ss = '';
                                    $iii = 0;
                                    foreach ($M_a[$k][$kk] as $kkk => $vvv){
                                            $ss .= ($iii != 0 ? ',' : '').$kkk;
                                            $iii++;
                                    }
                                    if ($iii == 1)
                                            $ss = '"'.$ss.'"';
                                    $s .= 'c['.$i.']['.$ii.']=new Array('.$ss.');';
                                    $ii++; 
                            }
                    $javascript .= ');c['.$i.']=new Array();'.$s;  
                    $i++;  
            }      
           
          $javascript .= '
    function pop_model(){
           
            var o ="<select name=\"Model\" onChange=\"pop_year();\" style=\"width: 100%\"><option value=\"all\">Choose Model</option>";    
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    for(var i = 0; i < b[v].length; i++)
                      o+="<option value=\""+b[v][i]+"\">"+b[v][i]+"</option>";
            }
            o+="</select>";
            document.getElementById("model_select").innerHTML= o;
        document.getElementById("year_select").innerHTML= "<select name=\"Year\" style=\"width: 100%\"><option value=\"0\">Choose Year</option></select>";
    }
    function pop_year(){
           
            var o ="<select name=\"Year\" style=\"width: 100%\" onChange=\"document.make_model_year.submit();\"><option value=\"0\">Choose Year</option>";
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    var sv2 = document.make_model_year.Model.value;
                            if(sv2 != "all"){
                                    var v2 = b[v].length;
                                    while(v2--) if(sv2 == b[v][v2]) break; 
                                    for(var i = 0; i < c[v][v2].length; i++)
                                            o+="<option value=\""+c[v][v2][i]+"\">"+c[v][v2][i]+"</option>";
                            }
            }
            o+="</select>";
            document.getElementById("year_select").innerHTML= o;
    }
    </script>'
    ;

        if (isset($Make_selected_var) && isset($M_a[$Make_selected_var])){
          foreach ($M_a[$Make_selected_var] as $k => $v)
                    $Model_array[] = array('id' => $k, 'text' => $k);}
            if (isset($Make_selected_var) && isset($Model_selected_var) && isset($M_a[$Make_selected_var][$Model_selected_var]))
          foreach ($M_a[$Make_selected_var][$Model_selected_var] as $k => $v)
                    $Year_array[] = array('id' => $k, 'text' => $k);
                   
              $script = basename($_SERVER['SCRIPT_NAME']);
                           
                    if ($script == 'index.php' && (!isset($cPath)  || $cPath == '')){
                            if (defined('FILENAME_ALLPRODS_SEO') && ALL_PRODUCTS_SEO == 'true'){
                                    $script = FILENAME_ALLPRODS_SEO ;
                            } elseif (defined('ALL_PRODUCTS') && ALL_PRODUCTS == 'true'){
                                    $script = FILENAME_ALLPRODS ;  
                            }      
                    }
                           
           
                           
                           
              $hidden_get_variables = '';
              $keys = Array('Year','Make','Model',xtc_session_name(),'x','y');

            if ($script == 'product_info.php'){
                    if(isset($cPath)  || $cPath != ''){
                            $HTTP_GET_VARS['cPath'] = $cPath;
                            $link = 'index.php?cPath='.$cPath.'&Make=all&Model=all&Year=0';                
                    } else {
                            $link = 'index.php?Make=all&Model=all&Year=0';                 
                    }                              
                    $action = 'index.php';
                    $keys [] = 'products_id';      
            } elseif (SEO_ENABLED == 'true' && basename($PHP_SELF) != FILENAME_ADVANCED_SEARCH_RESULT){
                    $action = xtc_href_link($script, xtc_get_all_get_params(array('Make','Model','Year')), 'NONSSL', false);
                    $link = xtc_href_link($script, xtc_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0', 'NONSSL', false);
                    $keys [] = 'cPath';
                    $keys [] = 'products_id';      
                    $keys [] = 'manufacturers_id';                 
            } else {
                    $action = $script;                     
                    $link = $script.'?'.xtc_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0';                  
            }
                   
              reset($HTTP_GET_VARS);
              while (list($key, $value) = each($HTTP_GET_VARS)) {
                    if (!in_array($key,$keys))
                      $hidden_get_variables .= xtc_draw_hidden_field($key, $value);
              }            
             
             

    $box_smarty->assign('INPUT_FIELD',xtc_draw_pull_down_menu('Make', $Make_array, (isset($Make_selected_var) ? $Make_selected_var : ''), 'onChange="pop_model();"  style="width: 100%"') .'<br><br>'.
                                                                        '<span id="model_select">'.xtc_draw_pull_down_menu('Model', $Model_array, (isset($Model_selected_var) ? $Model_selected_var : ''), 'onChange="pop_year();" style="width: 100%"') .'</span><br><br>'.
                                                                        '<span id="year_select">'.xtc_draw_pull_down_menu('Year', $Year_array, (isset($Year_selected_var) ? $Year_selected_var : ''), 'onChange="document.make_model_year.submit();" style="width: 100%"') .'</span><br><br>'.
                                                                            $hidden_get_variables . xtc_hide_session_id() .
                                                                            '<input type="submit" value="Go">&nbsp;&nbsp;&nbsp;<a href="'.$link.'">Clear Vehicle</a>');    

           
      // Generierung Inhalt beginn ------
      $box_content = 'Inhalt provisorisch';
      // Generierung Inhalt Ende ------
     
      $box_smarty->assign('BOX_CONTENT', $box_content);
      $box_smarty->assign('language', $_SESSION['language']);
      // set cache ID
       if (!CacheCheck()) {
              $box_smarty->caching = 0;
              $box_year_make_model = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_year_make_model.html');
      } else {
              $box_smarty->caching = 1;
              $box_smarty->cache_lifetime = CACHE_LIFETIME;
              $box_smarty->cache_modified_check = CACHE_CHECK;
              $cache_id = $_SESSION['language'];
              $box_year_make_model = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_year_make_model.html', $cache_id);
      }
     
      $smarty->assign('box_YEAR_MAKE_MODEL', $box_year_make_model);
      ?>

    Wer kann mir das mal einbauen ???

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Mir fällt da auf, daß du am Anfang zweimal einen Öffnungs-tag für PHP stehen hast ohne ihn vorher geschlossen zu haben.
    Du ordnest den Inhalt, also dein input-field dem $box_content zu (vielleicht im Kopf noch die Variable definieren ($box_content = '') und gibst in der Box (*.html-Datei) den Inhalt mit {$BOX_CONTENT} aus.
    Das heißt du generierst keinen Smarty für INPUT_FIELD sondern tust alles in box_content, dafür ist ja bereits eine Smarty-Variable definiert;
    oder du tust alles in INPUT_FIELD, dann bauchst du wiederum kein BOX_CONTENT,
    wie du die Variable nennst ist ja dir überlassen.

    In deinem Javascript-Exkurs sind glaub' ich so beim Überfliegen auch einige Fehler drin bei der Verkettung der Variabalen $javascript .= kann mich aber täuschen.

    Kann jetzt leider nicht deinen ganzen Code überprüfen, ist ein bisschen viel verlangt denke ich.

    Außerdem könnte es sinnvoll sein den Group-Check (wer darf's sehen (im Admin einstellbar) und den fsk_lock (über 18 ?) einzubauen (siehe andere Box-Vorlagen).

    Gehe in Ruhe nochmal alles durch, beachte die Reihenfolge des Codes (Variablen definieren vor Einsatz, s.o.) und definiere für das was auf der Seite erscheinen soll eine Variable, aus der du dann einen Smarty definierst, den du wiederum im Template verwenden kannst.

    Gruß,
    noRiddle

    *NACHTRAG*
    Nochmal anders gesagt:
    Da wo du jetzt das hast 'Inhalt provisorisch'; steht dein Inhalt, also dein input-field....

    digiti09

    • Neu im Forum
    • Beiträge: 22
    Danke für deine ausführliche Antwort, leider komm ich nicht weiter, das ist mir als Gelegenheits-Shop-Bastler zu hoch... :-(((

    Hab jetzt folgendes versucht, aber dann erscheint nur eine weisse Seite....

    Folgendes noch eingefügt:

        // include needed funtions
        require_once (DIR_FS_INC.'xtc_draw_pull_down_menu.inc.php');

    Code: PHP  [Auswählen]
      <?php
      /* -----------------------------------------------------------------------------------------
         year_make_model.php
         ---------------------------------------------------------------------------------------*/

      $box_smarty = new smarty;
      $box_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');

      $Make_Model_Year_query = xtc_db_query("select distinct products_car_make, products_car_model, products_car_year_bof, products_car_year_eof from products_ymm where products_car_make != '' and  products_car_model != '' and products_car_year_bof !=0 and products_car_year_eof != 0 order by products_car_make, products_car_model, products_car_year_bof, products_car_year_eof");
      if ($number_of_rows = xtc_db_num_rows($Make_Model_Year_query)) {


        // include needed funtions
        require_once (DIR_FS_INC.'xtc_draw_pull_down_menu.inc.php');


    // Display a drop-down

            $Make_array[] = array('id' => 'all', 'text' => 'Choose Vehicle');
                    $Model_array[] = array('id' => 'all', 'text' => 'Choose Model');
                    $Year_array[] = array('id' => 0, 'text' => 'Choose Year');

       $javascript = '<script language="javascript" type="text/javascript">
    var a = new Array();
    var b = new Array();
    var c = new Array();'
    ;

            $y = array();
            $M_a = array();
            $products_car_make_old = '';
            $products_car_model_old = '';
            while ($Makes = xtc_db_fetch_array($Make_Model_Year_query)) {
                   
                            if (!isset($M_a [$Makes['products_car_make']]))
                                    $Make_array[] = array('id' => $Makes['products_car_make'], 'text' => $Makes['products_car_make']);

                                                   
                            if (!isset($M_a [$Makes['products_car_make']][$Makes['products_car_model']]) && count($y) > 0){
                                    $M_a [$products_car_make_old][$products_car_model_old]=$y;
                                    $y = array();
                            }
                           
                            if ($Makes['products_car_year_bof'] != 0 && $Makes['products_car_year_eof'] != 0){
                                    if ($Makes['products_car_year_bof']  == $Makes['products_car_year_eof']){
                                            $y [$Makes['products_car_year_bof']] = 1;
                                    } elseif ($Makes['products_car_year_bof']  < $Makes['products_car_year_eof']){ 
                                            while ($Makes['products_car_year_bof'] <= $Makes['products_car_year_eof']){
                                                    $y [$Makes['products_car_year_bof']] = 1;
                                                    $Makes['products_car_year_bof']++;
                                            }
                                    }
                            }
                            $products_car_make_old = $Makes['products_car_make'];
                            $products_car_model_old = $Makes['products_car_model'];
                            $M_a [$Makes['products_car_make']][$Makes['products_car_model']] = array();
            }

            $M_a [$products_car_make_old][$products_car_model_old]=$y;
                   

                   
            $i = 0;
            foreach ($M_a as $k =>$v){
                    $javascript .= 'a['.$i.']="'.$k.'";b['.$i.']=new Array(';
                            $ii = 0;
                            $s = '';
                            foreach ($M_a[$k] as $kk =>$vv){
                                    $javascript .= ($ii != 0 ? ',' : '').'"'.$kk.'"';
                                    $ss = '';
                                    $iii = 0;
                                    foreach ($M_a[$k][$kk] as $kkk => $vvv){
                                            $ss .= ($iii != 0 ? ',' : '').$kkk;
                                            $iii++;
                                    }
                                    if ($iii == 1)
                                            $ss = '"'.$ss.'"';
                                    $s .= 'c['.$i.']['.$ii.']=new Array('.$ss.');';
                                    $ii++; 
                            }
                    $javascript .= ');c['.$i.']=new Array();'.$s;  
                    $i++;  
            }      
           
          $javascript .= '
    function pop_model(){
           
            var o ="<select name=\"Model\" onChange=\"pop_year();\" style=\"width: 100%\"><option value=\"all\">Choose Model</option>";    
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    for(var i = 0; i < b[v].length; i++)
                      o+="<option value=\""+b[v][i]+"\">"+b[v][i]+"</option>";
            }
            o+="</select>";
            document.getElementById("model_select").innerHTML= o;
        document.getElementById("year_select").innerHTML= "<select name=\"Year\" style=\"width: 100%\"><option value=\"0\">Choose Year</option></select>";
    }
    function pop_year(){
           
            var o ="<select name=\"Year\" style=\"width: 100%\" onChange=\"document.make_model_year.submit();\"><option value=\"0\">Choose Year</option>";
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    var sv2 = document.make_model_year.Model.value;
                            if(sv2 != "all"){
                                    var v2 = b[v].length;
                                    while(v2--) if(sv2 == b[v][v2]) break; 
                                    for(var i = 0; i < c[v][v2].length; i++)
                                            o+="<option value=\""+c[v][v2][i]+"\">"+c[v][v2][i]+"</option>";
                            }
            }
            o+="</select>";
            document.getElementById("year_select").innerHTML= o;
    }
    </script>'
    ;

        if (isset($Make_selected_var) && isset($M_a[$Make_selected_var])){
          foreach ($M_a[$Make_selected_var] as $k => $v)
                    $Model_array[] = array('id' => $k, 'text' => $k);}
            if (isset($Make_selected_var) && isset($Model_selected_var) && isset($M_a[$Make_selected_var][$Model_selected_var]))
          foreach ($M_a[$Make_selected_var][$Model_selected_var] as $k => $v)
                    $Year_array[] = array('id' => $k, 'text' => $k);
                   
              $script = basename($_SERVER['SCRIPT_NAME']);
                           
                    if ($script == 'index.php' && (!isset($cPath)  || $cPath == '')){
                            if (defined('FILENAME_ALLPRODS_SEO') && ALL_PRODUCTS_SEO == 'true'){
                                    $script = FILENAME_ALLPRODS_SEO ;
                            } elseif (defined('ALL_PRODUCTS') && ALL_PRODUCTS == 'true'){
                                    $script = FILENAME_ALLPRODS ;  
                            }      
                    }
                           
           
                           
                           
              $hidden_get_variables = '';
              $keys = Array('Year','Make','Model',xtc_session_name(),'x','y');

            if ($script == 'product_info.php'){
                    if(isset($cPath)  || $cPath != ''){
                            $HTTP_GET_VARS['cPath'] = $cPath;
                            $link = 'index.php?cPath='.$cPath.'&Make=all&Model=all&Year=0';                
                    } else {
                            $link = 'index.php?Make=all&Model=all&Year=0';                 
                    }                              
                    $action = 'index.php';
                    $keys [] = 'products_id';      
            } elseif (SEO_ENABLED == 'true' && basename($PHP_SELF) != FILENAME_ADVANCED_SEARCH_RESULT){
                    $action = xtc_href_link($script, xtc_get_all_get_params(array('Make','Model','Year')), 'NONSSL', false);
                    $link = xtc_href_link($script, xtc_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0', 'NONSSL', false);
                    $keys [] = 'cPath';
                    $keys [] = 'products_id';      
                    $keys [] = 'manufacturers_id';                 
            } else {
                    $action = $script;                     
                    $link = $script.'?'.xtc_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0';                  
            }
                   
              reset($HTTP_GET_VARS);
              while (list($key, $value) = each($HTTP_GET_VARS)) {
                    if (!in_array($key,$keys))
                      $hidden_get_variables .= xtc_draw_hidden_field($key, $value);
              }            
             
             

    $box_content = xtc_draw_pull_down_menu('Make', $Make_array, (isset($Make_selected_var) ? $Make_selected_var : ''), 'onChange="pop_model();"  style="width: 100%"') .'<br><br>'.
                                                                        '<span id="model_select">'.xtc_draw_pull_down_menu('Model', $Model_array, (isset($Model_selected_var) ? $Model_selected_var : ''), 'onChange="pop_year();" style="width: 100%"') .'</span><br><br>'.
                                                                        '<span id="year_select">'.xtc_draw_pull_down_menu('Year', $Year_array, (isset($Year_selected_var) ? $Year_selected_var : ''), 'onChange="document.make_model_year.submit();" style="width: 100%"') .'</span><br><br>'.
                                                                            $hidden_get_variables . xtc_hide_session_id() .
                                                                            '<input type="submit" value="Go">&nbsp;&nbsp;&nbsp;<a href="'.$link.'">Clear Vehicle</a>');    


     
      $box_smarty->assign('BOX_CONTENT', $box_content);
      $box_smarty->assign('language', $_SESSION['language']);
      // set cache ID
       if (!CacheCheck()) {
              $box_smarty->caching = 0;
              $box_year_make_model = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_year_make_model.html');
      } else {
              $box_smarty->caching = 1;
              $box_smarty->cache_lifetime = CACHE_LIFETIME;
              $box_smarty->cache_modified_check = CACHE_CHECK;
              $cache_id = $_SESSION['language'];
              $box_year_make_model = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_year_make_model.html', $cache_id);
      }
     
      $smarty->assign('box_YEAR_MAKE_MODEL', $box_year_make_model);
      }
      ?>

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Ich will, wie gesagt nicht deinen ganzen Code durchgehen, aber wenn du eine Variable definierst und da HTML zuordnest sollte das in Anführungsstrichen stehen.
    Beispiel:
    Code: PHP  [Auswählen]
    $box_content = '<input type="text" />....';

    Gruß,
    noRiddle

    *NACHTRAG*
    Übrigens kannst du den ganzen Javascript- und HTML-Code auch direkt in die HTML-Datei schreiben.
    Ist doch dann einfacher.
    Dafür reicht dann eine PHP-Datei in der Art:
    Code: PHP  [Auswählen]
    <?php

    $box_smarty = new smarty;

    $box_smarty->assign('language', $_SESSION['language']);
    // set cache ID
    if (!CacheCheck()) {
            $cache=false;
            $box_smarty->caching = 0;
    } else {
            $cache=true;
            $box_smarty->caching = 1;
            $box_smarty->cache_lifetime = CACHE_LIFETIME;
            $box_smarty->cache_modified_check = CACHE_CHECK;
            $cache_id = $_SESSION['language'].$_SESSION['customers_status']['customers_status_id'];
    }

    if (!$box_smarty->is_cached(CURRENT_TEMPLATE.'/boxes/box_year_make_model.html', $cache_id) || !$cache) {
            $box_smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
    }

    if (!$cache) {
            $box_year_make_model = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_year_make_model.html');
    } else {
            $box_year_make_model = $box_smarty->fetch(CURRENT_TEMPLATE.'/boxes/box_year_make_model.html', $cache_id);
    }

    $smarty->assign('box_YEAR_MAKE_MODEL', $box_year_make_model);
    ?>

    digiti09

    • Neu im Forum
    • Beiträge: 22
    So hab ich die .php-Datei auch aufgebaut, nur den Inhalt bekomme ich nicht von OSC in XTC übersetzt.

    Wie gesagt geht es um diese original OSC Datei:

    Code: PHP  [Auswählen]
    <?php
    /*
    Written by pektsekye@gmail.com on Saturday Jun 20  2009
    version 1.5.0
    */


      $Make_Model_Year_query = tep_db_query("select distinct products_car_make, products_car_model, products_car_year_bof, products_car_year_eof from products_ymm where products_car_make != '' and  products_car_model != '' and products_car_year_bof !=0 and products_car_year_eof != 0 order by products_car_make, products_car_model, products_car_year_bof, products_car_year_eof");
      if ($number_of_rows = tep_db_num_rows($Make_Model_Year_query)) {
    ?>
    <!-- year make model //-->
              <tr>
                <td>
    <?php
        $info_box_contents = array();
        $info_box_contents[] = array('text'  => '<font color="' . $font_color . '">' . BOX_HEADING_MAKE_MODEL_YEAR . '</font>');
        new infoBoxHeading($info_box_contents, false, false);

    // Display a drop-down

            $Make_array[] = array('id' => 'all', 'text' => 'Choose Vehicle');
                    $Model_array[] = array('id' => 'all', 'text' => 'Choose Model');
                    $Year_array[] = array('id' => 0, 'text' => 'Choose Year');

       $javascript = '<script language="javascript" type="text/javascript">
    var a = new Array();
    var b = new Array();
    var c = new Array();'
    ;

            $y = array();
            $M_a = array();
            $products_car_make_old = '';
            $products_car_model_old = '';
            while ($Makes = tep_db_fetch_array($Make_Model_Year_query)) {
                   
                            if (!isset($M_a [$Makes['products_car_make']]))
                                    $Make_array[] = array('id' => $Makes['products_car_make'], 'text' => $Makes['products_car_make']);

                                                   
                            if (!isset($M_a [$Makes['products_car_make']][$Makes['products_car_model']]) && count($y) > 0){
                                    $M_a [$products_car_make_old][$products_car_model_old]=$y;
                                    $y = array();
                            }
                           
                            if ($Makes['products_car_year_bof'] != 0 && $Makes['products_car_year_eof'] != 0){
                                    if ($Makes['products_car_year_bof']  == $Makes['products_car_year_eof']){
                                            $y [$Makes['products_car_year_bof']] = 1;
                                    } elseif ($Makes['products_car_year_bof']  < $Makes['products_car_year_eof']){ 
                                            while ($Makes['products_car_year_bof'] <= $Makes['products_car_year_eof']){
                                                    $y [$Makes['products_car_year_bof']] = 1;
                                                    $Makes['products_car_year_bof']++;
                                            }
                                    }
                            }
                            $products_car_make_old = $Makes['products_car_make'];
                            $products_car_model_old = $Makes['products_car_model'];
                            $M_a [$Makes['products_car_make']][$Makes['products_car_model']] = array();
            }

            $M_a [$products_car_make_old][$products_car_model_old]=$y;
                   

                   
            $i = 0;
            foreach ($M_a as $k =>$v){
                    $javascript .= 'a['.$i.']="'.$k.'";b['.$i.']=new Array(';
                            $ii = 0;
                            $s = '';
                            foreach ($M_a[$k] as $kk =>$vv){
                                    $javascript .= ($ii != 0 ? ',' : '').'"'.$kk.'"';
                                    $ss = '';
                                    $iii = 0;
                                    foreach ($M_a[$k][$kk] as $kkk => $vvv){
                                            $ss .= ($iii != 0 ? ',' : '').$kkk;
                                            $iii++;
                                    }
                                    if ($iii == 1)
                                            $ss = '"'.$ss.'"';
                                    $s .= 'c['.$i.']['.$ii.']=new Array('.$ss.');';
                                    $ii++; 
                            }
                    $javascript .= ');c['.$i.']=new Array();'.$s;  
                    $i++;  
            }      
           
          $javascript .= '
    function pop_model(){
           
            var o ="<select name=\"Model\" onChange=\"pop_year();\" style=\"width: 100%\"><option value=\"all\">Choose Model</option>";    
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    for(var i = 0; i < b[v].length; i++)
                      o+="<option value=\""+b[v][i]+"\">"+b[v][i]+"</option>";
            }
            o+="</select>";
            document.getElementById("model_select").innerHTML= o;
        document.getElementById("year_select").innerHTML= "<select name=\"Year\" style=\"width: 100%\"><option value=\"0\">Choose Year</option></select>";
    }
    function pop_year(){
           
            var o ="<select name=\"Year\" style=\"width: 100%\" onChange=\"document.make_model_year.submit();\"><option value=\"0\">Choose Year</option>";
            var sv = document.make_model_year.Make.value;
            if(sv != "all"){
                    var v = a.length;
                    while(v--) if(sv == a[v]) break;
                    var sv2 = document.make_model_year.Model.value;
                            if(sv2 != "all"){
                                    var v2 = b[v].length;
                                    while(v2--) if(sv2 == b[v][v2]) break; 
                                    for(var i = 0; i < c[v][v2].length; i++)
                                            o+="<option value=\""+c[v][v2][i]+"\">"+c[v][v2][i]+"</option>";
                            }
            }
            o+="</select>";
            document.getElementById("year_select").innerHTML= o;
    }
    </script>'
    ;

        if (isset($Make_selected_var) && isset($M_a[$Make_selected_var])){
          foreach ($M_a[$Make_selected_var] as $k => $v)
                    $Model_array[] = array('id' => $k, 'text' => $k);}
            if (isset($Make_selected_var) && isset($Model_selected_var) && isset($M_a[$Make_selected_var][$Model_selected_var]))
          foreach ($M_a[$Make_selected_var][$Model_selected_var] as $k => $v)
                    $Year_array[] = array('id' => $k, 'text' => $k);
                   
              $script = basename($_SERVER['SCRIPT_NAME']);
                           
                    if ($script == 'index.php' && (!isset($cPath)  || $cPath == '')){
                            if (defined('FILENAME_ALLPRODS_SEO') && ALL_PRODUCTS_SEO == 'true'){
                                    $script = FILENAME_ALLPRODS_SEO ;
                            } elseif (defined('ALL_PRODUCTS') && ALL_PRODUCTS == 'true'){
                                    $script = FILENAME_ALLPRODS ;  
                            }      
                    }
                           
           
                           
                           
              $hidden_get_variables = '';
              $keys = Array('Year','Make','Model',tep_session_name(),'x','y');

            if ($script == 'product_info.php'){
                    if(isset($cPath)  || $cPath != ''){
                            $HTTP_GET_VARS['cPath'] = $cPath;
                            $link = 'index.php?cPath='.$cPath.'&Make=all&Model=all&Year=0';                
                    } else {
                            $link = 'index.php?Make=all&Model=all&Year=0';                 
                    }                              
                    $action = 'index.php';
                    $keys [] = 'products_id';      
            } elseif (SEO_ENABLED == 'true' && basename($PHP_SELF) != FILENAME_ADVANCED_SEARCH_RESULT){
                    $action = tep_href_link($script, tep_get_all_get_params(array('Make','Model','Year')), 'NONSSL', false);
                    $link = tep_href_link($script, tep_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0', 'NONSSL', false);
                    $keys [] = 'cPath';
                    $keys [] = 'products_id';      
                    $keys [] = 'manufacturers_id';                 
            } else {
                    $action = $script;                     
                    $link = $script.'?'.tep_get_all_get_params(array('Make','Model','Year')).'Make=all&Model=all&Year=0';                  
            }
                   
              reset($HTTP_GET_VARS);
              while (list($key, $value) = each($HTTP_GET_VARS)) {
                    if (!in_array($key,$keys))
                      $hidden_get_variables .= tep_draw_hidden_field($key, $value);
              }            
             
          $info_box_contents = array();
              $info_box_contents[] = array("text"  => $javascript);
          $info_box_contents[] = array('form' => tep_draw_form('make_model_year', $action, 'get'),
                                       'text' =>  tep_draw_pull_down_menu('Make', $Make_array, (isset($Make_selected_var) ? $Make_selected_var : ''), 'onChange="pop_model();"  style="width: 100%"') .'<br><br>'.
                                                                        '<span id="model_select">'.tep_draw_pull_down_menu('Model', $Model_array, (isset($Model_selected_var) ? $Model_selected_var : ''), 'onChange="pop_year();" style="width: 100%"') .'</span><br><br>'.
                                                                        '<span id="year_select">'.tep_draw_pull_down_menu('Year', $Year_array, (isset($Year_selected_var) ? $Year_selected_var : ''), 'onChange="document.make_model_year.submit();" style="width: 100%"') .'</span><br><br>'.
                                                                            $hidden_get_variables . tep_hide_session_id() .
                                                                            '<input type="submit" value="Go">&nbsp;&nbsp;&nbsp;<a href="'.$link.'">Clear Vehicle</a>');
       

        new infoBox($info_box_contents);
    ?>
                </td>
              </tr>
    <!-- year make model_eof //-->
    <?php
      }
    ?>
     

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Die Funktionen hattest du doch bereits auf modified eCommerce Shopsoftware angepasst.
    Ich hoffe mal die Datenbank hat auch die Tabellen und Spalten auf die das Query $Make_Model_Year_query zugreift !?

    Gruß,
    noRiddle

    digiti09

    • Neu im Forum
    • Beiträge: 22
    Jo Meister noRiddle, Datenbank ist perfekt angepasst, ich habe alle Dateien, die davon betroffen sind angepasst.

    Ich wollte mit dem Code nur nochmal verdeutlichen wie der Urpsrungs-Code aussieht.

    Ich habe mir mal die /templates/xtc5/source/boxes/manufacturers.php angeschaut, die funktioniert nämlich fast genauso, also auch mit dropdown.

    Ich will dich ja nicht den Abend lang hier festhalten und danke dir für deine bisherigen Tipps und Hilfe.

    Ich glaub ich muss echt warten, bis jemand diesen Code ins XTC umschreibt um eine Box draus formt die auch angezeigt werden kann....

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Naja, ruhig bleiben.
    Die Box müsste ja schonmal da sein.
    Mach doch mal eine Testausgabe in der HTML-Datei der BOX à la
    Code: XML  [Auswählen]
    <div>
    <p style="font-size:18px">TEST</p>
    </div>

    Gruß,
    noRiddle

    P.S. vom "Meister" bin ich weit entfernt ;-)
    1 Antworten
    3087 Aufrufe
    23. Februar 2014, 22:22:20 von dmun
    0 Antworten
    2358 Aufrufe
    31. Dezember 2014, 12:03:24 von manne35
    4 Antworten
    2848 Aufrufe
    25. Januar 2015, 14:57:44 von dertobinator
               
    anything