10/10/2018, 13:21

Sự thật về cái gọi là tách biệt phần design với code php của Smarty

PHP Code:
                                             {elseif $keyid eq '17'} <!--WebSite-->
                                                  <
td width=25% class="dvtCellInfo" align="left" id="mouseArea_{$label}onmouseover="hndMouseOver({$keyid},'{$label}');" onmouseout="fnhide('crmspanid');">&nbsp;<span id="dtlview_{$label}"><a href="http://{$keyval}target="_blank">{$keyval}</a></span>
                                                      <
div id="editarea_{$label}style="display:none;">
                                                        <
input class="detailedViewTextBox" onFocus="this.className='detailedViewTextBoxOn'" onBlur="this.className='detailedViewTextBox'" onkeyup="validateUrl('{$keyfldname}');" type="text" id="txtbox_{$label}name="{$keyfldname}maxlength='100' value="{$keyval}"></input>
                                                        <
br><input name="button_{$label}type="button" class="crmbutton small save" value="{$APP.LBL_SAVE_LABEL}onclick="dtlViewAjaxSave('{$label}','{$MODULE}',{$keyid},'{$keytblname}','{$keyfldname}','{$ID}');fnhide('crmspanid');"/> {$APP.LBL_OR}
                                                        <
a href="javascript:;" onclick="hndCancel('dtlview_{$label}','editarea_{$label}','{$label}')" class="link">{$APP.LBL_CANCEL_BUTTON_LABEL}</a>
                                                       </
div>
                                                  </
td>
                         {elseif 
$keyid eq '85'}<!--Skype-->
                                                <
td width=25% class="dvtCellInfo" align="left" id="mouseArea_{$label}onmouseover="hndMouseOver({$keyid},'{$label}');" onmouseout="fnhide('crmspanid');">&nbsp;<img src="{$IMAGE_PATH}skype.gif" alt="{$APP.LBL_SKYPE}title="{$APP.LBL_SKYPE}LANGUAGE=javascript align="absmiddle"></img><span id="dtlview_{$label}"><a href="skype:{$keyval}?call">{$keyval}</a></span>
                                                        <
div id="editarea_{$label}style="display:none;">
                                                          <
input class="detailedViewTextBox" onFocus="this.className='detailedViewTextBoxOn'" onBlur="this.className='detailedViewTextBox'" type="text" id="txtbox_{$label}name="{$keyfldname}maxlength='100' value="{$keyval}"></input>
                                                          <
br><input name="button_{$label}type="button" class="crmbutton small save" value="{$APP.LBL_SAVE_LABEL}onclick="dtlViewAjaxSave('{$label}','{$MODULE}',{$keyid},'{$keytblname}','{$keyfldname}','{$ID}');fnhide('crmspanid');"/> {$APP.LBL_OR}
                                                          <
a href="javascript:;" onclick="hndCancel('dtlview_{$label}','editarea_{$label}','{$label}')" class="link">{$APP.LBL_CANCEL_BUTTON_LABEL}</a>
                                                       </
div>
                                                  </
td>    
                                             {elseif 
$keyid eq '19' || $keyid eq '20'} <!--TextArea/Description-->
                        <!-- 
