File_thumbnail uses file_id as PRI
This commit is contained in:
parent
12058c30b4
commit
470971cf47
@ -323,7 +323,12 @@ abstract class Managed_DataObject extends Memcached_DataObject
|
|||||||
|
|
||||||
// 'update' won't write key columns, so we have to do it ourselves.
|
// 'update' won't write key columns, so we have to do it ourselves.
|
||||||
// This also automatically calls "update" _before_ it sets the keys.
|
// This also automatically calls "update" _before_ it sets the keys.
|
||||||
public function updateWithKeys(&$orig)
|
// FIXME: This only works with single-column primary keys so far! Beware!
|
||||||
|
/**
|
||||||
|
* @param DB_DataObject &$orig Must be "instanceof" $this
|
||||||
|
* @param string $pid Primary ID column (no escaping is done on column name!)
|
||||||
|
*/
|
||||||
|
public function updateWithKeys(&$orig, $pid='id')
|
||||||
{
|
{
|
||||||
if (!$orig instanceof $this) {
|
if (!$orig instanceof $this) {
|
||||||
throw new ServerException('Tried updating a DataObject with a different class than itself.');
|
throw new ServerException('Tried updating a DataObject with a different class than itself.');
|
||||||
@ -346,14 +351,17 @@ abstract class Managed_DataObject extends Memcached_DataObject
|
|||||||
$this->query('ROLLBACK');
|
$this->query('ROLLBACK');
|
||||||
throw new ServerException("Could not UPDATE non-keys for {$this->__table}");
|
throw new ServerException("Could not UPDATE non-keys for {$this->__table}");
|
||||||
}
|
}
|
||||||
|
$orig->decache();
|
||||||
|
$this->encache();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$toupdate = implode(', ', $parts);
|
|
||||||
|
|
||||||
$table = common_database_tablename($this->tableName());
|
$qry = sprintf('UPDATE %1$s SET %2$s WHERE %3$s = %4$s',
|
||||||
$qry = 'UPDATE ' . $table . ' SET ' . $toupdate .
|
common_database_tablename($this->tableName()),
|
||||||
' WHERE id = ' . $this->getID();
|
implode(', ', $parts),
|
||||||
$orig->decache();
|
$pid,
|
||||||
|
$this->_quote($this->$pid));
|
||||||
|
|
||||||
$result = $this->query($qry);
|
$result = $this->query($qry);
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
common_log_db_error($this, 'UPDATE', __FILE__);
|
common_log_db_error($this, 'UPDATE', __FILE__);
|
||||||
@ -371,6 +379,7 @@ abstract class Managed_DataObject extends Memcached_DataObject
|
|||||||
$this->query('ROLLBACK');
|
$this->query('ROLLBACK');
|
||||||
throw new ServerException("Could not UPDATE non-keys for {$this->__table}");
|
throw new ServerException("Could not UPDATE non-keys for {$this->__table}");
|
||||||
}
|
}
|
||||||
|
$orig->decache();
|
||||||
$this->encache();
|
$this->encache();
|
||||||
|
|
||||||
// commit our db transaction
|
// commit our db transaction
|
||||||
|
@ -289,7 +289,7 @@ class OembedPlugin extends Plugin
|
|||||||
$thumbnail->width = $info[0]; // array indexes documented on php.net:
|
$thumbnail->width = $info[0]; // array indexes documented on php.net:
|
||||||
$thumbnail->height = $info[1]; // https://php.net/manual/en/function.getimagesize.php
|
$thumbnail->height = $info[1]; // https://php.net/manual/en/function.getimagesize.php
|
||||||
// Throws exception on failure.
|
// Throws exception on failure.
|
||||||
$thumbnail->updateWithKeys($orig);
|
$thumbnail->updateWithKeys($orig, 'file_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onPluginVersion(array &$versions)
|
public function onPluginVersion(array &$versions)
|
||||||
|
Loading…
Reference in New Issue
Block a user