実現したいこと
Q&A掲示板に最大3件のファイルアップロード機能を付けているのですが、ファイル1件またはファイル2件の時とファイル3件の時でデザインを変更したいと考えております。
発生している問題・分からないこと
PHP で CSS を分岐させるにはどのように書けばよいでしょうか?
該当のソースコード
PHP
1<?php 2$unique_id =substr($_SERVER['REQUEST_URI'], -36); 3$sql ='SELECT * FROM sortable WHERE unique_id = %s'; 4$query =$wpdb->prepare($sql, $unique_id); 5$rows =$wpdb->get_results($query); 6// アップロードディレクトリ(パス名)を取得する 7$upload_dir =wp_upload_dir(); 8echo '<div class="main_container">'; 9echo '<div class="quest_container">'; 10 11foreach ($rows as $row) { 12 $files =array_filter([$row->attach1, $row->attach2, $row->attach3]); 13 $views =[]; //HTMLをため込む配列の初期化する 14 15 foreach ($files as $file) { 16 $info =pathinfo($file); 17 $attach_url =$upload_dir['baseurl'] . '/attach/' . $info['basename']; 18 $ext =$info['extension']; 19 20 switch ($ext) { 21 case 'jpeg': 22 case 'png': $views[]='<img style="height:350px;width:530px" src="' . $attach_url . '">'; 23 break; 24 case 'mp4': 25 $views[]='<video style="height:350px;width:530px" src="' . $attach_url . '">'; 26 break; 27 case 'pdf': 28 $views[]='<iframe style="height:350px;width:530px" src="' . $attach_url . '"></iframe>'; 29 break; 30 default: 31 break; 32 } 33 } 34 35 $count =count($views); 36 37 if ($count ==1) { 38 // 1がtrueの場合 39 // ここの処理が実行される 40 $bmfloatLeft ='left'; // 画像が2つの場合のみ 41 } 42 43 elseif ($count ==2) { 44 // 1がfalseで2がtrueの場合 45 // ここの処理が実行される 46 $bmfloatLeft ='left'; // 画像が2つの場合のみ 47 } 48 49 else { 50 // それ以外(1、2ともにfalse)の場合 51 // ここの処理が実行される 52 $buafloatLeft ='left'; // 画像が3つの場合のみ 53 } 54 55 if (empty($row->usericon)) { 56 $usericon_src ='wp-content/themes/sample_theme/images/noimage.png'; 57 } 58 59 else { 60 $usericon_src =$upload_dir['baseurl'] . '/attach/' . $row->usericon; 61 } 62 63 // echo '<div><a href="'.$url.'">'.$row->unique_id.'</a></div>'; 64 echo '<div class="quest_header_title">' . mb_strimwidth($row->title, 0, 40, '・・・') . '</div>'; // タイトル30文字 65 echo '<div class="quest_usericon_img"><input type="radio" name="stamp" value="' . $row->stamp . '" id="stamp"><label for="stamp" class="quest_stamp_label"></label></div>'; // スタンプ画像 66 67 // 全体にのみ float: left; 68 echo '<div class="quest_markdown">'; 69 70 foreach ($views as $view) { 71 // 個別にのみ float: left; 72 echo '<div class="quest_item">' . $view . '</div>'; // アップロードファイル 73 } 74 75 echo '</div>'; 76 77 echo '<div class="quest_overview">' . mb_strimwidth($row->text, 0, 40, '・・・') . '</div>'; // 質問文 78 echo '<div class="quest_usericon_img"><img src="' . $usericon_src . '"></div>'; // アイコン画像 79 echo '<div class="quest_username">' . mb_strimwidth($row->name, 0, 10, '・・・') . '</div>'; // 名前 80} 81 82echo '</div>'; //<div class="quest_container"> の閉じタグ 83?>
CSS
1/* ファイルが3件の場合 */ 2.quest_container .quest_item { 3 float: <?php echo $buafloatLeft; ?>; 4 display: inline-block; 5 margin-bottom: 30px; 6 padding: 0px 18px 0px 5px; 7} 8 9.quest_container .quest_overview { 10 color: #e52d77; 11 font-size: 150%; 12 font-weight: 700; 13 width: 1098px !important; 14 margin-top: 25px; 15} 16 17/* ファイルが1か2件の場合 */ 18.image-partial { 19 float: <?php echo $bmfloatLeft;?>; 20}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
var_dump($count); でアップロードファイル数のチェックを行ったところ正確な値が表示されております。
補足
特になし
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。