we will empty the value of ticket and faq comment -->
                        {if 
$label eq $MOD.LBL_ADD_COMMENT}
                            {
assign var=keyval value='}
                        {/if}
                            <!--{
assign var="DESCRIPTION_SEPARATOR_STRING" value=" "}  {* Separates Description *}-->
                            <!--{
assign var="DESCRIPTION_WORDWRAP_WIDTH" value="70"} {* Noof chars for word wrapping long lines of Description *}-->
                            {if 
$MODULE eq 'Notes'}
                            <!--
To give hyperlink to URL-->
                                                        <
td width="100%" colspan="3" class="dvtCellInfo" align="left">{$keyval|regex_replace:"/(^|***91;  ***93;)(***91;w***93;+?://.*?***91;^ " <***93;*)/":"\1<a href="\2" target="_blank">\2</a>"|regex_replace:"/(^|***91;  ***93;)((www|ftp).***91;w-***93;+.***91;w-.~***93;+(?:/***91;^ " <***93;*)?)/":"\1<a href="http://\2" target="_blank">\2</a>"|regex_replace:"/(^|***91;  ***93;)(***91;a-z0-9&-_.***93;+?)@(***91;w-***93;+.(***91;w-.***93;+.)****91;w***93;+)/i":"\1<a href="mailto:\2@\3">\2@\3</a>"|regex_replace:"/,"|."|)"|)."|.)"/":"""|replace:" ":"<br>&nbsp;"}&nbsp;
                                                        </
td>
                                                      {else}
                                                        <
td width="100%" colspan="3" class="dvtCellInfo" align="left" id="mouseArea_{$label}onmouseover="hndMouseOver({$keyid},'{$label}');" onmouseout="fnhide('crmspanid');">&nbsp;<span id="dtlview_{$label}">
                                {
$keyval|regex_replace:"/(^|***91;  ***93;)(***91;w***93;+?://.*?***91;^ " <***93;*)/":"\1<a href="\2" target="_blank">\2</a>"|regex_replace:"/(^|***91;  ***93;)((www|ftp).***91;w-***93;+.***91;w-.~***93;+(?:/***91;^ " <***93;*)?)/":"\1<a href="http://\2" target="_blank">\2</a>"|regex_replace:"/(^|***91;  ***93;)(***91;a-z0-9&-_.***93;+?)@(***91;w-***93;+.(***91;w-.***93;+.)****91;w***93;+)/i":"\1<a href="mailto:\2@\3">\2@\3</a>"|regex_replace:"/,"|."|)"|)."|.)"/":"""|replace:" ":"<br>&nbsp;"}
                                                                </
span>
                                                                <
div id="editarea_{$label}style="display:none;">
                                                                <
textarea id="txtbox_{$label}name="{$keyfldname}"  class=detailedViewTextBox onFocus="this.className='detailedViewTextBoxOn'"onBlur="this.className='detailedViewTextBox'" cols="90" rows="8">{$keyval|replace:"<br>":" "}</textarea>
                                                                <
br><input name="button_{$label}type="button" class="crmbutton small save" value="{$APP.LBL_SAVE_LABEL}onclick="dtlViewAjaxSave('{$label}','{$MODULE}',{$keyid},'{$keytblname}','{$keyfldname}','{$ID}');fnhide('crmspanid');"/> {$APP.LBL_OR}
                                                                <
a href="javascript:;" onclick="hndCancel('dtlview_{$label}','editarea_{$label}','{$label}')" class="link">{$APP.LBL_CANCEL_BUTTON_LABEL}</a>
                                                                </
div>
                                                        </
td>
                                                   {/if}
                                             {elseif 
$keyid eq '21' || $keyid eq '24' || $keyid eq '22'} <!--TextArea/Street-->
                                                  <
td width=25% class="dvtCellInfo" align="left" id="mouseArea_{$label}onmouseover="hndMouseOver({$keyid},'{$label}');" onmouseout="fnhide('crmspanid');">&nbsp;<span id="dtlview_{$label}">{$keyval}</span>
                                                      <
div id="editarea_{$label}style="display:none;">
                                                        <
textarea id="txtbox_{$label}name="{$keyfldname}"  class=detailedViewTextBox onFocus="this.className='detailedViewTextBoxOn'"onBlur="this.className='detailedViewTextBox'" rows=2>{$keyval|regex_replace:"/<brs*/>/":""}</textarea>                                                      
                                                        <
br><input name="button_{$label}type="button" class="crmbutton small save" value="{$APP.LBL_SAVE_LABEL}onclick="dtlViewAjaxSave('{$label}','{$MODULE}',{$keyid},'{$keytblname}','{$keyfldname}','{$ID}');fnhide('crmspanid');"/> {$APP.LBL_OR}
                                                        <
a href="javascript:;" onclick="hndCancel('dtlview_{$label}','editarea_{$label}','{$label}')" class="link">{$APP.LBL_CANCEL_BUTTON_LABEL}</a>
                                                       </
div>
                                                  </
td>
                                             {elseif 
$keyid eq '50' || $keyid eq '73' || $keyid eq '51'} <!--AccountPopup-->
                                                  <
td width=25% class="dvtCellInfo" align="left" id="mouseArea_{$label}">&nbsp;<a href="{$keyseclink}">{$keyval}</a>
                                                  </
td>
                                             {elseif 
$keyid eq '57'} <!--ContactPopup-->
                        <!-- 
Ajax edit link not provided for contact Reports To -->
                                                      <
td width=25% class="dvtCellInfo" align="left" id="mouseArea_{$label}">&nbsp;<a href="{$keyseclink}">{$keyval}</a></td>
                                             {elseif 
$keyid eq '59'} <!--ProductPopup-->
                                                  <
td width=25% class="dvtCellInfo" align="left" id="mouseArea_{$label}onmouseover="hndMouseOver({$keyid},'{$label}');" onmouseout="fnhide('crmspanid');">&nbsp;<span id="dtlview_{$label}"><a href="{$keyseclink}">{$keyval}</a></span>
                                                      <
div id="editarea_{$label}style="display:none;">                                                        
                                                         <
input id="popuptxt_{$label}
toannet viết 15:23 ngày 10/10/2018
Chỉ lấy tiểu số đem đi so với đại số ... hic hic
conan1212 viết 15:36 ngày 10/10/2018
Đại số là mấy trang bé bé con con news như ở VN hả em, thử đếm xem cái đoạn trên nó là bao nhiêu dòng, mà đó chỉ là một phần bé tẹo của cái file template thôi nha em
NguoiVietNET88 viết 15:27 ngày 10/10/2018
Được gửi bởi conan1212
Đại số là mấy trang bé bé con con news như ở VN hả em, thử đếm xem cái đoạn trên nó là bao nhiêu dòng, mà đó chỉ là một phần bé tẹo của cái file template thôi nha em
Bạn nên đem đoạn code đó vào http://www.smarty.net thắc mắc, nếu nó ko có hiệu quả thì nó đã bị thanh trừ từ lâu rồi. Tùy theo người viết có tình khéo léo hay ko hay cứ rập khuôn theo công thức như thế. Chẳng có gì là sai cả vì nó chưa được chứng minh là đúng thôi.
jiSh@n viết 15:30 ngày 10/10/2018
Vấn đề của Smarty ai chả biết mà lão Conan cứ đào lên là sao
conan1212 viết 15:33 ngày 10/10/2018
Chẳng có gì là sai cả vì nó chưa được chứng minh là đúng thôi
Câu này hay ghê
Được gửi bởi jiSh@n
Vấn đề của Smarty ai chả biết mà lão Conan cứ đào lên là sao
Đào lên cho nó có chuyện để bàn, dạo này ko vào đây, lâu lâu vào xì pam chơi
@all: ở đây bàn về khía cạnh "cái gọi là tách biệt phần design với phần code" nhé mọi người.
Mahakaruna viết 15:28 ngày 10/10/2018
First released in January 2001, Smarty has become a stagnant, bug-ridden mess—and also the most popular PHP templating engine in use today. But it shouldn't be. No Smarty was created to warn developers about its use and encourage the use of superior alternatives.
http://nosmarty.net/

Xem thử đi bác ..
Vô Thin viết 15:37 ngày 10/10/2018
Đã từng có ông nào đó viết câu "Once upon a time, there is one man who hate smarty because he think Smarty is too big for just a template engine." rồi mà lị. Nhưng mà kệ, tới nay vẫn còn có nhiều trang web sử dụng Smarty, không sao cả, họ vẫn chạy tốt. Nói túm lại là nó đã là một phần của lịch sử PHP rồi. Mấy cái Symfony, CakePHP, CodeIgniter,... được ca ngợi nhiều, nhưng thú thực là cho đến nay vẫn chưa có sự thành công như Smarty.

Nói chung là mời bác PCDINH vào đây nói chuyện. Bác ấy dường như xem PHP là một tôn giáo, hy vọng có bài thuyết pháp hay cho mọi người cùng nghe
itnew2009 viết 15:29 ngày 10/10/2018
hic, mình gà lắm, các bạn có ai tốt giải thích cho mình cái đoạn code trên nó có vấn đề gì vậy.
ngoc_viet08 viết 15:24 ngày 10/10/2018
em thấy nhiều cái hỗ trợ cho php mà muốn xài thì học cách xài nó cũng mệt vãi . nếu hiểu code php thì tự làm cho đơn giản .
Bài liên quan
0