0

デフォルトのレイアウトを3列から2列に変更する方法を見つけようとしています。検索結果を除くすべてのページで正常に実行できました。すべてを均一にしたいので、デフォルトのレイアウトを2列に変更してもかまいません。

これがキャッチです、私はホストされたソリューションを使用しています(私はそれが嫌いですが、ちょっと、私はただの開発者です)。ファイルシステムや個々のファイルにアクセスできません。ファイルをアップロードして置き換える方法がわからないため、行うすべての変更はバックエンドから行う必要があります。私はこれができることを本当に望んでいます。

4

1 に答える 1

0

答えは、できません。簡潔でシンプル。

ただし、jQueryを使用してそれをハックし、正しく機能させることができます。これが私が使用したコードです:

//Check for 3 col layout.
if($j('.col3-layout').length>0){
    //swap the 3 col layout for the 2 col layout
    $j('.col3-layout').addClass('col2-left-layout').removeClass('col3-layout');
    //grab all the code in the wapper, and place it in the main
    var html=$j('.col-wrapper').html();
    $j('.main').html(html);
    //If products are shown as a grid, reorder them.  If it is a list, leave it alone.
    if(!$j('.grid').attr('href')){
        //Grab all items in the list, push them into an array, and then remove all the data.
        var items=new Array();
        $j('.products-grid .item').each(function(){
            items.push($j(this).html());
        });
        $j('.products-grid').remove();
        //build your output
        var html='';
        var gridsize=4; //items per row
        for(var i=0;i<items.length;i++){
            if(i%gridsize==0){//start a new row
                html+='<ul class="products-grid '
                if(i/gridsize==0)//very first row
                    html+='first ';
                else if(i==items.length-gridsize)//last row
                    html+='last '
                if(i/gridsize%2==0)//even class
                    html+='even">';
                else
                    html+='odd">';//odd class
                html+='<li class="item first">'+items[i]+"</li>";
            }else if(i%gridsize==gridsize-1){//very item in row
                html+='<li class="item last">'+items[i]+"</li></ul>";
            }else
                html+='<li class="item">'+items[i]+"</li>";
        }
        $j('.category-products').html(html);  //populate the data.
    }
}
于 2012-07-30T16:23:37.607 に答える