PDA

Zobacz pełną wersję : URL obrazka kategrii



Maniek_Mankowski
22-02-2018, 21:55
Czy ktoś z Was orientuje się gdzie w kodzie strony można znaleźć miejsce w którym można ustawić linkowanie dla obrazków kategorii artykułów? Chodzi mi o widok w którym wyświetla się lista podkategorii w danej kategorii. Linkuje sama nazwa podkategorii a obrazek już nie. Próbowałem to znaleźć w plikach szablonu ale edycja plików w ścieżce \templates\nazwa_szablon\html\com_content\category \ nic nie daje tak samo jak szukanie w ścieżce \components\com_content\views\category\tmpl lub \components\com_content\views\categories\tmpl
Jeśli już znalazłem linijke kodu wskazującą na obrazek to jej wycięcie nie zmieniało nic na stronie.
Gdzie tego szukać?
Dotyczy to jomla w wersji 3.8.5

- - - Updated - - -

Dodam że strona wypluwa taki kod


<div class="category-item"> <h3 class="page-header item-title"> <a href="/2018/index.php/wywiady/audio-video/59-audio-video-2015"> 2015
</a> </h3> <img src="/2018/images/2015.jpg" alt=""></div>
A chciałbym aby wypluwała coś na kształt


<a href="/2018/index.php/wywiady/audio-video/59-audio-video-2015">
<div class="category-item"> <h3 class="page-header item-title"> 2015
</h3> <img src="/2018/images/2015.jpg" alt="">
</a></div>

siristru
22-02-2018, 23:59
Po pierwsze <a> NIE może zawierać w sobie elementów typu <div> czy nagłówków <h3>.
To jest niepoprawne.

Dziwię się, że nie znalazłeś bo szukałeś w dobrym miejscu:

ROOT/components/com_content/views/categories/tmpl/default_items.php

Obrazek znajduje się w linii 44:


<img src="<?php echo $item->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($item->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>" />

Wystarczy go tylko "opakować" linkiem:


<a href="<?php echo JRoute::_(ContentHelperRoute::getCategoryRoute($it em->id, $item->language)); ?>">
<img src="<?php echo $item->getParams()->get('image'); ?>" alt="<?php echo htmlspecialchars($item->getParams()->get('image_alt'), ENT_COMPAT, 'UTF-8'); ?>" />
</a>

I załatwione :)

Oczywiście nie modyfikuj pliku źródłowego tylko skopiuj go do:

ROOT/templates/nazwa_szablon/html/com_content/categories

Jeśli zmieniałeś coś w tym pliku: ROOT/components/com_content/views/categories/tmpl/default_items.php a zmiany nie były widoczne. To zobacz czy nie masz już go w swoim szablonie.

zwiastun
23-02-2018, 00:19
A ja dodam, że
a) dwa linki na stronie prowadzące w to samo miejsce, na dodatek obok siebie, to klasyczny błąd SEO i dostępności
b) przepraszam, @siristru, ale... skąd twierdzenie, iż obejmowanie znacznikiem a elementów div tudzież h jest niepoprawne? Wręcz przeciwnie. W HTML5 poprawne jest objęcie nawet kilku powiązanych elementów, np. taki kod - wzięty ze specyfikacji HTML 5.2 - jest w pełni poprawny


<aside class="advertising">
<h2>Advertising</h2>
<a href="https://ad.example.com/?adid=1929&amp;pubid=1422">
<section>
<h3>Mellblomatic 9000!</h3>
<p>Turn all your widgets into mellbloms!</p>
<p>Only $9.99 plus shipping and handling.</p>
</section>
</a>
<a href="https://ad.example.com/?adid=375&amp;pubid=1422">
<section>
<h3>The Mellblom Browser</h3>
<p>Web browsing at the speed of light.</p>
<p>No other browser goes faster!</p>
</section>
</a>
</aside>

Porównaj: https://www.w3.org/TR/html52/textlevel-semantics.html#the-a-element

