2013-08-24 5 views
2

Я разрабатываю новый модуль, который отображает выбранные элементы на слайдере.Как получить начальный путь изображения статьи из db в Joomla

Я успешно получил данные в своем модуле, но для интро-изображения есть проблема.

Мой запрос здесь:

// Get a db connection. 
$db = JFactory::getDbo(); 

// Create a new query object. 
$query = $db->getQuery(true); 

$query 
     ->select(array('f.content_id', 'c.id', 'c.title', 'c.alias', 'c.images')) 
     ->from('#__content AS c') 
     ->join('INNER', '#__content_frontpage AS f ON (c.id = f.content_id)') 
     ->where("c.language = '" . JFactory::getLanguage()->getTag() . "' AND c.state=1") 
     ->order('f.ordering ASC'); 

// Reset the query using our newly populated query object. 
$db->setQuery($query); 

// Load the results as a list of stdClass objects. 
$results = $db->loadObjectList(); 

foreach ($results as $r) 
{ 
    $imagePath = $r->images; 
    //. 
    //. 
    //. 
} 

Как вы знаете пути изображения хранятся в images колонке в таблице содержания, как в следующем виде:

{ 
"image_intro":"images\/products\/201191420496.jpg", 
"float_intro":"", 
"image_intro_alt":"", 
"image_intro_caption":"", 
"image_fulltext":"", 
"float_fulltext":"", 
"image_fulltext_alt":"", 
"image_fulltext_caption":"" 
} 

Я хочу знать, как извлечь интро путь изображения из этих данных. Есть ли общая функция/метод для этого или я должен идти с функцией PHP explode()?

ответ

3

Наконец-то кто-то уже сделал хорошее решение для этого.

Существует хорошая функция PHP, json_decode().

Он преобразует эту строку (которую я узнал позже, что это JSON) в массив значений ключа. Таким образом, все данные достижимы:

$pictures = json_decode('{"image_intro":"images\/products\/201191420496.jpg", 
          "float_intro":"", 
          "image_intro_alt":"", 
          "image_intro_caption":"", 
          "image_fulltext":"", 
          "float_fulltext":"", 
          "image_fulltext_alt":"", 
          "image_fulltext_caption":"" 
         }', 
         true); 

echo $pictures['image_intro']; //gives images/products/201191420496.jpg