我会尽可能清楚地解释这种情况。 我有一个系统,提供事件的链接,用JEvents为熟悉的人创建(在Joomla中)
在管理员中创建事件时,其类别视图会显示一个小表,其中包含事件的日期,名称和事件页面的链接。一切正常。现在链接在一个单独的php文件上调用,而不是为所有渲染html视图的文件。 该链接用以下方式调用:
<a class="ev_link_row" href="<?php echo $rowlink; ?>" <?php echo $args;?> style="font-weight:bold;color:<?php echo $fgcolor;?>;" title="<?php echo JEventsHTML::special($row->title()) ;?>"><?php echo $tmpTitle ;?></a>
在html渲染脚本上,我有这个:
$this->viewEventRowNew ( $row,'view_detail',JEV_COM_COMPONENT, $Itemid);
这包含在上面的for循环中,用各种信息填充$ row变量。
for( $r = 0; $r < $num_events; $r++ ){
$row = $data['rows'][$r];
等
现在回答这个问题。我有一个存储图像文件名称的表。创建一个通过行的forloop并将路径名返回到图像,我没有遇到任何问题,如下所示:
$db = & JFactory::getDBO();
$query2 = "SELECT `c`.`filename` AS `iname` , `c`.`filetitle` AS `ititle` , `c`.`ev_id` AS `eventid` FROM `#__jev_files` AS `c` ";
$db->setQuery($query2);
$imagelist = $db->loadObjectList();
?>
<?php foreach($imagelist as $row) : ?>
<img src="/images/stories/jevents/<?php echo $row->iname; ?>" />
<?php endforeach; ?>
现在显而易见的问题是,如何指定此图像包含在链接中。我尝试在linkitself周围包装for循环,但它显然打破了地狱,因为它在循环中重用(在循环中创建循环并破坏我的布局) 如果我在html呈现页面中使用查询,那么我的问题基本上是我不知道如何在不破坏其余功能的情况下将上述内容附加到$ row变量。
非常感谢,任何可以指导我的人。
答案 0 :(得分:1)
如果我能更好地理解这个问题,我想我可以给出你正在寻找的答案。也许你所说的一些是特定于Joomla的,所以我不太明白。
但通常,面向对象编程是将一个相关事物的信息保存在一起的好方法,例如与一个事件关联的所有日期,描述和图像集合。如果你可以遍历一组id并且每个ID都可以用来创建一个Event对象,那么可以使每个Event对象检索它自己的信息和相关图像。它保持代码更清洁。