Zauważ, że w elemencie a zagnieżdżony jest element section, element h3 i elementy p. I to jest OK. Dzieki temu dobrze ma się i SEO , i dostępność - jeden link na stronie może prowadzić w jedno miejsce (np. tytuł kategorii i ilustracja kategorii, albo w przeglądzie artykułów - tytuł + ilustracja + tekst wprowadzenia + czytaj więcej. Ale źle jest, gdy mamy 3 linki w to samo miejsce - zlinkowany oddzielnie tytuł artykułu, ilustracja artykułu i jeszcze Czytaj więcej.
Czyli kod, jaki chciałby "wypluwać" nasz PT Pytaczek jest w pełni poprawny :)

siristru
23-02-2018, 02:14
Założyłem, że kolega nie używa HTML5 tylko Transitional.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Bo wiele szablonów jest wciąż tak robiona. W HTML5 jest jak piszesz.

W przypadku linkowania wolę robić maskę z odnośnika, tak, ze pokrywa cały element (nie obejmuje go ale pokrywa jako absolute i z-index itp). Wtedy link jest jeden, nie ważne jaki element klikniesz. To wygodne dla urządzeń mobilnych gdzie nie trzeba celować paluchem.

Maniek_Mankowski
23-02-2018, 09:42
Próbowałem wcześniej dokonywać dokładnie takiej zmiany w kodzie i zrobiłem ją jeszcze raz po Twojej odpowiedzi siristru ale nic to nie daje.
W plikach szablony nie ma w tej ścieżce tego pliku. Jest plik o takiej nazwie w katalogu /templates/ja_moviemax/html/com_content/featured ale on odpowiada raczej za sam artykuł.
Jakieś pomysły gdzie można jeszcze szukać jakichś zależności?

Bazyl
23-02-2018, 09:46
Szablony JoomlArt mają inną strukturę.
Zajrzyj do dokumentacji

Maniek_Mankowski
23-02-2018, 10:30
Wiem i zapoznałem się z dokumentacją. Podstawowa lista katalogów jest taka:
- acm
- contenttype
- css
- etc
- fonts
- html
- images
- js
- language
- less
- local
- tpls

W katalogu html nie ma takiego pliku i w żadnym z plików w tym katalogu w podkatalogu com_content czy layout => joomla nic takiego nie ma w plikach co by wskazywało na zdjęcie kategorii.

Bazyl
23-02-2018, 11:15
Dawno już nie pracowałem na T3, więc mogę nie pamiętać...
Strukturę dodatku JA T3 też sprawdziłeś?
http://www.t3-framework.org/documentation/installation#folder-structure

Maniek_Mankowski
23-02-2018, 12:01
Bazyl,
Udało się dotrzeć dzięki Twojej podpowiedzi. Dziękuję Ci bardzo!
Jest to w dwóch lokalizacjach:

/plugins/system/t3/base/html/com_content/categories
/plugins/system/t3/base-bs3/html/com_content/categories

Zmiana w jednej lub drugiej pomaga

Bazyl
23-02-2018, 12:04
Fajnie.
Oczywiście nadpiszesz wygląd w szablonie ;-)

Maniek_Mankowski
23-02-2018, 12:10
Tak. Nadpiszę to ale nie w szablonie bo tam nie ma takiego pliku ale nadpisze w folderze komponentów.

siristru
23-02-2018, 12:21
Nie, no właśnie w szablonie - jak nie ma to należy UTWORZYĆ.
Kopiujesz z katalogu komponentów do szablonu. I wcale nie do lokalizacji:

/plugins/system/t3/base/html/com_content/categories
/plugins/system/t3/base-bs3/html/com_content/categories

Tylko do tej którą ci podałem:

ROOT/templates/nazwa_szablon/html/com_content/categories

Jeśli zmienisz cokolwiek w katalogu komponentów to przy następnej aktualizacji stracisz te zmiany.

Obawiam się, ze nie zrozumiałeś co pisałem. Pliki o których wspomniałem nie muszą być w szablonie. Jesli autorzy szablonu nie nadpisywali widoków to nie muszą tam być.
Ważne by zlokalizować który z widoków komponentu com_content za to odpowiada i utworzyć component layout override.

http://wiki.joomla.pl/Nadpisywanie_szablonem_i_uk%C5%82ady_alternatywne

Maniek_Mankowski
23-02-2018, 12:46
Teraz już rozumiem. Dzięki! Tak zrobię.