prypal 0 Zgłoś post Napisano Czerwiec 5, 2013 Witam, od jakiegoś czasu walcze metodą prób i błędów z przekładem kodu SMARTY na kod PHP ale za chiny nie jestem wstanie tego ogarnąć. Smarty wygląda tak {$users[$i.user_id].username} oraz {foreach from=$f.categories item=e}{foreach from=$e item=c name=foo}{$categories[$c].name}{if !$smarty.foreach.foo.last}{/if}{/foreach}{/foreach} Osobe która pomoże jestem wstanie wesprzeć małą dotacją. Udostępnij ten post Link to postu Udostępnij na innych stronach
PrecelusMaximus 53 Zgłoś post Napisano Czerwiec 5, 2013 (edytowany) Wgl nie wiem co ty chcesz zrobić... Po co przekładać "smarty" na php. W sumie lepiej nie używać smartów, chyba że takich które potrafią cachować szablony. Nie są wcale bardziej wygodne niż zwykłe <?php $zmienna; ?> a serwer zostanie mniej obciążony. Edytowano Czerwiec 5, 2013 przez PrecelusMaximus (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
prypal 0 Zgłoś post Napisano Czerwiec 5, 2013 (edytowany) Dzieki za odpowiedź oraz sugestie, chodzi o to że mam skrypt napisany pod smarty, ale niektóre elementy są includowane z php część kodów udało mi się przełożyć a część nie, dla przykładu napisze jeden poniżej: {$currency.symbol}{$i.price} na '.$currency['symbol'].$i['price'].' Napisze tylko tyle że nie jestem programistą Kto pomoże stawiam, wóde! Edytowano Czerwiec 5, 2013 przez prypal (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
PapaSmerf 497 Zgłoś post Napisano Czerwiec 5, 2013 Pokaż całą templatkę, to można coś pomyśleć. Udostępnij ten post Link to postu Udostępnij na innych stronach
prypal 0 Zgłoś post Napisano Czerwiec 5, 2013 (edytowany) Część która odpowiada za SMARTY <ul id="weekly-featured-items"> {if $weeklyItems} {foreach from=$weeklyItems item=i} <li class="thumbnail"> <a href="/{$languageURL}items/{$i.id}/{$i.name|url}"><img data-tooltip="{$i.name|escape}" alt="{$i.name|escape}" class="landscape-image-magnifier preload no_preview" data-item-author="by {$users[$i.user_id].username}" data-item-category="{foreach from=$i.categories item=e}{foreach from=$e item=c name=foo}{$categories[$c].name} {if !$smarty.foreach.foo.last} \ {/if}{/foreach}{/foreach}" data-item-cost="{$currency.symbol}{$i.price}" data-item-name="{$i.name|escape}" data-preview-height="" data-preview-url="{$data_server}uploads/items/{$i.id}/preview.jpg" data-preview-width="" src="{$data_server}uploads/items/{$i.id}/{$i.thumbnail}" title="" border="0" width="80" height="80"></a> </li> {/foreach} {/if} </ul> Część przełożona na PHP if(is_array($items)) { $text .= '<ul id="weekly-featured-items">'; foreach($items as $i) { $text .= '<li class="thumbnail"><a href="/'.$languageURL.'items/'.$i['id'].'" title="'.htmlspecialchars($i['name']).'"><img data-tooltip="'.htmlspecialchars($i['name']).'" alt="'.htmlspecialchars($i['name']).'" class="landscape-image-magnifier preload no_preview" data-item-author="" data-item-category="" data-item-cost="'.$currency['symbol'].$i['price'].' " data-item-name="'.htmlspecialchars($i['name']).'" data-preview-height="" data-preview-url="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/preview.jpg" data-preview-width="" src="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/'.$i['thumbnail'].'" title="" border="0" width="80" height="80"></a></li>'; } $text .= '</ul>'; } Potrzebuje przełożyć ze smarty na php, ten kod: {$users[$f.user_id].username} {foreach from=$f.categories item=e}{foreach from=$e item=c name=foo}{$categories[$c].name} {if !$smarty.foreach.foo.last}{/if}{/foreach}{/foreach} Edytowano Czerwiec 5, 2013 przez prypal (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
PapaSmerf 497 Zgłoś post Napisano Czerwiec 5, 2013 Czemu Ty z tego taką sieczkę robisz? Po co wciskasz HTML do zmiennej? Poza tym, jakbyś napisał jeszcze co nie działa, byłoby super. Udostępnij ten post Link to postu Udostępnij na innych stronach
prypal 0 Zgłoś post Napisano Czerwiec 5, 2013 (edytowany) Wszystko działa sprawnie, potrzebuje tylko przełożyć kod SMARTY na kod PHP. to wszystko, Edytowano Czerwiec 5, 2013 przez prypal (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Czerwiec 6, 2013 echo $users[$f['user_id']]['username']; foreach ($f['categories'] as $e) { foreach ($e as $c) { echo $categories[$c]['name']; } } Tamto last ominąłem bo do niczego nie jest wykorzystywane. Udostępnij ten post Link to postu Udostępnij na innych stronach
prypal 0 Zgłoś post Napisano Czerwiec 6, 2013 (edytowany) echo $users[$f['user_id']]['username']; foreach ($f['categories'] as $e) { foreach ($e as $c) { echo $categories[$c]['name']; } } Tamto last ominąłem bo do niczego nie jest wykorzystywane. Przede wszystkim dziękuje wam za poświęcony czas, sam się nad tym głowiłem pare dni, wymyślając tuziny kombinacji.. Jeśli chodzi o to pierwsze, mniej skomplikowane działa pieknie, sęk w tym że musze wstawić to do HTML, więc teraz to wygląda tak: " '.$users[$f['user_id']]['username'].' " Całościowo to wygląda tak: <img data-tooltip=" '.htmlspecialchars($i['name']).' " alt=" '.htmlspecialchars($i['name']).' " class="landscape-image-magnifier preload no_preview" data-item-author="by '.$users[$f['user_id']]['username'].' " data-item-category="" data-item-cost=" '.$currency['symbol'].$i['price'].' " data-item-name=" '.htmlspecialchars($i['name']).' " data-preview-height="" data-preview-url="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/preview.jpg " data-preview-width="" src="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/'.$i['thumbnail'].'" title="" border="0" width="80" height="80"> Schody zaczynają się z tym drugim bardziej zawiłym, {foreach from=$f.categories item=e}{foreach from=$e item=c name=foo}{$categories[$c].name}{if !$smarty.foreach.foo.last}{/if}{/foreach}{/foreach} Jak wstawić foreach ($i['categories'] as $e) { foreach ($e as $c) { echo $categories[$c]['name']; } } <img data-item-category="tu"> Edytowano Czerwiec 6, 2013 przez prypal (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Łukasz Ostrowski 593 Zgłoś post Napisano Czerwiec 6, 2013 foreach ($i['categories'] as $e) { foreach ($e as $c) { echo '<img data-item-category="'.$categories[$c]['name'].'"/>; } } o to chodzi? Udostępnij ten post Link to postu Udostępnij na innych stronach
prypal 0 Zgłoś post Napisano Czerwiec 6, 2013 (edytowany) Chodzi o to by wstawić ten kod wewnątrz HTML {foreach from=$i.categories item=e}{foreach from=$e item=c name=foo}{$categories[$c].name} {if !$smarty.foreach.foo.last} \ {/if}{/foreach}{/foreach} Tak wygląda kod ze SMARTY <ul id="weekly-featured-items"> {if $weeklyItems} {foreach from=$weeklyItems item=i} <li class="thumbnail"> <a href="/{$languageURL}items/{$i.id}/{$i.name|url}"><img data-tooltip="{$i.name|escape}" alt="{$i.name|escape}" class="landscape-image-magnifier preload no_preview" data-item-author="by {$users[$f.user_id].username}" data-item-category="{foreach from=$i.categories item=e}{foreach from=$e item=c name=foo}{$categories[$c].name} {if !$smarty.foreach.foo.last} \ {/if}{/foreach}{/foreach}" data-item-cost="{$currency.symbol}{$i.price}" data-item-name="{$i.name|escape}" data-preview-height="" data-preview-url="{$data_server}uploads/items/{$i.id}/preview.jpg" data-preview-width="" src="{$data_server}uploads/items/{$i.id}/{$i.thumbnail}" title="" border="0" width="80" height="80"></a> </li> {/foreach} {/if} </ul> A tak wygląda przełożony na PHP if(is_array($items)) { $text .= '<ul id="weekly-featured-items">'; foreach($items as $i) { $text .= '<li class="thumbnail"><a href="/'.$languageURL.'items/'.$i['id'].'" title="'.htmlspecialchars($i['name']).'"><img data-tooltip="'.htmlspecialchars($i['name']).'" alt="'.htmlspecialchars($i['name']).'" class="landscape-image-magnifier preload no_preview" data-item-author="by '.$users[$i['user_id']]['username'].' " data-item-category=" jak go wstawić tu " data-item-cost="'.$currency['symbol'].$i['price'].' " data-item-name="'.htmlspecialchars($i['name']).'" data-preview-height="" data-preview-url="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/preview.jpg" data-preview-width="" src="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/'.$i['thumbnail'].'" title="" border="0" width="80" height="80"></a></li>'; } $text .= '</ul>'; } Wie ktoś, co mam na myśli? posiadam jeszcze ten kod gdy jest żywcem wycięty z cache smarty: <?php endif; ?> <ul id="weekly-featured-items"> <?php if ($this->_tpl_vars['weeklyItems']): ?> <?php $_from = $this->_tpl_vars['weeklyItems']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }if (count($_from)): foreach ($_from as $this->_tpl_vars['i']):?> <li class="thumbnail"> <a href="/<?php echo $this->_tpl_vars['languageURL']; ?>items/<?php echo $this->_tpl_vars['i']['id']; ?>/<?php echo ((is_array($_tmp=$this->_tpl_vars['i']['name'])) ? $this->_run_mod_handler('url', true, $_tmp) : smarty_modifier_url($_tmp)); ?>"><img data-tooltip="<?php echo ((is_array($_tmp=$this->_tpl_vars['i']['name'])) ? $this->_run_mod_handler('escape', true, $_tmp) : smarty_modifier_escape($_tmp)); ?>" alt="<?php echo ((is_array($_tmp=$this->_tpl_vars['i']['name'])) ? $this->_run_mod_handler('escape', true, $_tmp) : smarty_modifier_escape($_tmp)); ?>" class="landscape-image-magnifier preload no_preview" data-item-author="by <?php echo $this->_tpl_vars['users'][$this->_tpl_vars['i']['user_id']]['username']; ?>" data-item-category="<?php $_from = $this->_tpl_vars['i']['categories']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }if (count($_from)): foreach ($_from as $this->_tpl_vars['e']):?><?php $_from = $this->_tpl_vars['e']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }$this->_foreach['foo'] = array('total' => count($_from), 'iteration' => 0);if ($this->_foreach['foo']['total'] > 0): foreach ($_from as $this->_tpl_vars['c']): $this->_foreach['foo']['iteration']++;?><?php echo $this->_tpl_vars['categories'][$this->_tpl_vars['c']]['name']; ?> <?php if (! ($this->_foreach['foo']['iteration'] == $this->_foreach['foo']['total'])): ?> \ <?php endif; ?><?php endforeach; endif; unset($_from); ?><?php endforeach; endif; unset($_from); ?>" data-item-cost="<?php echo $this->_tpl_vars['currency']['symbol']; ?><?php echo $this->_tpl_vars['i']['price']; ?>" data-item-name="<?php echo ((is_array($_tmp=$this->_tpl_vars['i']['name'])) ? $this->_run_mod_handler('escape', true, $_tmp) : smarty_modifier_escape($_tmp)); ?>" data-preview-height="" data-preview-url="<?php echo $this->_tpl_vars['data_server']; ?>uploads/items/<?php echo $this->_tpl_vars['i']['id']; ?>/preview.jpg" data-preview-width="" src="<?php echo $this->_tpl_vars['data_server']; ?>uploads/items/<?php echo $this->_tpl_vars['i']['id']; ?>/<?php echo $this->_tpl_vars['i']['thumbnail']; ?>" title="" border="0" width="80" height="80"></a> </li> <?php endforeach; endif; unset($_from); ?> <?php endif; ?> </ul> Edytowano Czerwiec 6, 2013 przez prypal (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
PrecelusMaximus 53 Zgłoś post Napisano Czerwiec 6, 2013 (edytowany) Ja już nic nie rozumiem.... To co dał ZooMpl można zapisać jako: <?php foreach ($i['categories'] as $e): ?> <?php foreach ($e as $c): ?> <img data-item-category="<? echo $categories[$c]['name']; ?>"/> <?php endforeach; ?> <?php endforeach; ?> Sam mniej więcej czegoś takiego używam, aczkolwiek mam swoje klasy itp. Zresztą WordPress i Joomla mają podobne proste zastosowania. http://php.net/manual/en/control-structures.alternative-syntax.php http://www.php.net/manual/en/control-structures.while.php http://www.php.net/manual/en/control-structures.for.php itp Edytowano Czerwiec 6, 2013 przez PrecelusMaximus (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
prypal 0 Zgłoś post Napisano Czerwiec 6, 2013 (edytowany) Ja już nic nie rozumiem.... To co dał ZooMpl można zapisać jako: <?php foreach ($i['categories'] as $e): ?> <?php foreach ($e as $c): ?> <img data-item-category="<? echo $categories[$c]['name']; ?>"/> <?php endforeach; ?> <?php endforeach; ?> Sam mniej więcej czegoś takiego używam, aczkolwiek mam swoje klasy itp. Zresztą WordPress i Joomla mają podobne proste zastosowania. http://php.net/manual/en/control-structures.alternative-syntax.php http://www.php.net/manual/en/control-structures.while.php http://www.php.net/manual/en/control-structures.for.php itp Jak zmienić poniższy kod SMARTY na PHP by móc wstawić je do HTML. {foreach from=$i.categories item=e}{foreach from=$e item=c name=foo}{$categories[$c].name} {if !$smarty.foreach.foo.last} \ {/if}{/foreach}{/foreach} Edytowano Czerwiec 6, 2013 przez prypal (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
PapaSmerf 497 Zgłoś post Napisano Czerwiec 6, 2013 Przecież Ci koledzy napisali? Poza tym, jakie zapytania do HTML? Udostępnij ten post Link to postu Udostępnij na innych stronach
prypal 0 Zgłoś post Napisano Czerwiec 6, 2013 (edytowany) Nie rozumiem, więc powiniem to wstawić tak ? if(is_array($items)) { $text .= '<ul id="weekly-featured-items">'; foreach($items as $i) { $text .= '<li class="thumbnail"><a href="/'.$languageURL.'items/'.$i['id'].'" title="'.htmlspecialchars($i['name']).'"><img data-tooltip="'.htmlspecialchars($i['name']).'" alt="'.htmlspecialchars($i['name']).'" class="landscape-image-magnifier preload no_preview" data-item-author="by '.$users[$i['user_id']]['username'].'"'.foreach ($i['categories'] as $e) { foreach ($e as $c) { echo 'data-item-category="'.$categories[$c]['name'].'" ; }}.' data-item-cost="'.$currency['symbol'].$i['price'].' " data-item-name="'.htmlspecialchars($i['name']).'" data-preview-height="" data-preview-url="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/preview.jpg" data-preview-width="" src="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/'.$i['thumbnail'].'" title="" border="0" width="80" height="80"></a></li>'; } $text .= '</ul>'; } Edytowano Czerwiec 6, 2013 przez prypal (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
maniack 403 Zgłoś post Napisano Czerwiec 6, 2013 (edytowany) . Edytowano Wrzesień 13, 2017 przez maniack (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
PrecelusMaximus 53 Zgłoś post Napisano Czerwiec 6, 2013 Dobra, bo sam nie wiesz o co Ci chodzi. Jaki system używasz i po co chcesz tłumaczyć to na php? Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Czerwiec 6, 2013 if(is_array($items)) { $text .= '<ul id="weekly-featured-items">'; foreach($items as $i) { $text .= '<li class="thumbnail"><a href="/'.$languageURL.'items/'.$i['id'].'" title="'.htmlspecialchars($i['name']).'"><img data-tooltip="'.htmlspecialchars($i['name']).'" alt="'.htmlspecialchars($i['name']).'" class="landscape-image-magnifier preload no_preview" data-item-author="by '.$users[$i['user_id']]['username'].'"';foreach ($i['categories'] as $e) { foreach ($e as $c) { $text .= 'data-item-category="'.$categories[$c]['name'].'"'; }} $text .= 'data-item-cost="'.$currency['symbol'].$i['price'].' " data-item-name="'.htmlspecialchars($i['name']).'" data-preview-height="" data-preview-url="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/preview.jpg" data-preview-width="" src="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/'.$i['thumbnail'].'" title="" border="0" width="80" height="80"></a></li>'; } $text .= '</ul>'; } Udostępnij ten post Link to postu Udostępnij na innych stronach
prypal 0 Zgłoś post Napisano Czerwiec 6, 2013 (edytowany) if(is_array($items)) { $text .= '<ul id="weekly-featured-items">'; foreach($items as $i) { $text .= '<li class="thumbnail"><a href="/'.$languageURL.'items/'.$i['id'].'" title="'.htmlspecialchars($i['name']).'"><img data-tooltip="'.htmlspecialchars($i['name']).'" alt="'.htmlspecialchars($i['name']).'" class="landscape-image-magnifier preload no_preview" data-item-author="by '.$users[$i['user_id']]['username'].'"'; foreach ($i['categories'] as $e) { foreach ($e as $c) { $text .= 'data-item-category="'.$categories[$c]['name'].'"'; } } $text .= 'data-item-cost="'.$currency['symbol'].$i['price'].' " data-item-name="'.htmlspecialchars($i['name']).'" data-preview-height="" data-preview-url="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/preview.jpg" data-preview-width="" src="'.DATA_SERVER.'/uploads/items/'.$i['id'].'/'.$i['thumbnail'].'" title="" border="0" width="80" height="80"></a></li>'; } $text .= '</ul>'; } sprawdziłem i jest prawie dobrze, ale to jeszcze nie to, Tak czy inaczej sprawe roztrzygł pewien freelancer odpłatnie, Rozwiązanie troche inne niż się spodziewałem $backslash = chr(); $a_kat = $i['categories']; $s_nazwy_kat = ""; foreach ($a_kat as $a_k) { foreach ($a_k as $kat_id) { $s_nazwy_kat .= $categories[$kat_id]['name']." \ "; } } <img data-item-category="'. $s_nazwy_kat .'"/> Dziekuje za wasz poświęcony czas oraz chęci, gdybym miał wystarczającą ilość postów, powysyłabym punkty reputacji //temat do zamknięcia. Edytowano Czerwiec 6, 2013 przez prypal (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach