PDA

Zobacz pełną wersję : Wyświetlanie najnowszych newsów



Enpeiks
04-05-2011, 05:38
Witam serdecznie!

Otóż poszukuję takiej modyfikacji, dzięki której będę mógł wyróżnić sobie dany artykuł znajdujący się na stronie głównej.
Nie zależnie czy to będzie wyróżnienie w sposób jakiejś ikony czy w inny sposób.

Chodzi mi po prostu o sam fakt wyróżnienia. Oczywiście najlepiej, jeżeli mógł bym sobie wybierać, które artykuły mają być wyróżnione oraz jeżeli istniała by możliwość aby wyróżniony news np. miał kolor tła np. jasno-żółty.

Pozdrawiam!

moje
04-05-2011, 11:53
Chodzi Ci o to, żeby z pośród wszystkich artykułów na stronie głównej, móc dodatkowo wyróżnić kilka z nich, które miałby mieć osobny kolor czy może osobny moduł nad artykułami/obok artykułów?

Enpeiks
04-05-2011, 12:21
Dokładnie. Oczywiście, jak już wcześniej napisałem najbardziej odpowiadała by mi opcja wyróżnienia (wybranych) artykułów w postaci nadania specyficznego koloru tła.

moje
04-05-2011, 12:41
A więc w Joomla 1.5 masz typ łącza strona startowa, gdzie wyświetlane są wszystkie artykuły, które oprócz opublikowania mają zaznaczone wyświetlanie na stronie frontowej. zmieniasz ja na artykuły z sekcji, tutaj wyświetlą się artykuły z wszystkich kategorii należących do tej sekcji. Więc nie zapomnij utworzyć jednej sekcji, do której będą przypisane wszystkie kategorie.
I teraz najlepsze.
Wykorzystujesz nadpisywanie szablonem, gdzie dodajesz kod, który sprawdza czy dany artykuł jest przypisany do strony startowej i jeśli jest to dodaje dodatkową klasę np. z nazwą koloru. Jako wyróżnienie musisz tylko dodać odpowiedni kod css do szablonu, a przycisk publikowania na stronie startowej będzie przyciskiem wyróżniającym artykuł.

Enpeiks
04-05-2011, 12:45
Uf.. z tego co czytam to już jest wyższa szkoła jazdy. Oczywiście ogarniam CSSa jednak nie Joomlę. Tzn. przy Joomli pracuję ok. 3 miesiące (z przerwami) z czego większość co robię to tworzenie szablonu pod względem graficznym + lekko programistycznym.

To raczej zabawa nie dla mnie. Czy był byś tak miły i ogarnął mi takie coś?

moje
04-05-2011, 12:47
Na forum istnieje dział zleceń ; )

Bo prawda jest taka, ze albo się edukujemy i robimy coś sami albo zlecamy zrobienie.
A forum jest od radzenia i pomagania, co już w tej danej kwestii otrzymałeś.

Enpeiks
04-05-2011, 12:52
Oczywiście rozumiem. Zero stresu :)

Zatem napiszę w ten sposób, mógł byś mnie/więcej opisać ten proces tak jak amatorowi? W sposób jak najbardziej możliwie łopatologiczny- jak blondynce xD

moje
04-05-2011, 12:54
Wszystko jest na wiki.joomla.pl włącznie z nadpisywaniem szablonem.
A jak nie masz pewności jak powinien wyglądać kod, to nie zapomnij że masz go pod samym nosem, bo wystarczy podejrzeć kod tego co Joomla już ma czyli strony startowej ; )

Enpeiks
05-05-2011, 20:32
Odświeżam. Czy jest może inny sposób na uzyskanie tego efektu?

Jola
05-05-2011, 23:29
Witam,
najprościej można to osiągnąć modyfikując plik plik components/com_content/views/frontpage/tmpl/default.php w linii 14 (art. nad kolumnami) i w 42 (art. w kolumnach)
Po prostu dodać warunek: jeśli id artykułu ($this->item->id) jest takie to a takie to dopisz klasę css.
Tylko wywołanie:

$this->item =& $this->getItem($i, $this->params);należy przenieść powyżej linii 14 :)

Enpeiks
06-05-2011, 13:13
No okej, więc jeżeli będę chciał wyróżnić np. artykuł o ID "94" to muszę w tym pliku to dodawać?

Jola
07-05-2011, 01:53
Przykład - linia 14 jest:

<div>
<?php
$this->item =& $this->getItem($i, $this->params);
echo $this->loadTemplate('item');
?>
</div>zmień na;

