如何在 joomla 模块或后端更新 table?
How to update table within joomla module or backend?
我正在开发某个模块,希望能够使用图像大小更新 table - table 中已经有两列(宽度、高度)。这是我开发 joomla 模块的第一种方法。除了最后一个带有更新的 foreach 之外,所有代码都有效。我哪里错了?
以及如何在模块或后端模块设置中将此功能触发到按钮或link? 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 - 也许附加到按钮 "Update image sizes"?
您在 foreach
之前使用 return $size;
。
我正在开发某个模块,希望能够使用图像大小更新 table - table 中已经有两列(宽度、高度)。这是我开发 joomla 模块的第一种方法。除了最后一个带有更新的 foreach 之外,所有代码都有效。我哪里错了?
以及如何在模块或后端模块设置中将此功能触发到按钮或link? 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 - 也许附加到按钮 "Update image sizes"?
您在 foreach
之前使用 return $size;
。