Ho creato un canale chiamato carte di credito. Così ho creato un gruppo di template chiamato carte di credito con un indice che scorre su tutte le carte di credito e le emette. Questo aspetto funziona bene, ecco il mio codice per il file index.html all'interno della cartella credit-cards.group:ExpressionEngine: Modello a partita singola
{exp:channel:categories category_group="1" style="linear" dynamic="no"}
<div class="card-list tab" id="{category_url_title}">
<h2 class="category-title">{category_name} Credit Cards</h2>
<div class="cards">
{exp:channel:entries channel="credit_cards" category="{category_id}" dynamic="no"}
<article>
<h4><a href="{url_title_path='credit-cards'}">{title}</a><span class="web-exclusive">MBNA Website Exclusive</span></h4>
<ul>
<li class="col-img">
<a href="{url_title_path='credit-cards'}"><img width="116" height="84" alt="MBNA Platinum Credit Card" src="../lib-ui/img/cards/core/core_116x84/mbna_platinum_card_116x84.png"></a>
</li>
<li class="col-bt">{balance_transfer_rate}</li>
<li class="col-purchases">{purchases_rate}</li>
<li class="col-features">{key_features}</li>
<li class="col-apply">
<a rel="blank" class="btn btn-success" href="{apply_url}">
Apply Now<span class="hide"> for the {title}</span>
</a>
<a class="cta" href="{url_title_path='credit-cards'}">
Learn more<span class="hide"> about the {title}</span>
</a>
<label class="mbna-credit-card checkbox" for="compare_1">
<span tabindex="0">
<input type="checkbox" value="mbna-credit-card" id="compare_1">
</span>
<span class="hide"> Add the {title} to </span>Compare
</label>
</li>
</ul>
<p class="rep-ex">{representative_example}</p>
</article>
{/exp:channel:entries}
</div>
</div>
{/exp:channel:categories}
Quindi la mia domanda è questa. Supponiamo che abbia una carta di credito denominata visa credit card, l'url che viene generato per esso è/credit-cards/visa-credit-card. Quando faccio clic su questo collegamento, ho appena ricevuto nuovamente la mia pagina di indice. Ho creato un altro file modello all'interno del mio gruppo chiamato single.html che ha il codice per generare una singola carta di credito. È così:
<h1>Credit Card Page</h1>
{exp:channel:entries channel="credit_cards" limit="1"}
{if no_results}
{redirect="404"}
{/if}
Quindi, come faccio a utilizzare questo file modello per una singola voce?
Ciao Grazie per il tuo aiuto. Non ho dubbi che funzionerà comunque significa che tutto il codice è nello stesso file. Non è una soluzione molto pulita, non c'è modo di separarli in modo che guardi index.html per la pagina indice e single.html per una singola voce? – geoffs3310
Hey Geoffs, se vuoi conservare la struttura dell'URL "carte di credito/visa-carte di credito" invece di "carte di credito/carta di credito/visa-credito", la risposta di Chris è la strada da percorrere. Chris controlla basicamente se l'url contiene un valore dopo "credit-cards /" nell'URL, quindi passa a mostrare una singola voce. Puoi usare uno snippet o embed per dividere il tuo codice in un file diverso per mantenerlo pulito. –
Se si desidera rendere il modello più pulito, è possibile utilizzare gli snippet per rimuovere i blocchi del contenuto principale in file separati (sebbene sia necessario un componente aggiuntivo come Mountee o SnippetSync per salvarli come file). E piuttosto che fare se segment_2/segment_2 == "", sicuramente check out Switchee. Fare condizioni separate (semplici) per if/if not non è così male come fare condizionali complessi come if: else (perché entrambe le condizioni vengono analizzate anche se viene visualizzata solo una), ma una volta che inizi a usare Switchee scoprirai di avere da usare se le dichiarazioni molto meno. – Tyssen