/** * Удаление типовой услуги по ID * доступ и наличие долны быть проверены перед вызовом. * * @param int $id * * @return bool */ public function deleteById($id) { $files = $this->db()->col("\n SELECT id \n FROM {$this->TABLE_FILES} \n WHERE src_id = ?i\n ", $id); if (count($files)) { $cfile = new cFile(); foreach ($files as $file_id) { $cfile->Delete($file_id); } } $this->db()->query("\n DELETE FROM {$this->TABLE} \n WHERE id = ?i AND user_id = ?i\n ", $id, $this->uid); return true; }
/** * генерирует статическое превью, то есть gif будет без анимации * имя файла сохраняется в поле static_preview. * * @param array $date данные о работе в портфолио (необходимы ключи id, prev_pict) * @param integer $login логин пользователя которому принадлежит работа */ public function GenerateStaticPreview(&$work, $login) { global $DB; $maxWidth = self::PREVIEW_MAX_WIDTH; $maxHeight = self::PREVIEW_MAX_HEIGHT; if ($work['static_preview']) { return true; } $isGIF = (bool) preg_match('~\\.gif$~', $work['prev_pict']); if (!$isGIF) { $staticName = $work['prev_pict']; } else { $image = new cFile(); $dir = 'users/' . substr($login, 0, 2) . '/' . $login . '/upload/'; $image->getInfo($dir . $work['prev_pict']); $imageSize = $image->image_size; if ($imageSize['width'] > $maxWidth || $imageSize['height'] > $maxHeight) { $staticName = 'st_' . $image->name; $image->resizeImage($dir . $staticName, $maxWidth, $maxHeight, 'auto', true); } else { $staticName = $work['prev_pict']; } } $work['static_preview'] = $staticName; $sql = 'UPDATE portfolio SET static_preview = ? WHERE id = ?i'; $DB->query($sql, $staticName, $work['id']); if ($DB->error) { return false; } else { return true; } }