-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в NF_hohol

 -Интересы

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 09.11.2007
Записей:
Комментариев:
Написано: 38

HEngine





HEngine - W3 програмное обеспечение.


Класс HEDOMElement и иже с ним

Понедельник, 18 Октября 2010 г. 01:26 + в цитатник

Использование ниже превндённого класса DOMElement на примере создания тэга DIV





Вызов Описанной структуры производится в момент выполнения команды
echo $DOMElement;



 


<?

class HEDOMElement implements ArrayAccess

    
{

    CONST 
CDATA='{Value}';

    CONST 
COMPLETE='<{Tag} {Attributes}/>';

    CONST 
OPEN="<{Tag} {Attributes}>\r\n{Value}{ChildNodes}</{Tag}>";

    protected 
$Vars=Array(

                            
'Tag'=>Null,

                            
'Type'=>self::CDATA,

                            
'Value'=>Null,

                            
'ChildNodes'=>Null,

                            
'Attributes'=>Null,

                            );

    public function 
offsetExists($Offset)

        {

        return isset(
$this->Vars[$Offset]);

        }

    public function 
offsetGet($Offset)

        {

        return (isset(
$this->Vars[$Offset]))?$this->Vars[$Offset]:null;

        }

    public function 
offsetSet($Offset,$Value)

        {

        return 
False;

        }

    public function 
offsetUnset($Offset)

        {

        return 
False;

        }

    public function 
Keys()

        {

        return 
Array_Keys($this->Vars);

        }

    public function 
__construct($Type=self::CDATA,$Tag=Null)

        {

        
$this->Vars=Array(

                            
'Tag'=>$Tag,

                            
'Type'=>$Type,

                            
'Value'=>Null,

                            
'Attributes'=>new HEDOMElementAttributes(),

                            
'ChildNodes'=>new HEDOMElementChildNodes(),

                            );

        }

    public function 
SetValue($Value)

        {

        
$this->Vars['Value']=$Value;

        }

    public function 
SetAttribute($AttributeName,$AttributeValue)

        {

        
$this['Attributes'][StrToLower($AttributeName)]=$AttributeValue;

        }

    public function 
AppendChild(self $ChildNode,$Index=null)

        {

        if(
$Index) return $this['ChildNodes'][$Index]=$ChildNode;

        else return 
$this['ChildNodes'][]=$ChildNode;

        }

    public function 
__toString()

        {

        
$Vars=Array();

        Foreach(
$this->Keys() As $Key)

            {

            if(
$Key=='Value')

                {

                
$Vars["{{$Key}}"]=(trim($this[$Key])!=null)?"{$this[$Key]}\r\n":StrVal(Null);

                }

            else

                {

                
$Vars["{{$Key}}"]=$this[$Key];

                }

            }

        Return 
StrTr($this['Type'],$Vars);

        }

    }

class 
HEDOMElementAttributes Implements ArrayAccess

    
{

    protected 
$Vars=Array();

    public function 
offsetExists($Offset)

        {

        return isset(
$this->Vars[$Offset]);

        }

    public function 
offsetGet($Offset)

        {

        return (isset(
$this->Vars[$Offset]))?$this->Vars[$Offset]:null;

        }

    public function 
offsetSet($Offset,$Value)

        {

        
$this->Vars[StrToLower($Offset)]=$Value;

        }

    public function 
offsetUnset($Offset)

        {

        if(isset(
$this->Vars[$Offset]))unset($this->Vars[$Offset]);

        }

    public function 
Keys()

        {

        return 
Array_Keys($this->Vars);

        }

    public function 
__toString()

        {

        
$Vars=Array();

        Foreach(
$this->Keys() As $Key)

            {

            
$Value=HTMLSpecialChars($this[$Key]);

            
$Vars[]="{$Key}=\"{$Value}\"";

            }

        return 
implode(" ",$Vars);

        }

    }

class 
HEDOMElementChildNodes implements ArrayAccess

    
{

    protected 
$Vars=Array();

    public function 
offsetExists($Offset)

        {

        return isset(
$this->Vars[$Offset]);

        }

    public function 
offsetGet($Offset)

        {

        return (isset(
$this->Vars[$Offset]))?$this->Vars[$Offset]:null;

        }

    public function 
offsetSet($Offset,$Value)

        {

        if(
$Offset)$this->Vars[StrToLower($Offset)]=$Value;

        else 
$this->Vars[]=$Value;

        }

    public function 
offsetUnset($Offset)

        {

        if(isset(
$this->Vars[$Offset]))unset($this->Vars[$Offset]);

        }

    public function 
Keys()

        {

        return 
Array_Keys($this->Vars);

        }

    public function 
__toString()

        {

        
$Vars=Array();

        Foreach(
$this->Keys() As $Key)

            {

            
$Value=$this[$Key];

            
$Vars[]=$Value;

            }

        return (
count($Vars)>0)?implode("\r\n",$Vars)."\r\n":StrVal(Null);

        }

    }

$DOMElement=new HEDOMElement(HEDOMElement::OPEN,'div');

$DOMElement->SetAttribute('Style','border: 1px solid blue');

$DOMElement->SetValue('Использование ниже превндённого класса DOMElement на примере создания тэга DIV');

$Br=$DOMElement->AppendChild(new HEDOMElement(HEDOMElement::COMPLETE,'br'));

$Input=$DOMElement->AppendChild(new HEDOMElement(HEDOMElement::COMPLETE,'input'));

$Input->SetAttribute('Value','Value');

$Input->SetAttribute('Type','Button');

$Br=$DOMElement->AppendChild(new HEDOMElement(HEDOMElement::COMPLETE,'br'));

$CDATA=$DOMElement->AppendChild(new HEDOMElement());

$CDATA->SetValue('Вызов Описанной структуры производится в момент выполнения команды'.highlight_string('echo $DOMElement;',true));

echo 
$DOMElement;




Метки:  

Понравилось: 16 пользователям

Аудио-запись: Гражданская Оборона - Забота у нас такая

Воскресенье, 27 Сентября 2009 г. 01:01 + в цитатник
Прослушать Остановить
40 слушали
4 копий

[+ в свой плеер]

Вступление: Hm | A | D | C F#  } 2 раза
            Hm | A

A   D          F#     Hm   A
Полыхают в синеве города,
    D          F#     H
Остывает на ветру горизонт,
        G          A         D         F#
Нам с тобой одна забота навсегда, навсегда -

     Em  F#     Hm A
     Радуга над боем,
     Em  F#     Hm A
     Радуга над пеплом,
     G   A      D     G
     Радуга над копотью,
     Em   F#       Hm    F# Hm A
     Бесконечный апрель...

Над тобой небесных рек берега,
Подо мной подземных вод молоко,
Нам с тобой одна забота на века, на века -

     Радуга над бездной,
     Радуга над ямой,
     Радуга над пропастью,
     Безнадежный апрель...

Бережет земля своих мертвецов,
Стережет своих гостей теремок,
Лишь одно для нас с тобою ремесло, ремесло -

     Радуга над миром,
     Радуга над прахом,
     G   A      D   Hm G
     Радуга над кладбищем...
        Em  F#     Hm
     ...Негасимый апрель...

 


Аудио-запись: Сплин - Романс

Вторник, 16 Июня 2009 г. 02:03 + в цитатник
Прослушать Остановить
165 слушали
4 копий

[+ в свой плеер]

A7 Dm
E||---------------------------|---------------------5-----|
H||-----------5--------5------|-----------5h6-------------|
G||--------6-----6--------6---|--------7------7--------7--|
D||-----5-----------5---------|-----7------------7--------|
A||--7------------------------|--5------------------------|
E||---------------------------|---------------------------|

A7 Dm
E||---------------------------|---------------------5-----|
H||-----------5--------5------|-----------5h6-------------|
G||--------6-----6--------6---|--------7------7--------7--|
D||-----5-----------5---------|-----7------------7--------|
A||--7------------------------|--5------------------------|
E||---------------------------|---------------------------|

Gm F
E||-----------5h6-------6-----|---------------------------|
H||--------8------8--------8--|-----------5h6-------6-----|
G||-----7------------7--------|--------5------5--------5--|
D||--5------------------------|-----7------------7--------|
A||---------------------------|--8------------------------|
E||---------------------------|---------------------------|

Gm A Dm
E||-----------6---------------|---------------------5-----|
H||--------8--------------5---|-----------5h6-------------|
G||-----7--------------6------|--------7------7--------7--|
D||--5--------------7---------|-----7------------7--------|
A||--------------7------------|--5------------------------|
E||---------------------------|---------------------------|

Партия второй гитары:

A7 Dm
E||-----------------------|-----------------------|
H||----------5------------|----------6------------|
G||--------6--------------|--------7--------------|
D||------5----------------|------7----------------|
A||----7------------------|----5------------------|
E||--5--------------------|--5--------------------|

A7 Dm
E||-----------------------|-----------------------|
H||----------5------------|----------6------------|
G||--------6--------------|--------7--------------|
D||------5----------------|------7----------------|
A||----7------------------|----5------------------|
E||--5--------------------|--5--------------------|

Gm F
E||---------------------|---------------------|
H||--5------6------6----|--5------6------6----|
G||---------------------|---------------------|
D||---------------------|---------------------|
A||---------------------|---------------------|
E||---------------------|---------------------|

Gm A Dm
E||-----------6----5----|-------------------|
H||--8------------------|--6----------------|
G||---------------------|-------------------|
D||---------------------|-------------------|
A||---------------------|-------------------|
E||---------------------|-------------------|

A7 Dm A7 Dm
И лампа не горит, и врут календари,
Gm F Gm A
И если ты давно хотела что-то мне сказать,
Dm
То говори.

Любой обманчив звук. Страшнее тишина,
Когда в самый разгар веселья падает из рук
Бокал вина.

И черный кабинет, и ждет в стволе патрон.
Так тихо, что я слышу, как идет на глубине
Вагон метро.

Между куплетами проигрыш: Gm F Gm A Dm A7 Dm

На площади полки. Темно в конце строки.
И в телефонной трубке эти много лет спустя
Одни гудки.

И где-то хлопнет дверь, и дрогнут провода.
Привет! Мы будем счастливы теперь \
И навсегда. / 2 раза

Метки:  


Процитировано 1 раз

Поиск сообщений в NF_hohol
Страницы: [1] Календарь