在CMS Joomla中,我需要从表#__adsmanager_ads
,列ad_healine
和表#__modules
,列title
中选择数据。
然后我需要检查if ad_headline == title
加载模块(等于ad_healine)。
我将此代码用于单个表选择:
<?php
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('ad_headline')))
->from($db->quoteName('#__adsmanager_ads'));
$db->setQuery($query);
$results = $db->loadObjectList();
$objectoarr = json_decode(json_encode($results),true); // Convert stdClass object to array
print_r($objectoarr);
?>
=============================================== ========================== 接下来我写下面的代码,问题几乎是求解器
<?php
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select (array('a.ad_headline', 'b.title')) //Select columns from database
->from ($db->quoteName('#__adsmanager_ads','a'))
->join('LEFT', $db->quoteName('#__modules', 'b') . ' ON (' . $db->quoteName('a.ad_headline') . '=' . $db->quoteName('b.title').')');
$db->setQuery($query);
$result = $db->loadObjectList();
$objectoarr = json_decode(json_encode($result),true); // Convert stdClass object to array
foreach ($objectoarr as $adhealine){
if ($adhealine[ad_headline] === $adhealine[title])
{
$document = &JFactory::getDocument();
$renderer = $document->loadRenderer('modules');
$position = 'inside-ad';
$options = array('style' => 'raw');
echo $renderer->render($position, $options, null);
}
}
?>
但问题是所有模块都设置为inside-ad
加载位置。但是我只需加载模块,其名称相当于广告名称。
我该如何解决这个问题?提前谢谢