如何更新joomla模块或后端中的表?

时间:2015-03-09 21:19:22

标签: php mysql joomla module

我正在研究一些模块,并希望能够更新具有图像大小的表 - 表中已经有两列(宽度,高度)。这是我对joomla模块开发的第一种方法。所有代码都工作,除了最后的foreach更新。我哪里错了?

如何在模块或后端模块设置中触发此功能以按钮或链接? helper.php中的代码:

        public static function updateSize( $params )
{
        $app = JFactory::getApplication();
        $doc = JFactory::getDocument();
        JHtml::_('behavior.framework', true);
        $db = JFactory::getDbo();

        $query = $db->getQuery(true)
                        ->select($db->quoteName(array('a.imgfilename', 'b.catpath')))
                        ->from($db->quoteName('#__imagestable', 'a'))
                        ->where(($db->quoteName('height').'=') && ($db->quoteName('width').'='))
                        ->join('INNER', $db->quoteName('#__imagestable_cat', 'b') . ' ON (' . $db->quoteName('a.catid') . ' = ' . $db->quoteName('b.cid') . ')')
                        ->order('RAND() LIMIT 5');

        $db->setQuery($query);
        $size = $db->loadObjectList();
        return $size;

        foreach($size as $imageSize){
            $imgpath = $path.$imageSize->catpath.'/'.$imageSize->imgfilename;
            $imgfilename = $imageSize->imgfilename;
            list($width, $height) = getimagesize($imgpath);
            $validImgs[] = $imageSize;

            foreach ( $validImgs as $row ) {
                    $query = $db->getQuery(true)
                                 ->update($db->quoteName('#__imagestable')) 
                                 ->where ($db->quoteName('imgfilename').'='.$imgfilename)
                                 ->set(array($db->quoteName('height') . '=' . $height, $db->quoteName('width') . '=' .$width));

                     $db->setQuery($query); 
                     $imgSize = $db->execute();
                }
        }
}

是否可以将此功能附加到后端XML - 可能是按钮"更新图像尺寸"?

1 个答案:

答案 0 :(得分:0)

您在return $size;之前使用foreach