Zobacz pełną wersję : koniec publikacji napierwszej stronie inaczej
artmajster
15-07-2009, 20:02
Witam serdecznie
czy ktoś może mi poradzić jak spowodować aby data początku publikacji artykuły była datą końca publikacji artykułu na pierwszej stronie
wiem że trzeba w tabeli jos_content_frontpage (http://sql.elk.home.pl/sql/tbl_properties_structure.php?db=elk&token=c1f6e11744af61b8b40c46ee56932d5d&table=jos_content_frontpage)
znaleźć kolumnę z odpowiednim content_id (http://sql.elk.home.pl/sql/sql.php?db=elk&table=jos_content_frontpage&token=c1f6e11744af61b8b40c46ee56932d5d&pos=0&session_max_rows=30&disp_direction=horizontal&repeat_cells=100&dontlimitchars=0&sql_query=SELECT+%2AFROM+%60jos_content_frontpage% 60++ORDER+BY+%60jos_content_frontpage%60.%60conten t_id%60+ASC) (id danego artykułu)
i usunąć ją
niestety nie jestem aż tak dobry z sql
pomożecie stworzyć taki kawałek kodu i określić miejsce (plik) joomli gdzie podmienić kod?
proszę o pomoc
Witam,
staram się, ale nie do końca rozumiem o co Ci chodzi.
Może wytłumacz to na przykładzie.
Pozdrawiam
artmajster
19-07-2009, 12:29
Dodaję artykuł:
i mam tam trzy daty
Data utworzenia
Rozpocznij publikację
Zakończ publikacjęchciałbym uczynić tak aby data "Rozpocznij publikację"
był datą końca publikacji artykułu na pierwszej stronie
po zmianie nazwy z pliku języka
"Rozpocznij publikację" na "Usuń za strony startowej"
będzie wszystko jasne
1. Artykuły wyświetlają się na startowej. Utworzone tego samego dnia.
2. Artykuł AAA - zakończ publikację 10.X
3. Artykuł BBB - rozpoczęcie publikacji 11.X zakończ publikację 15.X
4. Artykuł CCC - rozpoczęcie 16.X zakończ publikację 20.X
???
artmajster
20-07-2009, 15:14
nie mam pojęcia jak mam to wytłumaczyć inaczej
(czyżbym tłumaczył niezrozumiale ?)
więc może inaczej
chciałbym osiągnąć efekt aby data początku i końca publikacji
była datą początku i końca pokazywania artykułu na pierwszej stronie
artykuły dodawane na pierwszą stronę
powinny trafić na początek tabeli jos_content_frontpage (http://sql.elk.home.pl/sql/tbl_properties_structure.php?db=elk&token=c1f6e11744af61b8b40c46ee56932d5d&table=jos_content_frontpage)
tak żeby było prosto i przyjemnie :)
w jaki sposób to uczynić?
jeżeli artykuł osiągnie datę "Początek publikacji" skrtypt musi wziąć ID tegoż artykułu z tabeli jos_content (http://sql.elk.home.pl/sql/tbl_properties_structure.php?db=elk&token=f3ec7bb2caa098103dd75962249b5f31&table=jos_content)
następnie przenumerować kolumnę ordering (http://sql.elk.home.pl/sql/sql.php?db=elk&table=jos_content_frontpage&token=f3ec7bb2caa098103dd75962249b5f31&pos=0&session_max_rows=30&disp_direction=horizontal&repeat_cells=100&dontlimitchars=0&sql_query=SELECT+%2AFROM+%60jos_content_frontpage% 60++ORDER+BY+%60jos_content_frontpage%60.%60orderi ng%60+ASC) w tabeli jos_content_frontpage (http://sql.elk.home.pl/sql/tbl_properties_structure.php?db=elk&token=c1f6e11744af61b8b40c46ee56932d5d&table=jos_content_frontpage)
+1 wo wszystkich wartości
i dodać nowy wiersz z ID artykułu i liczbą "1" w kolumnie ordering (http://sql.elk.home.pl/sql/sql.php?db=elk&table=jos_content_frontpage&token=f3ec7bb2caa098103dd75962249b5f31&pos=0&session_max_rows=30&disp_direction=horizontal&repeat_cells=100&dontlimitchars=0&sql_query=SELECT+%2AFROM+%60jos_content_frontpage% 60++ORDER+BY+%60jos_content_frontpage%60.%60orderi ng%60+ASC)
niestety nie wiem jak napisać do tego kod SQL bo tego bardzo czaję :(
będę wdzięczny za pomoc
zwiastun
20-07-2009, 15:45
Chyba za dużo i niepotrzebnie kombinujesz:
W przeglądzie Strona startowa artykuły standardowo układane są chronologicznie - według daty publikacji od najnowszych. Od Ciebie zależy, czy pokazesz na stronie startowej jeden, dwa czy 10 materiałów, od Ciebie również zależy, ile będzie odnośników i czy włączysz paginację.
Pomysł ze zmianą roli, jaką spełnia data rozpoczęcia publikacji jest nieracjonalny.
artmajster
20-07-2009, 16:20
Pomysł ze zmianą roli, jaką spełnia data rozpoczęcia publikacji jest nieracjonalny.
być może nieracjonalnym ale dla mnie potrzebny
tak sobie obmyśliłem stronę że potrzebuję takowego zachowania artykułów
chodzi o to że nie będę musiał pamiętać aby dzisiaj akurat zdjąć coś z pierwszej strony
będzie się to działo automatycznie
przy sporej ilości wiadomości i wielu innych zajęciach to rozwiązanie znacznie ułatwi mi życie
to podpowiedzcie chociaż gdzie mam szukać pliku w którym znajduje się kod SQL odpowiedzialny za obsługę tych dwóch dat
EDIT: po przemyśleniu tematu
trzeba dodać wiersz do tabeli jos_content_frontpage (http://sql.elk.home.pl/sql/tbl_properties_structure.php?db=elk&token=c1f6e11744af61b8b40c46ee56932d5d&table=jos_content_frontpage) na końcu z kolejnym numerem
i nie trzeba jej przenumerowywać
wtedy artykuł trafi na koniec (o to mi chodzi)
Witam,
teoretycznie wystarczy zmienić warunek wyświetlania art. na stronie startowej. Jeśli mają to być tylko artykuły startujące z publikacją dziasiaj (pomijam godzinę) to wystarczy w pliku:
components/com_content/models/frontpage.php linia:202
$where .= ' AND ( a.publish_up = '.$this->_db->Quote($nullDate).' OR a.publish_up <= '.$this->_db->Quote($now).' )' .
' AND ( a.publish_down = '.$this->_db->Quote($nullDate).' OR a.publish_down >= '.$this->_db->Quote($now).' )';zmienić na:
$where .= ' AND ( date(a.publish_up) = curdate() )' ;Pozdrawiam
artmajster
21-07-2009, 20:57
no tak to nie da rady
chciałbym mieć możliwość ustawienia daty kiedy ma wejść na pierwszą stronę i kiedy zejść
a w którym pliku znajdują się warunki publikowania i wyłączenia publikacji artykułu w zależności od spełnienia warunku daty publikacji i odpulikowania danego artykułu?
można by tam wstawić kod który włącza i wyłącza publikację artykułu na stronę frontową (przyciski w menu administracyjnym) - tam można by podglądnąć kod SQL - w jakim pliku tego szukać?
trochę motam co?
ale to strasznie ułatwiło by życie - nie tylko mi :)
Dodanie takiej funkcjonalności - zarządzanie czasem publikacji na stronie frontowej - to nie tylko kwestia przycisków, ale zapisania tej informacji w bazie i dodanie wszystkich operacji (dodawanie, zmiana i usuwanie) związanych z działaniami na tej wartości. Proponuję znalezienie innego pomysłu. To rozwiązanie, które podałam powoduje wyświetlenie art. na froncie tylko w dniu jego publikacji - można przecież zmienić na określoną ilość dni od dnia publikacji, nie wspomnę o standardowym wpisie o końcu publikacji.
Pozdrawiam
artmajster
25-07-2009, 11:53
witam serdecznie
no niestety koniec publikacji wiąże się z tym, iż artykuł przestaje być w ogóle widoczny na stronie
jeżeli chodzi o zmianę informacji w bazie danych, to zdaję sobie z tego sprawę
dlatego właśnie szukam pliku w którym joomla przetwarza datę początku i końca publikacji artykułu i chciałbym podmienić komendy dotyczące publikacji na polecenia zapisu i usunięcia artykułu z frontpage podpatrzone spod przycisków dodania i usunięcia artykułu z pierwszej strony w panelu administracyjnym
hmmm... czy to naprawdę aż takie trudne?
Witam,
- przymierzasz się do modyfikacji komponetu - zakładam, że samodzielnej, a nie wiesz gdzie masz szukać potrzebnego kodu
- nie wróży to dobrze tej modyfikacji
- to, o czym piszesz w pierwszym poście możesz osiągnąć modyfikując warunki wyświetlania artykułów na stronie frontowej - nowy pomysł to: wyświetlanie ich jeśli są opublikowane i data dzisiejsza jest mniejsza (równa) od daty początku publikacji. Czyli artykuły na froncie będą pokazywane od momentu ich opublikowania do dnia początku publikacji (od tej pory będą widoczne w innych miejscach witryny).
- za komunikację skrypt - baza danych odpowiedzialny jest plik controller.php komponentu.
Pozdrawiam
artmajster
26-07-2009, 12:18
dzięki za sugestię :)
niemniej spróbuję przerobić trochę skrypt
jak się nie uda to trudno :)
może nie popsuję mocno bazy :p
o postępach pracy będę donosił
pozdrawiam
EDIT:
tak więc w pliku administrator/components/com_content/controller.php
jest zmian statusu artykułu (czy ma być na pierwszej czy nie)
/**
* Changes the frontpage state of one or more articles
*
*/
function toggleFrontPage()
{
global $mainframe;
// Check for request forgeries
JRequest::checkToken() or jexit( 'Invalid Token' );
// Initialize variables
$db =& JFactory::getDBO();
$cid = JRequest::getVar( 'cid', array(), 'post', 'array' );
$option = JRequest::getCmd( 'option' );
$msg = null;
JArrayHelper::toInteger($cid);
if (count($cid) < 1) {
$msg = JText::_('Select an item to toggle');
$mainframe->redirect('index.php?option='.$option, $msg, 'error');
}
/*
* We need to update frontpage status for the articles.
*
* First we include the frontpage table and instantiate an instance of
* it.
*/
require_once (JPATH_ADMINISTRATOR.DS.'components'.DS.'com_front page'.DS.'tables'.DS.'frontpage.php');
$fp = new TableFrontPage($db);
foreach ($cid as $id)
{
// toggles go to first place
if ($fp->load($id)) {
if (!$fp->delete($id)) {
$msg .= $fp->stderr();
}
$fp->ordering = 0;
} else {
// new entry
$query = 'INSERT INTO #__content_frontpage' .
' VALUES ( '. (int) $id .', 0 )';
$db->setQuery($query);
if (!$db->query()) {
JError::raiseError( 500, $db->stderr() );
return false;
}
$fp->ordering = 0;
}
$fp->reorder();
}
$cache = & JFactory::getCache('com_content');
$cache->clean();
$mainframe->redirect('index.php?option='.$option, $msg);
}
nie bardzo wiem o co chodzi z tym checkToken()
wygląda na to że kod zmienia status z jednego na drugi
dobrze rozumiem?
niestety nadal nie mogę znaleźć miejsca dzi joomla sprawdza warunek spełnienia dat publikacji :(
moze ktoś pomoże?
artmajster
27-07-2009, 21:02
no i posłuchałem mądrej rady :)
zmieniłem tylko znak < na > i już
nie da się tylko ręcznie ustawić tak żeby pojawiał się zdalnie ale z tym da się żyć
ważne że nie będę musiał pamiętać żeby czegoś zdjąć :)
$where .= ' AND ( a.publish_up = '.$this->_db->Quote($nullDate).' OR a.publish_up <= '.$this->_db->Quote($now).' )' .
' AND ( a.publish_down = '.$this->_db->Quote($nullDate).' OR a.publish_down >= '.$this->_db->Quote($now).' )';na
OR a.publish_up >= '.$this->_db->Quote($now).' )' .
proste z strasznie cieszy :)
dziękuję ślicznie za pomoc
artmajster
07-08-2009, 20:52
niestety nie da się w ten sposób tego uczynić
dlaczego?
bo po kliknięciu na więcej .... 404 nie ma takiej strony
ten artykuł nie jest jeszcze opublikowany :(
normalnie pod górkę cały czas :/
To przecież oczywiste, że tak będzie - jedyne wyjście: umieszczać całe artykuły.
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!