PDA

Zobacz pełną wersję : Automatyczne uzupełnianie menu.



bebzon_hc
10-02-2011, 21:29
Witam!

Mam mały problem... Najpierw opiszę co chcę uzyskać.

Cel: skrypt ma automatycznie generować menu na moim blogu <li><a hfref=""></a></li> na podstawie rekordów (daty wpisania postu) w tabeli.

POLA W TABLICY: id_post; tytuł; zajawka; tresc; data (ma postać RRRR-MM-DD); autor


// przykładowa cała data w tabeli ma postać 2011-01-17
for ($r=2011; $r<=2012; $r++) { // $r - rok
for ($m=1; $m<=12; $m++) { //$m - miesiac
if ($m <= 9) // miesiac w tabeli ma postać 01, 02, 03, 04, itd. do 12 dlatego rozdzieliłem na dwa warunki. W pierwszym warunku do wywołania dodane jest 0
{
$dbRequest = mysql_query("SELECT dbposty.data FROM dbposty WHERE dbposty.data LIKE \"".$r."-0".$m."-%\" LIMIT 1,1") or die('Błąd zapytania');

if ($dbRequest)
{
while ($row = mysql_fetch_assoc($dbRequest))
{
foreach ($row as $data)
{
preg_match('/..$/', $data, $miesiac); // tutaj zamiast miesiąca zwraca dzień, ale to pomińmy
preg_match('/^..../', $data, $rok);
echo $rok."&nbsp;".$miesiac; // tutaj sprawdzam sobie czy przypozadkowalo mi wartości do zmianneych. wyświetla mi tylko: Array ArrayArray ArrayArray Array
//echo $data."</br>"; - to działa
}

}
}
}
else
{
TUTAJ BĘDZIE TO SAMO CO WYŻEJ TYLKO BEZ 0 - zera
}
}
}Jeśli w zmiennej $rok i $miesiac uzyskam pojedyńcze, wygenerowane wartości wtedy juz z łatwością już można zaaplikować do <li><a hfref=""></a></li>.

Link jaki chcę uzyskać to np.:


echo "<li><a href=\"index.php?id=01-2011\" target=\"_self\">Styczeń</a></li>";
gdzie: 01 to $m i 2011 to $r


P.S Uważam, że problem tkwi w tym, że foreach ($row as $data) zwraca mi tablice, a funkcja preg_match('/..$/', $data, $miesiac); służy do operacji na ciągach. Jest jakiś inny sposób żeby to obejść ? Jakiś odpowiednich preg_match dla tablic ?

Troche zagmatwane ale może ktoś to uniesie hehe :]

Jola
11-02-2011, 03:16
Witam,
wykorzystaj wbudowane w Joomla funkcje do obsługi daty.
W pliku languages/PL-pl/PL-pl.ini (w innych analogicznych plikach językowych możesz zrobić to samo) ok. linii 17 dopisz:

DATE_FORMAT_LC5=%Bwtedy kod:

$nazwa_miesiaca = JHTML::_('date', $data, JText::_('DATE_FORMAT_LC5') ); wyciągnie Ci z daty w formacie RRRR-MM-DD nazwę miesiąca :)

bebzon_hc
11-02-2011, 10:53
Zapomnialem dodać, że nie zamierzam użyć tego do joomli... chcę zrobić swoj własny mały CMS :) konkretnie blog oparty na php i MySQL