PDA

Zobacz pełną wersję : DJ-Classifieds - nowa linia w polach dodatkowych



adiau2
12-11-2014, 17:38
Witam,
pewnie wiele osób korzystających z dj-classifieds spotkało się z problemem tworzenia nowej linii tekstu w dodatkowych polach.
W polach typu np. textarea po wpisaniu tekstu:
"test 1
test 2
test 3"
wyświetlany był jako:
"test 1 test 2 test 3"
Poniżej przedstawiam Wam mój poradnik jak dodać obsługę enter-a do pól dodatkowych, w szablonie jm-real-estate-ads.
U mnie działa wszystko bez zarzutów, ale pamiętaj aby przed przystąpieniem do tych operacji utworzyć kopię zapasową każdego edytowanego pliku.
Robisz to na własną odpowiedzialność.

1. Musimy zamienić znaki nowej linii '\n' pobrane z bazy danych na znaczniki html "<br />".
W tym celu odszukujemy plik components/com_djclassifieds/views/item/tmpl/default_customdetails.php
54 linie kodu: "echo $f->value;"
zamieniamy na "echo str_replace("\n", "<br>", $f->value);"

if($f->type=='textarea'){
if($f->value==''){echo '---'; }
else{
echo str_replace("\n", "<br>", $f->value);
//echo $f->value;
}


2. Edytujemy style.css, który znajdziemy tutaj:
components/com_djclassifieds/themes/<nazwa_szablonu>/css/style.css
ponieważ ja korzystam z jm-real-estate-ads, w moim przypadku to będzie:
components/com_djclassifieds/themes/jm-real-estate-ads/css/style.css

Odszukujemy następującą linijkę:

#dj-classifieds .dj-item .custom_det .row br {
display: none;
}

Możemy ją zakomentować, lub po prostu usunąć. W tym momencie nasze "entery" będą już widoczne.

3. (opcjonalne)
W celach kosmetycznych możemy ukryć entery w niektórych znacznikach html np.
Jeśli w pole dodatkowe wprowadzimy następujący kod:

<ul>
<li>Poniedziałek: 12:00 - 22:00</li>
<li>Wtorek: 12:00 - 22:00</li>
<li>Środa: 12:00 - 22:00</li>
<li>Czwartek: 12:00 - 22:00</li>
<li>Piątek: 12:00 - 22:00</li>
<li>Sobota: 12:00 - 22:00</li>
<li>Niedziela: 12:00 - 22:00</li>
</ul>
to przy wyświetlaniu tego pola, po każdym znaczniku </li> zostanie dodany jeszcze znacznik <br> (doda go fragment kodu który umieściliśmy w pliku default_customdetails.php).
w efekcie otrzymamy:

<ul>
<br><li>Poniedziałek: 12:00 - 22:00</li>
<br><li>Wtorek: 12:00 - 22:00</li>
<br><li>Środa: 12:00 - 22:00</li>
<br><li>Czwartek: 12:00 - 22:00</li>
<br><li>Piątek: 12:00 - 22:00</li>
<br><li>Sobota: 12:00 - 22:00</li>
<br><li>Niedziela: 12:00 - 22:00</li>
<br></ul>
a na ekranie otrzymamy podwójną przerwę pomiędzy każdą linijką. Aby tego uniknąć w pliku style.css musimy dodać taki kod:


#dj-classifieds .dj-item span.row_value ul br{
display: none;
}
pogrubiony wyraz ul to znacznik pomiędzy którymi znacznik <br /> ma być ukryty, możemy go zastępować innymi wedle uznania.

Mam nadzieję, że przedstawiony poradnik udało mi się napisać w miarę prosto i komuś pomogę :-)
W razie jakichkolwiek pytań proszę pisać na mail'a.

a_m
12-11-2014, 21:10
dzięki za porady, ale to nie jest prawidłowa konstrukcja kodu

adiau2
12-11-2014, 23:41
Nie zaprzeczę, dużo lepiej czuję się w językach typu C, C++, Java niż Webowych. Po prostu od dłuższego czasu szukałem rozwiązania mojego problemu i nie znalazłem go, więc postanowiłem sam coś wykombinować