Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
| Autor | Správa |
|---|
Registrovaný: 06.11.12 Prihlásený: 29.04.14 Príspevky: 22 Témy: 6 | 6 |
Nazdar, používam redakčný systém WordPress s hráčskou témou Valor ( http://www.web2feel.com/valor/). Téma používa tieto pluginy: Meta Box, Options Framework a WP-PageNavi. Môj problém spočíva v tom, že hodnotenie hier sa dá robiť iba celými číslami. Ja by som chcel pridať do celkového hodnotenia aj necelé čísla, a to konkrétne 1.5, 2.5 atď až po 9.5, čím by sadali lepšie hodnotiť hry. Podstatné je, že po upravení súboru metabox.php (nižšie) mi bez problémov išli nastaviť hodnotenie aj s necelým číslom, ale práve tieto nanovo pridané čísla nemali zelený pásik, ktorý graficky doplňoval celé hodnotenie(viz. obrázok). Skúšal som v téme Valor nájsť, čo určuje, aký veľký je pásik, ale nič sa mi nepodarilo nájsť. V súbore single-review.php (dole) som si všimol, že stránka volá plugin Meta Box, aby mu poskytla nejaké údaje, takže som hľadal tam... lenže bezúspešne. Neviete náhodou, kde by som našiel nastavenia, ktoré určujú podľa hodnotenia dĺžku pásika? Bol by som vám veľmi vďační. Inak verte, keby som to vedel nájsť a vyriešiť sám, tak sa tu nepýtam, ale po 2 hodinách som nič nenašiel a ani neprišiel na nič nové  .  V súbore metabox.php je nasledovný kód(pre lepšie pochopenie odporúčam pozrieť celý súbor): Kód: // 1st meta box $meta_boxes[] = array( // Meta box id, UNIQUE per meta box 'id' => 'review_info',
// Meta box title - Will appear at the drag and drop handle bar 'title' => 'Review details',
// Post types, accept custom post types as well - DEFAULT is array('post'); (optional) 'pages' => array( 'review' ),
// Where the meta box appear: normal (default), advanced, side; optional 'context' => 'normal',
// Order of meta box: high (default), low; optional 'priority' => 'high',
// List of meta fields 'fields' => array( // TEXT
...
array( 'name' => 'Audio', 'id' => "{$prefix}audio", 'type' => 'select', // Array of 'key' => 'value' pairs for select box 'options' => array( '1' => 'One', '2' => 'Two', '3' => 'Three', '4' => 'Four', '5' => 'Five', '6' => 'Six', '7' => 'Seven', '8' => 'Eight', '9' => 'Nine', '10' => 'Ten' ), // Default value, can be string (single value) or array (for both single and multiple values) 'std' => array( '5' ), 'desc' => 'Set a score for audio' ),
array( 'name' => 'Overall', 'id' => "{$prefix}overall", 'type' => 'select', // Array of 'key' => 'value' pairs for select box 'options' => array( '1' => 'Jeden', '1.5' => 'Jeden a pól', '2' => 'Dva', '2.5' => 'Dva a pól', '3' => 'Tri', '3.5' => 'Tri a pól', '4' => 'Štyri', '4.5' => 'Štyri a pól', '5' => 'Päť', '5.5' => 'Päť a pól', '6' => 'Šesť', '6.5' => 'Šesť a pól', '7' => 'Sedem', '7.5' => 'Sedem a pól', '8' => 'Osem', '8.5' => 'Osem a pól', '9' => 'Deväť', '9.5' => 'Deväť a pól', '10' => 'Desať' ), // Default value, can be string (single value) or array (for both single and multiple values) 'std' => array( '5' ), 'desc' => 'Set an overall score' ) ) ); V súbore "single-review.php" je nasledovný kód: Kód: <div class="ratebar clearfix"> <span class="ratehead">Celkovo</span> <span class="ratevalue"><?php echo get_post_meta($post->ID, 'WTF_overall', true) ?></span> <span class="rbar rate-<?php echo get_post_meta($post->ID, 'WTF_overall', true) ?> "></span></div>
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Problém je, že tá hodnota sa priamo používa v css ako názov triedy. Ak by tam mali ostať desatinné miesta, tak by sa museli pridať potrebné triedy do css a muselo by sa urobiť to, aby sa tam nedávala aj desatinná bodka (napr. by sa to číslo vynásobilo 10). V takom prípade by tam ale tých css pravidiel mohlo byť dosť veľa. Ďalšie riešenie by mohlo bať také, že by sa tam nepoužilo Kód: <span class="rbar rate-<?php echo get_post_meta($post->ID, 'WTF_overall', true) ?> "></span> , ale by sa tam použilo niečo ako Kód: <span style="width: <?php echo get_post_meta($post->ID, 'WTF_overall', true)*50 ?>px;"></span>
|
|
Registrovaný: 06.11.12 Prihlásený: 29.04.14 Príspevky: 22 Témy: 6 | 6 |
Aha, našiel som to tam. Tak uvažoval som nad tým, že by sa to dalo urobiť takto - v metabox.php by som nastavil hodnoty 10x väčšie a v style.css by som nastavil tu: Kód: span.ratevalue { display: block; width: 40px; background: #000; color: #fff; text-transform: uppercase; font-weight: 700; line-height: 30px; text-align: center; float: left; font-size: 18px; nastavil tak, aby bralo hodnotu napríklad 95 a vracalo 9.5. Myslíš, že by sa to dalo reálne spraviť? Lebo toto by bolo možno najlepšie riešenie.
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Podľa mňa je lepšie to riešenie so style="width: ?px" (pretože ak by to malo byť po pol bode, tak by sa do css muselo pridať ďalších 10 pravidiel).
|
|
Registrovaný: 06.11.12 Prihlásený: 29.04.14 Príspevky: 22 Témy: 6 | 6 |
No tak skúšal som to style="width: ?px", ale nejde to a viem aj prečo - tento kód obchádza css, v ktorom je presne zadané, ako ten zelený pásik bude vyzerať. Tvoj kód ale nedefinuje, čo robiť zo získanou hodnotou. Ono pridávať do css ďalšiu hordu pravidiel by nebol taký problém, prakticky to stačí skopírovať a zmeniť príslušné hodnoty. Napadlo ma, že pôvodná hodnota by teda bola tak, ako som vravel, nie 9.5 ale 95 a v tejto pasáži kódu Kód: <span class="ratevalue"><?php echo get_post_meta($post->ID, 'WTF_overall', true) ?></span> by sa dalo definovať, že hodnotu 95 vydelí 10 a tak dostane číslo 9.5, kód by mohol vyzerať nejak takto: Kód: <span class="ratevalue"><?php echo get_post_meta($post->ID, 'WTF_overall', true)/10 ?></span> Tento kód som vyskúšal a funguje presne tak, ako by som chcel. Viem síce, že bude treba vytvoriť veľký počet css pravidiel a že pre dobrého programátora je dôležité mať čo najkratší kód, ale toto ide a nebude problém to upraviť aj na iných častiach webu, kde sa tiež zobrazuje počet bodov pre hru. Čo si o tom myslíš? Inak veľmi pekne ďakujem za pomoc, bez teba by som asi ani nevedel, kde hľadať riešenie, priznám sa, style.css bolo zo posledné miesto, kde by som hľadal  . Tak čo už, nejako predsa treba začať a človek múdry z neba nespadne  .
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Pri tom riešení s width som odstránil aj class="rbar" (takže sa nepoužije správny štýl). Štýly rate-0 až rate-10 obsahujú len to width, takže presun priamo do style atribútu nie je problém.
Ak ti ale nevadí, že bude viac pravidiel a nikdy nebudeš potrebovať jemnejšie delenie tých bodov, tak sa dá použiť aj to tvoje riešenie. Pokiaľ ide o množstvo úprav, tak je to viac menej rovnaké, keďže sa to aj tak bude musieť upraviť úplne všade (a je otázne, prečo nepoužili nejakú funkciu, ktorá by to tam pridávala a teda by sa ten kód nemusel upravovať na tak veľa miestach).
|
|
Registrovaný: 06.11.12 Prihlásený: 29.04.14 Príspevky: 22 Témy: 6 | 6 |
Tak to už je vecou autora, ako si to spraví, možno z jeho pohľadu sa mu to zdalo ako najlepšie riešenie. A možno nepredpokladal, že to niekto bude chcieť takto upraviť. No to je jedno, hlavne že sa našlo riešenie  . Ešte raz ďakujem 
|
|
Stránka: 1 z 1
| [ Príspevkov: 7 ] | |
|