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

Facebook - komentarze