SOBI2 – własne formatowanie pól w widoku szczegółowym

///SOBI2 – własne formatowanie pól w widoku szczegółowym

SOBI2 – własne formatowanie pól w widoku szczegółowym

Zająłem się ostatnio projektem katalogu siłowni i klubów fitness ( www.klubfitness.eu) . Jako skryptu postanowiłem użyć SOBI2, choć mało miałem z nim wcześniej do czynienia. Wiele rzeczy się udało, oprócz jednej – otóż za formatowanie całego pola adresu, nr-u telefonu i opisu odpowiada jedna funkcja :

sobi2.details.tmpl.php

<?php echo HTML_SOBI::customFieldsData( $fieldsFormatted );?>

No i klops. Jednak znalazłem na zagranicznej stronie funkcję, która pozwala na wywoływanie własnych pól w pliku templatki.

Otóż robimy tak:

1. Wchodzimy w pliczek COM_SOBI2/sobi2.html.php i dopisujemy nową funkcję:

function getItemDesc($config,$mySobi)
{
sobi2Config::import(„sobi2.entry”);
return sobiEntry::getItemDesc( $config,$mySobi );
}

2. Wchodzimy do pliczku COM_SOBI2/sobi2.entry.php i dopisujemy nową funkcję wewnątrz klasy SOBI (czyli przed ostatnią klamerką dodajemy ten kod):

function getItemDesc($config, $mySobi)
{
$fieldsObjects     =& $mySobi->myFields;
//$my =& $config->getUser();
//$cid = intval( sobi2Config::request( $_REQUEST, ‚catid’, 0 ) );
foreach( $fieldsObjects as $field )
{
$field->name = $config->getSobiStr( $field->fieldname );
$field->label = $config->getSobiStr( $field->label );
if($field->name==’field_description’)
{
echo $field->data;
}
}
}

3. Gotowe! Teraz w pliku templatki możemy wywołać dowolne pole kodem:

<?php echo $fieldsObjects[‚field_name’]->label; ?>

<?php echo $fieldsObjects[‚field_name‚]->data; ?>

Za field name wstawiamy np. field_city, field_phone, czy field_wojewodztwo czyli dowolne pola, w tym także dodane przez nas.

Mała uwaga: kod z końcówką –>label wyświetli tylko etykietę wpisu np. miasto Warszawa , natomiast kod z końcówką –> data wyświetli wartość wpisu np. miasto Warszawa

Skomentuj wpis

komentarzy

By | 2010-10-28T12:16:27+00:00 Październik 28th, 2010|Webdesign - html / php / js|4 komentarze

About the Author:

4 komentarze

  1. Jarek 27-01-2011 at 00:30

    Dzięki wielkie – tego szukałem 🙂

  2. Jarek 27-01-2011 at 02:05

    Pytanie – jak zrobić żeby etykieta pola pokazywało się tylko wtedy kiedy pole posiada dane?

  3. admin 27-01-2011 at 15:07

    musisz dodać prostą instrukcję IF:
    tak wyświetli zawsze: < ?php echo $fieldsObjects['field_name']->label; ?>

    a tak jeśli nie jest puste:
    < ?php if ($fieldsObjects[‚field_name’]->data != null)
    echo $fieldsObjects[‚field_name’]->label; ?>

    napisz jak poszło.

  4. Maciej 25-02-2011 at 00:26

    A wiesz może w jaki sposób zmienić kolor tekstu na głównej stronie? Chodzi mi konkretnie o nazwę firmy i tekst „pokaż więcej”. Są to linki i nie mogę nigdzie zmienić koloru tych linków. Inny kolor jest po kliknięciu a inny kolor przed kliknięciem.
    Czy to trzeba zmienić w plikach css Sobi czy w pliku CSS joomli ?

Leave A Comment