PDA

Zobacz pełną wersję : Różny html dla elementów szablonu



SlowMotion
14-02-2011, 21:54
Witam
To kod który wyświetli mi tą część html-a gdy będzie zostanie włączony artykuł numer 41:

<?php if((JRequest::GetVar("Itemid")!=41)): ?>
teraz pytanko czy jest możliwość aby ten warunek przerobić na taki by wyświetlał w tym kodzie wszystkie całą sekcje. Czyli obojętnie jaki artykuł, jeżeli będzie np: w sekcji 7 to wyświetlo go w tym kodzie
z góry dzięki za pomoc.

ppilus
14-02-2011, 22:01
Nie wiem po co robisz takie zabiegi i co chcesz osiągnąć jako efekt końcowy ale czy nie wystarczy przypisanie innego szablonu do danych pozycji menu ?

SlowMotion
14-02-2011, 22:28
No nawet nie wiedziałem że tak można zrobić . . .
ale po sprawdzeniu widzę że jednak nie o to mi chodziło
Mam sobie w tym miejscu 3 poziomowe menu:
ItemPoziom1
ItemPoziom2
ItemPoziom3
Item2Poziom3
Item3Poziom3

Pod ItemPoziom1 mam artykuł 1
pod ItemPoziom2 mam artykuł 1
pod ItemPoziom3 mam artykuł 1
pod Item2Poziom3 mam artykuł 2
pod Item3Poziom3 mam artykuł 3 itp itd

poziom 1 u mnie to oferta pod nią na poziomie 2 jest 9 różnych usług oferowanych przez firmę. I teraz pod każdą z nich mogą sobie dowolnie dodawać różne podstrony w formie dodatkowych artykułów, które trzeba podpiąć pod menu.
Wszystkie te artykuły należą do tej samej sekcji i do 9 różnych kategorii. I teraz potrzebuje jakiś sposób, aby każdy nowo dodany tu artykuł wyświetlał się w innym szablonie niż reszta elementów z poziomu1?? Nie wiem coś ala właśnie:
if artykuł z sekcji?
albo
if artykuł z kategorii??
Mam nadzieje że teraz to co chce zrobić jest jaśniejsze i mam nadzieje że da się to jakoś osiągnąć

edit:
znalazłem takie rozwiązanie niby, próbowałem naprawić, ale:

<?php
$db =& JFactory::getDBO();
if(JRequest::getVar(‘view’)==’article’){
$query = "SELECT sectionid FROM jos_content WHERE id=’".JRequest::getVar(‘id’)."‘";
$db->setQuery($query);
$sectionid = $db->loadResult();
}
if(JRequest::getVar(‘view’)==’category’){
$query = "SELECT sectionid FROM jos_content WHERE catid=’".JRequest::getVar(‘id’)."‘";
$db->setQuery($query);
$sectionid = $db->loadResult();
}
echo "$sectionid"
?>
zmienna sectionid jest cały czas pusta

Jola
15-02-2011, 01:05
Witam,
a może

echo $sectionid;

SlowMotion
15-02-2011, 17:52
To akurat nie robi różnicy kiedy przypisze na stałe wartość zmiennej

$sectionid=1;
echo $sectionid;
echo "$sectionid";
To obojętnie w jaki sposób zwróci mi tą jedynkę, jednak chodzi o to że bez przypisania nie mam nic w tej zmiennej.

Jola
15-02-2011, 19:04
Winowajcą są Twoje "chińskie" apostrofy. Prawidłowo:

<?php
$db =& JFactory::getDBO();
if(JRequest::getVar('view')=='article'){
$query = "SELECT sectionid FROM jos_content WHERE id=".JRequest::getVar('id');
$db->setQuery($query);
$sectionid = $db->loadResult();
}
if(JRequest::getVar('view')=='category'){
$query = "SELECT sectionid FROM jos_content WHERE catid=".JRequest::getVar('id');
$db->setQuery($query);
$sectionid = $db->loadResult();
}

echo $sectionid;
?>:)

SlowMotion
16-02-2011, 10:33
Pomimo tego, że poradziłem sobie już w całkiem inny sposób (mieszając troszkę if itemid). To faktycznie działa to co napisałeś (choć sam też walczyłem z tymi apostrofami, widocznie jeszcze troszkę podszkolić z php się muszę). Przy bardziej złożonych aplikacjach się mi to przyda na bank.
No i 3670 dla ciebie oczywiście.