<?php
$styl = '';
$this->item =& $this->getItem($i, $this->params);
if($this->item->id == 94) $styl='class="wyrozniony"';
?>
<div <?php echo $styl; ?>>
<?php
echo $this->loadTemplate('item');
?>
</div>
Oczywiście musisz zdefiniować klasę "wyrozniony" i tak zmodyfikowany plik zapisać stosując metodę nadpisywania szablonem.

Enpeiks
07-05-2011, 16:40
Okej, działa perfekcyjnie teraz tylko takie pytanko. W jaki sposób mogę wyróżnić np. 4 newsy na raz? Bo przecinek w takiej formie:

if($this->item->id == 94,95) $styl='class="wyrozniony"';
Nie jest tolerowany...
Niestety nie znam się na PHP :(

Jola
07-05-2011, 17:22
Poszczególne id wpisujesz do tablicy $lista.
<?php
$styl = '';
$this->item =& $this->getItem($i, $this->params);
$lista = array(94, 95);
if(in_array($this->item->id, $lista)) $styl='class="wyrozniony"';
?>
<div <?php echo $styl; ?>>
<?php
echo $this->loadTemplate('item');
?>
</div>:)

Enpeiks
07-05-2011, 17:40
Niestety, ale nie działa, tak wygląda mój kod:

<?php
$styl = '';
$this->item =& $this->getItem($i, $this->params);
$lista = array(200, 201);
if(in_array($this->item->id, $lista)) $styl='class="wyrozniony"';
?>
<div <?php echo $styl; ?>>
<?php
echo $this->loadTemplate('item');
?>
</div>

Owszem, kod działa dla ID 201 ale dla 200 już nie :(

Jola
07-05-2011, 17:55
A Twój art. o id=200 jest wyświetlany nad kolumnami czy w kolumnach?
Ten gotowy kod dotyczy wyróżnienia nad kolumnami.
Wyróżnienie w kolumnach wymaga zmiany w okolicach linii 42, o czym pisałam wcześniej.

Enpeiks
07-05-2011, 18:00
Zatem będzie to ta druga opcja skoro nie działa, bo dla najnowszego artykuły działa wyśmienicie dla kolejnego (będącego pod pierwszym) już nie. Zatem w jaki sposób można zyskać tą drugą opcję?

Jola
07-05-2011, 18:55
Zmieniłam modyfikację na uniwersalną. Przywróć plik default.php do pierwotnego stanu a zmiana będzie dotyczyć pliku components/com_content/views/frontpage/tmpl/default_item.php
tuż pod:

<?php if ($this->item->state == 0) : ?>
<div class="system-unpublished">
<?php endif; ?>dodaj np.

<?php
$lista = array( 200, 201 );
if(in_array($this->item->id, $lista) ){ ?>
<div style="border:3px solid red;">
<?php } ?>I prawie na samym dole pliku tuż nad:

<?php if ($this->item->state == 0) : ?>
</div>
<?php endif; ?>dodaj:

<?php
if(in_array($this->item->id, $lista) ){?>
</div>
<?php } ?>

Enpeiks
08-05-2011, 14:20
Działa PERFEKCYJNIE!
Oto właśnie mi chodziło, dziękuję serdecznie za poświęcony mi czas.

---------- Post dodany 08-05-2011 o 14:20 ---------- Poprzedni post był 07-05-2011 o 21:27 ----------

Przepraszam że ponownie otwieram temat, jednak pomyślałem że nie ma sensu zakładać kolejnego. Mianowicie, opcja którą zaproponował mi użytkownik @Jola jest bardzo dobrym rozwiązaniem jednak troszeczkę niewygodnym. Dlaczego? Mianowicie dlatego, że osoba, która chce wyróżnić News musi mieć pełen dostęp do FTP, a nie o to tu chodzi.

Zatem pomyślałem, czy nie mogło by to wyglądać w taki sposób?
(Podczas edycji artykułu na stronie głównej strony)

3975

Jak widać, w programie graficznym dodałem "Wyróżniony [X]NIE []TAK", dało by się takie coś zrobić aby gdy osoba która edytuje/tworzy artykuł miała możliwość określić czy artykuł ma być wyróżniony czy nie? Tak aby ten "ID" artykułu był dodawany automatycznie przez tą funkcję a nie edycję pliku via FTP...

Pozdrawiam!

Enpeiks
10-05-2011, 21:58
Odświeżam.

Jola
10-05-2011, 22:35
Wg mnie aby osiągnąć ten cel należy użyć dodatku (pluginu). Jeśli gotowe rozwiązanie nie istnieje (ja nic o takowym nie wiem) pozostaje, tak jak napisał @moje skorzystać z działu: Zlecę, kupię, odstąpię