2013-06-20 15 views
0

我正在學習Smarty,我想只顯示一個人的名字和姓氏......有沒有可能或者是否更好地使用php? 非常感謝Smarty只有姓和名

+0

您可以操縱SMARTY數組和字符串數據。所以要回答你的問題 - 一般來說,你可以在通過DOM顯示時修改某個名字(字符串)。但是你必須發佈你處理的代碼以及如何將它加載到你的頁面上(即你正在將一個數據數據加載到頁面上的一個循環中)。 – blackhawk

+0

Smarty基於PHP構建。 Smarty只知道你給它的屬性和價值,所以是的,這是可能的,但是我們需要代碼示例,以及如果你需要幫助,你到底有什麼代碼。 – dKen

+0

IMO Smarty不值得使用。 PHP中的僞編程語言,性能嚴重下降。 – vikingmaster

回答

0

您認爲這個解決方案是否可行?從我的測試它是工作:

{assign var="newname" value=" "|explode:$name} 
{assign var=names_count value=$newname|@count} 
{if $names_count>2} 
    {assign var=position value=$names_count-1} 
    {$newname[0]} {$newname[$position]} 
{else} 
    {$name} 
{/if} 
+0

如果它適合你,那麼它的可行性。如果你有權訪問PHP,我個人會讓PHP做這些操作。然後把它分配給smarty。你知道你的變量是如何設置的以及它的內容是什麼,所以我們只能脫離我們所說的。 –

+0

也感覺你回答自己的問題,也許你可以upvote其他答案意識到它幫助你得到你需要的東西。 :) –

+2

@Diogo Mendonca,努力發現你自己聰明的解決方案,以解決問題。 – blackhawk

2

您可能需要使用PHP作爲改性劑在網頁上爆炸的字符串數據....

{" "|explode:$name} 

或試試這個...

{assign var=nameparts value=" "|explode:$name} 

給它shot ...但說實話,在將$ name變量加載到HTML頁面之前,您最好從PHP源代碼中「爆炸」操作。

UPDATE 只要能和你是如何使用$名稱的安全,你可以設置一個條件......正在使用Smarty的HTML代碼中

{assign var=nameparts value=" "|explode:$name} 

{if $nameparts[6] == 'Mendonça'} 
    <p>then my name is {nameparts[0]} {nameparts[6]}.</p> 
{else} 
    <p>we are dealing with a different name </p> 
{/if} 

..所有。

+0

然後我得到數組的第一個和最後一個元素? –

+0

@DiogoMendonça給代碼一個鏡頭,看看它是否適合你。告訴你不要進入你的系統是有點困難的。 – blackhawk

+0

是的,有條件的是看到我們看不到代碼是如何設置的。 –

2

你可以做到這一點,如果你真的想在Smarty做到這一點。

{assign var="newname" value=" "|explode:$name} 

{$newname[0]} {$newname[6]} 

更新

OR ..我會做的是做在PHP。然後將其分配給smarty。您的模板中使用{$fullname}

+0

這看起來非常好! – blackhawk

+0

謝謝。 @blachawk。我同意你的意見,但我會在PHP中進行分配。 –