2010-10-21 62 views
2

我是一名設計師/前端開發人員,但我必須在div之前使用「span-4」類移動div與一類「跨度20」。編寫php的開發人員無法提問如何不搞亂他的php標記。試圖在另一個div之前移動div而不會搞砸php,我不明白:)

非常感謝您的幫助!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
    <head> 
    <title>THRIVE</title> 
    <?php include("header.php"); ?> 
    </head> 
    <body> 
     <div class="container"> 
     <div id="thumbnails" class="span-20 last"> 
     <?php 
      $accessoriesDir = "images/accessories/"; 
      $collectionCount = 1; 
      while(is_dir($accessoriesDir . $collectionCount . "/")) 
      { 
       $collection_dir = $accessoriesDir . $collectionCount . "/"; 
       if ($season_dh = opendir($collection_dir)) 
       { 
        $accsArray = array(); 
        $accsCount = 0; 
        while (($accessoryFolder = readdir($season_dh)) !== false) 
        { 
         if(filetype($collection_dir . $accessoryFolder) == "dir" && strlen($accessoryFolder) > 2) 
          $accsArray[$accsCount++] = $accessoryFolder; 
        } 
        closedir($season_dh); 
        ?> 
        <div id="collection<?php echo $collectionCount?>" class="thumbsHolder <?php if($collectionCount !== 1) echo 'hidden'?>"> 

        <div class="cats span-4"> 
         <?php 
          foreach($accsArray as $index => $accessory) 
          { 
           $class = "accessory-tab"; 
           if($index == 0) 
           { 
            $class .= " selected"; 
           } 
           echo "<a id='".strtolower($accessory)."-tab' class='".$class."'>".$accessory."</a><br/>"; 
          } 
         ?> 
        </div> 
        <?php 
        foreach($accsArray as $index => $accessory) 
        { 
         ?> 
         <div id="<?php echo strtolower($accessory);?>-view" class="view <?php if($index != 0) echo 'hidden';?>"> 
         <?php 
         $imageCount = 0; 
         $accessoryDir = $collection_dir.$accessory."/"; 
         $dh = opendir($accessoryDir); 
         while (($file = readdir($dh)) !== false && $imageCount < 8) 
         { 
          if(filetype($accessoryDir . $file) == "file" && substr($file, -4) == ".jpg") 
          { 
          ?> 
           <div class="thumbnailExpander <?php if($imageCount % 2 !== 0)echo 'expandLeft';?> <?php if($imageCount >= 4)echo 'bottom';?>" 
            style="left:<?php echo ($imageCount % 4) * (317-132) ?>px;top:<?php echo 110+((132+53)*intval($imageCount/4));?>px;"> 
            <!--div class="thumbAnchor"--> 
             <img src="<?php echo $accessoryDir . $file ?>" style=""/> 
            <!--/div--> 
           </div> 
          <?php 
           $imageCount++; 
          } 
         } 
         ?> 
         </div><!-- #accessory-view --> 
         <?php 
         closedir($dh); 
        } 
        ?> 
        </div><!-- .thumbsHolder --> 
        <?php 
       } 
       $collectionCount++; 
      } 
     ?> 
     </div><!-- #thumbnails --> 

     <?php include("nav.php"); ?> 
     <div id="debug" style="color:white"></div> 
     </div> 
    </body> 
</html> 
+2

感謝上帝,開發者不在身邊,那是嘔吐誘導。將業務邏輯與表示邏輯分開可以解決這個問題。 – M2tM 2010-10-21 19:11:59

+0

從演示中分離業務邏輯不是在該示例XD中討論的唯一問題。很長一段時間,因爲我看到有人瘋狂地做一些純粹基於文件系統的網上商店。 – ITroubs 2010-10-21 19:17:25

+4

這是每日wff值得的東西就在這裏 – GSto 2010-10-21 19:26:03

回答

4

重構此代碼以便首先顯示span-4並不是一件容易的事。如果你沒有PHP經驗,這將是幾乎不可能的(並且不可取)。

我建議您使用CSS來移動顯示頁面上的span-4元素。這樣你就不需要碰到PHP。更好;當PHP開發人員返回讓他們重構這個,以便顯示代碼不與業務邏輯交織(這是一個可怕的實踐,使這樣的問題不可能回答)。

希望有助於一些。

+0

;射他! – ITroubs 2010-10-21 19:22:31

+0

你要麼讓程序員改變它,弄髒你的手並學習php,並嘗試去解決它,或者你讓別人爲你做。這取決於與客戶達成的協議以及他願意花多少錢。 – ITroubs 2010-10-21 19:41:11

0

嘗試以下兩個步驟:

(1)從跨度-20一路下滑至跨度4的結束標記方式後的第一個<?php線進行切割一切...並將它粘貼在上面的翼展20格。這包括所有垃圾+整個span-4 div。

(2)在剛粘貼代碼,找到這一行:

<div id="collection<?php echo $collectionCount?>" class="thumbsHolder <?php if($collectionCount !== 1) echo 'hidden'?>"> 

...切&粘貼回它從哪兒來的空間。

這應該適合你,除非我需要檢查我的眼睛。

編輯:有可能它不會工作,這取決於span-4是否真的需要成爲#collection的孩子。如果是這樣的話,你需要將CSS集中起來並將它們分開,或者以某種方式攜帶父節點id到span-4。