Initial import
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
<?php
|
||||
|
||||
namespace app\models;
|
||||
|
||||
use app\models\parsed\CartInterface;
|
||||
use app\models\parsed\CartModel;
|
||||
use yii\db\ActiveRecord;
|
||||
|
||||
/**
|
||||
* Class _Base
|
||||
* @package app\models
|
||||
* @property $media_key
|
||||
* @property $id
|
||||
* @property $is_active
|
||||
*/
|
||||
class _Base extends ActiveRecord
|
||||
{
|
||||
public static function DOMAIN()
|
||||
{
|
||||
return \Yii::$app->params['media_server'];
|
||||
}
|
||||
|
||||
public function getTableName() {
|
||||
return self::getTableSchema()->name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $object_key
|
||||
* @param $rez
|
||||
* @return string|null
|
||||
*/
|
||||
public function getSrcOfSingleImage($object_key, $rez = null, $default = null)
|
||||
{
|
||||
if ($this->media_key) {
|
||||
/** @var FileCms $image */
|
||||
$image = $this->hasOne(FileCms::class, ['media_key' => 'media_key'])
|
||||
->where(['object_key' => $object_key])->orderBy(['order_index' => SORT_ASC])->one();
|
||||
if ($image) {
|
||||
$ready = self::DOMAIN() . '/_files/ready/' . $this->media_key . '/' . $image->object_key . '/' . $rez . '/' . $image->file_name;
|
||||
if ($rez && $this->check_image_url($ready)) {
|
||||
return $ready;
|
||||
} else {
|
||||
return self::DOMAIN() . '/_files/raw/' . $this->media_key . '/' . $image->object_key . '/' . $image->file_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $default;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $object_key
|
||||
* @param $rez
|
||||
* @return array
|
||||
*/
|
||||
public function getSrcOfMultipleImages($object_key, $rez = null)
|
||||
{
|
||||
$srcArr = [];
|
||||
if ($this->media_key) {
|
||||
$images = $this->hasMany(FileCms::class, ['media_key' => 'media_key'])
|
||||
->where(['object_key' => $object_key])->orderBy(['order_index' => SORT_ASC])->all();
|
||||
/** @var FileCms $image */
|
||||
foreach ($images as $image) {
|
||||
if ($image) {
|
||||
$ready = self::DOMAIN() . '/_files/ready/' . $this->media_key . '/' . $image->object_key . '/' . $rez . '/' . $image->file_name;
|
||||
if ($rez && $this->check_image_url($ready)) {
|
||||
$srcArr[] = $ready;
|
||||
} else {
|
||||
$srcArr[] = self::DOMAIN() . '/_files/raw/' . $this->media_key . '/' . $image->object_key . '/' . $image->file_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $srcArr;
|
||||
}
|
||||
|
||||
|
||||
private function check_image_url($image_url) {
|
||||
$headers = @get_headers($image_url);
|
||||
if ($headers && strpos($headers[0], '200 OK') !== false) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $object_key
|
||||
* @param $rez
|
||||
* @return string
|
||||
*/
|
||||
public function getSrcOfFirstImage($object_key, $rez = null)
|
||||
{
|
||||
if ($this->media_key) {
|
||||
$image = $this->hasMany(FileCms::class, ['media_key' => 'media_key'])
|
||||
->where(['object_key' => $object_key])->orderBy(['order_index' => SORT_ASC])->one();
|
||||
/** @var FileCms $image */
|
||||
if ($image) {
|
||||
$ready = self::DOMAIN() . '/_files/ready/' . $this->media_key . '/' . $image->object_key . '/' . $rez . '/' . $image->file_name;
|
||||
if ($rez && $this->check_image_url($ready)) {
|
||||
return $ready;
|
||||
} else {
|
||||
return self::DOMAIN() . '/_files/raw/' . $this->media_key . '/' . $image->object_key . '/' . $image->file_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
return '/_public/images/empty.png';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user