public function create(MediaModel $media, UserAccountModel $owner) { global $DB; $createdat = \TimeSource::getFormattedForDataBase(); try { $DB->beginTransaction(); $stat = $DB->prepare("SELECT max(slug) AS c FROM media_information WHERE site_id=:site_id"); $stat->execute(array('site_id' => $media->getSiteId())); $data = $stat->fetch(); $media->setSlug($data['c'] + 1); $stat = $DB->prepare("INSERT INTO media_information (site_id, slug, storage_size, created_by_user_account_id, created_at,title,source_text,source_url,md5) " . "VALUES (:site_id, :slug, :storage_size, :created_by_user_account_id, :created_at,:title,:source_text,:source_url,:md5) RETURNING id"); $stat->execute(array('site_id' => $media->getSiteId(), 'slug' => $media->getSlug(), 'storage_size' => $media->getStorageSize(), 'created_by_user_account_id' => $owner->getId(), 'created_at' => $createdat, 'title' => substr($media->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'source_text' => substr($media->getSourceText(), 0, VARCHAR_COLUMN_LENGTH_USED), 'source_url' => substr($media->getSourceUrl(), 0, VARCHAR_COLUMN_LENGTH_USED), 'md5' => $media->getMd5())); $data = $stat->fetch(); $media->setId($data['id']); $stat = $DB->prepare("INSERT INTO media_history (media_id,title,title_changed,source_text,source_text_changed,source_url,source_url_changed,user_account_id,created_at) " . "VALUES (:media_id,:title,:title_changed,:source_text,:source_text_changed,:source_url,:source_url_changed,:user_account_id,:created_at)"); $stat->execute(array('media_id' => $media->getId(), 'title' => substr($media->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED), 'title_changed' => 0, 'source_text' => substr($media->getSourceText(), 0, VARCHAR_COLUMN_LENGTH_USED), 'source_text_changed' => 0, 'source_url' => substr($media->getSourceUrl(), 0, VARCHAR_COLUMN_LENGTH_USED), 'source_url_changed' => 0, 'user_account_id' => $owner->getId(), 'created_at' => $createdat)); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }