За последние 24 часа нас посетили 17078 программистов и 1835 роботов. Сейчас ищут 1675 программистов ...

DomHtml таблицы

Тема в разделе "PHP для новичков", создана пользователем Conus, 17 мар 2020.

  1. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    доброго дня
    есть такой класс не помню где я его срисовал что то изменил не помню

    вообщем не могу ни вспомнить где и что почитать
    надо построить таблицу с его помощью
    а как пройти по дереву dom не соображу шось
    подскажите пожалуйста




    public function tab($n)
    {

    $tb = Html::createElement('table');

    $r = $tb->addElement('tr');

    $c = $r->addElement('td');

    $c->text('###');


    $cel = $r->addElement('td');

    $cel->text('xx');

    return $tb;

    }

    так ссылки на строки таблицы и ячеки строк есть а как вытащить из набора класса?


    вот сам класс
    Код (Text):
    1.     public function tab($n)
    2.     {
    3.        
    4.        $tb = Html::createElement('table');
    5.        
    6.        $r = $tb->addElement('tr');
    7.            
    8.        $c = $r->addElement('td');
    9.  
    10.        $c->text('###');
    11.    
    12.        
    13.    
    14.        
    15.        
    16.         $cel = $r->addElement('td');
    17.            
    18.             $cel->text('xx');
    19.        
    20.         return $tb;
    21.        
    22.     }  
    23.    
    24.  
    25.  
    26.    
    27.     public function text($value){  $this->text = $value; return $this; }
    28.    
    29.     public function set($name,$value)
    30.     { if(is_null($this->attributes)) $this->attributes = array(); $this->attributes[$name] = $value; return $this;
    31.     }
    32.        
    33.    
    34.     public function addClass($value){ if(is_null($this->class)) $this->class = array(); $this->class[] = $value; return $this;  }
    35.  
    36.     public function removeClass($class){
    37.         if(!is_null($this->class)){
    38.             unset($this->class[array_search($class, $this->class)]);
    39.             // foreach($this->class as $key=>$value){
    40.                 // if($class == $value)
    41.                     // $this->class[$key] = '';
    42.             // }
    43.         }
    44.         return $this;
    45.     }
    46.    
    47.     public function showTextBeforeContent($bool){$this->textFirst = $bool; }  
    48.     public function __toString(){ return (is_null($this->_top) ? $this->toString() : $this->_top->toString() ); }
    49.    
    50.     public function toString(){
    51.         $string = '';
    52.         if(!empty($this->tag))
    53.         {
    54.             $string .=  '<' . $this->tag;
    55.             $string .= $this->attributesToString();
    56.             if($this->autoclosed && empty($this->text)) $string .= '/>' . CHR(13) . CHR(10) . CHR(9);
    57.             else $string .= '>' . ($this->textFirst ?  $this->text.$this->contentToString() : $this->contentToString().$this->text ). '</' . $this->tag . '>';
    58.         }
    59.         else{  $string .= $this->contentToString(); }      
    60.         return $string;
    61.     }
    62.    
    63.     private function attributesToString(){
    64.         $string = '';
    65.         if(!is_null($this->attributes)){
    66.             foreach($this->attributes as $key => $value){
    67.                 if(!empty($value))
    68.                     $string .= ' ' . $key . '="' . $value . '"';
    69.             }
    70.         }
    71.         if(!is_null($this->class) && count($this->class) > 0 ){
    72.             $string .= ' class="' . implode(' ',$this->class) . '"';
    73.         }
    74.         return $string;
    75.     }
    76.    
    77.     private function contentToString(){
    78.         $string = '';
    79.         if(!is_null($this->content)){
    80.             foreach($this->content as $c){
    81.                 $string .= CHR(13) . CHR(10) . CHR(9) . $c->toString();
    82.             }
    83.         }
    84.         return $string;
    85.     }
    86. }
     
  2. Conus

    Conus Активный пользователь

    С нами с:
    21 окт 2015
    Сообщения:
    92
    Симпатии:
    0
    извеняюсь вот класс
    Код (Text):
    1. class Html{
    2.  
    3.     private static $_instance = null;
    4.     private $_top = null;
    5.     private $tag = null;
    6.     private $attributes = null;
    7.     private $class = null;
    8.     private $text = '';
    9.     private $content = null;
    10.     private $autoclosed = true;
    11.     private $textFirst = false;
    12.  
    13.     private function __construct($tag, $top = null){ $this->tag = $tag; $this->_top =& $top; return $this; }
    14.  
    15.     public static function createElement($tag = ''){ self::$_instance = new Html($tag); return self::$_instance; }
    16.  
    17.     public function addElement($tag)
    18.     {
    19.         $html = null;
    20.         if(is_null($this->content)){ $this->content = array(); $this->autoclosed = false; }
    21.         if(is_object($tag) && get_class($tag) == get_class($this))
    22.         {
    23.             $html = $tag;
    24.             $html->_top = $this->_top;
    25.             $this->content[] = $html;
    26.         }
    27.         else
    28.         {
    29.             $html = new Html($tag, (is_null($this->_top) ? $this : $this->_top ));
    30.             $this->content[] = $html;
    31.         }
    32.         return $html;
    33.     }
    34.  
    35.     //------------------------------------------------------------
    36.  
    37.     public function tab($n)
    38.     {
    39.      
    40.        $tb = Html::createElement('table');
    41.      
    42.        $r = $tb->addElement('tr');
    43.          
    44.        $c = $r->addElement('td');
    45.  
    46.        $c->text('###');
    47.  
    48.      
    49.  
    50.      
    51.      
    52.         $cel = $r->addElement('td');
    53.          
    54.             $cel->text('xx');
    55.      
    56.         return $tb;
    57.      
    58.     }
    59.  
    60.  
    61.     public function text($value){  $this->text = $value; return $this; }
    62.  
    63.     public function set($name,$value)
    64.     { if(is_null($this->attributes)) $this->attributes = array(); $this->attributes[$name] = $value; return $this;
    65.     }
    66.      
    67.  
    68.     public function addClass($value){ if(is_null($this->class)) $this->class = array(); $this->class[] = $value; return $this;  }
    69.  
    70.     public function removeClass($class){
    71.         if(!is_null($this->class)){
    72.             unset($this->class[array_search($class, $this->class)]);
    73.             // foreach($this->class as $key=>$value){
    74.                 // if($class == $value)
    75.                     // $this->class[$key] = '';
    76.             // }
    77.         }
    78.         return $this;
    79.     }
    80.  
    81.     public function showTextBeforeContent($bool){$this->textFirst = $bool; }
    82.     public function __toString(){ return (is_null($this->_top) ? $this->toString() : $this->_top->toString() ); }
    83.  
    84.     public function toString(){
    85.         $string = '';
    86.         if(!empty($this->tag))
    87.         {
    88.             $string .=  '<' . $this->tag;
    89.             $string .= $this->attributesToString();
    90.             if($this->autoclosed && empty($this->text)) $string .= '/>' . CHR(13) . CHR(10) . CHR(9);
    91.             else $string .= '>' . ($this->textFirst ?  $this->text.$this->contentToString() : $this->contentToString().$this->text ). '</' . $this->tag . '>';
    92.         }
    93.         else{  $string .= $this->contentToString(); }    
    94.         return $string;
    95.     }
    96.  
    97.     private function attributesToString(){
    98.         $string = '';
    99.         if(!is_null($this->attributes)){
    100.             foreach($this->attributes as $key => $value){
    101.                 if(!empty($value))
    102.                     $string .= ' ' . $key . '="' . $value . '"';
    103.             }
    104.         }
    105.         if(!is_null($this->class) && count($this->class) > 0 ){
    106.             $string .= ' class="' . implode(' ',$this->class) . '"';
    107.         }
    108.         return $string;
    109.     }
    110.  
    111.     private function contentToString(){
    112.         $string = '';
    113.         if(!is_null($this->content)){
    114.             foreach($this->content as $c){
    115.                 $string .= CHR(13) . CHR(10) . CHR(9) . $c->toString();
    116.             }
    117.         }
    118.         return $string;
    119.     }
    120. }
     
  3. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    Когда создаете тему то нужно код не прямую вставить в нем а через специальных тегов а так не чего не понятно