ページ 11

ログイン画面でレイアウト崩れ

Posted: 2011/5/19 02:32
by youmen
いつもお世話になっております。

お客様用のログイン画面で、横幅でレイアウトが崩れてしまいます。
横幅がとても長くなり、名前や住所入力欄が横長になります。「送信する」ボタンも横へ外れてしまいます。

他のホーム画面、商品詳細画面、インフォメーション各画面など・・・のページは崩れることなく表示されます。

ちなみに、xoopsを利用しており、モジュールとしてZenCart On XOOPS(ZOX)を使わせて頂いています。バージョンはZen Cart 1.3.0.2-l10n-jp-5です。

xoopsのスタイルシート、ZOXのスタイルシートを自分なりに触ってみましたが、原因をつきとめることができませんでした。

お恥ずかしい限りですが、ご教授くださいませ。

Re: ログイン画面でレイアウト崩れ

Posted: 2011/5/20 12:02
by k
xoopsは利用したことが無く、文面から判断しただけですが、フォームのinputタグのサイズを指定してみてはどうでしょうか。

<input type="text" name="aaaa" size="40" maxlength="96" id="bbbb">

↑※上記のsize="40"のところに適当な数字を入力

Re: ログイン画面でレイアウト崩れ

Posted: 2011/5/23 13:26
by youmen
kさん

お返事ありがとうございます。
ご指摘の通り、inputタグのサイズを指定することにより、解決する事ができました。

たいへんありがとうございました。お礼申し上げます。

Re: ログイン画面でレイアウト崩れ

Posted: 2015/8/28 11:02
by kimono
こんにちわ。kimonoです :)

さすがにZenCart On XOOPS(ZOX)は古いため、手元にございませんので、Zen Cartの1.5の環境でお答えさせていただきます。

Zen Cart1.5のログイン画面は、デフォルトのテンプレートを使用していた場合は、
/includes/templates/template_default/templates/tpl_modules_create_account.php
にて、表示されています。

例えば、名前の姓の部分を見てみますと、57行目辺りが該当します。

コード: 全て選択

<?php echo zen_draw_input_field('firstname', '', zen_set_field_length(TABLE_CUSTOMERS, 'customers_firstname', '40') . ' id="firstname"') . (zen_not_null(ENTRY_FIRST_NAME_TEXT) ? '<span class="alert">' . ENTRY_FIRST_NAME_TEXT . '</span>': ''); ?>

この部分が該当の部分となり、ここで指定としまして、

コード: 全て選択

zen_set_field_length(TABLE_CUSTOMERS, 'customers_firstname', '40')

の部分が、実際のhtmlのソースでは、

コード: 全て選択

size="33" maxlength="32"

を自動的に作りだしています。

/includes/functions/functions_general.php
の954行目辺りの

コード: 全て選択

  function zen_set_field_length($tbl, $fld, $max=70) {
    $field_length= zen_field_length($tbl, $fld);
    switch (true) {
      case ($field_length > $max):
        $length= 'size = "' . ($max+1) . '" maxlength= "' . $field_length . '"';
        break;
      default:
        $length= 'size = "' . ($field_length+1) . '" maxlength = "' . $field_length . '"';
        break;
    }
    return $length;
  }

にて指定の通り、sizeはmaxの値の+1となっており、maxlengthはデーターベースの顧客(customersのテーブル)のcustomers_firstnameの設定の長さということになります。
そのため、customersテーブルのcustomers_firstnameの長さを見ますと、varchar(32)となっておりますので、これがmaxlengthとなり、sizeはそれに+1したものとなります。

そのため、それぞれの長さを変更されたいのであれば、データーベースの構造を変更し、長さを変更するか、もしくは、テンプレートの自動で作られているところを直接打ち込み変更することで、好きな長さに変更することができます。
自動的にデーターベースの長さなどにした方が、入力できる文字数なども分かりやすいですので、間違いはないかと思いますが。