Ovako, radim premium wordpress temu i pritom za theme options koristim NHP theme options framework (github link). Ako ne znate kako funkcioniraju theme options za wordpress, proces je slijedeći - za svaku pojedinačnu formu se deklarira array koji sadrži id, tip forme, naziv, opis, defaultnu vrijednost i eventualno neke dodatne stvari. U praksi to izgleda ovako:
array(
'id' => 'neki_text-id',
'type' => 'text', //tip forme
'title' => __('Neki Text', 'nhp-opts'), //ime forme
'desc' => __('Tralala', 'nhp-opts'), //dodatan opis
'std' => 'Blabla' //defaultna vrijednost
)
Ovdje to možete vidjeti od linije 155 na dalje. Uglavnom, php kod prepozna tip forme i provede cijeli array kroz foreach petlju (u ovom slučaju je to field-text) i na kraju generira HTML kod za formu. Konkretno to izgleda ovako:
<tr valign="top">
<th scope="row">Neki Text</th>
<td>
<input type="text" id="neki_text-id" name="themename[neki_text-id]" value="Blabla" class="small-text"/>
<span class="description">Tralala</span>
</td>
</tr>
E sad, cijelo sučelje uključujući dio
je dio Wordpress Settings API-ja i ja ne mogu direktno na njega utjecati, ali trebao bih manipulirati njime putem jQueryja kako bi napravio cijele opcije interaktivnijima i manje zbunjujućima za korisnike. Uglavnom, najbolja stvar je staviti class=“neki_text-id” u
putem PHP-a ili jQuery-a, ali ne znam kako.
Znači, pitanje glasi: kako promjeniti kod da se ‘id’ iz arraya deklarira kao class u
kojeg ne mogu direktno doseći?
Hvala 
BTW: Pitao sam na githubu, ali nitko ne odgovara…
Prva misao: ako ga ne možeš direktno doseći, odi od $("#neki_text-id").parents(“tr”).eq(0)
I pazi, parents() nije isto što i parent()
Nije ono što si pitao (PHP rješenje), ali će možda pomoći.
Da, ali trebao bi tako za svaki budući form. A preko jQueryja, nešto tipa ovo?
jQuery('.form-table tr').addClass({
//saznaj id prvog elementa koji se unutra nalazi i ima deklariran id
});
Sad ne znam kako izvesti ovaj komentar unutra…
Više ne stignem editirati, ali evo, kako dodati klasu
u koja se zove kao ID elementa koji je nested unutar tog
i ima poznati class…
Vjerojatno mozes prije outputa promijeniti to na neki nacin. Daj vise kôda.
I da, daj isjecak kôda koji sad imas i koji zelis dobiti.
Znači ima hrpetinu ovih
-ova i za svaki trebam izvaditi id nested elementa koji ima klasu ‘poberiklasu’ i taj id staviti kao klasu njegovog parent
elementa.
|
Use image file (instead of text) to serve as a logo.
|
U konkretno ovom gore slučaju
bi trebao dobiti klasu ‘header_logo_imgcheck’…
BTW: mislim da mi je jednostavnije mjenjati jQuery nego PHP, za PHP bi trebao previše toga mjenjati i onda kad updateam framework opet imam posla. Ovo je full jednostavnije…
Probaj s ovim
[HTML]jQuery( ‘input[type=“checkbox”]’ ).each( function() {
var klasa = jQuery( this ).attr( ‘id’ );
jQuery( this ).closest(‘tr’).attr( ‘class’, klasa );
});[/HTML]
E funkcionira
Sad ću se malo igrati s tim pa javim ako zapne negdje…
EDIT: evo, sve sam sredio, radi super!