Automation/app/Libraries/MyStorage/MangboardStorage.php
2024-09-15 16:02:23 +09:00

68 lines
2.1 KiB
PHP

<?php
namespace App\Libraries\MyStorage;
use App\Models\Mangboard\FileModel;
class MangboardStorage extends FileStorage
{
private $_model = null;
public function __construct(string $path)
{
parent::__construct($path);
}
public function getBasePath(): string
{
return getenv("mangboard.uploads.path");
}
public function getUploadPath(): string
{
return parent::getUploadPath() . DIRECTORY_SEPARATOR . $this->getBasePath();
}
public function getUploadURL(): string
{
return sprintf("/wp-content/%s/%s", parent::getUploadURL(), $this->getBasePath());
}
public function getModel(): FileModel
{
if ($this->_model === null) {
return $this->_model = new FileModel();
}
return $this->_model;
}
final public function getHTMLTag(string $content = ""): string
{
//Board 게시판 image_path , content용 데이터 배열에 추가 후 modifyBoard에서 처리
switch ($this->getOrintginType()) {
case "image":
$content = sprintf(
"<img src=\"%s/%s/%s\" alt=\"%s\">",
$this->getUploadURL(),
$this->getPath(),
$this->getOriginName(),
$this->getOriginName()
);
break;
case "video":
$content = sprintf(
"<video alt=\"%s\" controls autoplay>
<source src=\"%s/%s/%s\" type=\"%s\">
Your browser does not support the video tag.
</video>",
$this->getOriginName(),
$this->getUploadURL(),
$this->getPath(),
$this->getOriginName(),
$this->getMimeType(),
);
break;
}
log_message("debug", sprintf(
"\n--------%s--------\n%s\n--------------------\n",
__FUNCTION__,
$content
));
return $content;
}
}