%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/file/commands/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/file/commands/FileController.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2020 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\modules\file\commands;
use humhub\modules\file\libs\ImageHelper;
use humhub\modules\file\models\File;
use humhub\modules\file\models\FileHistory;
use Yii;
use yii\console\widgets\Table;
/**
* Management of uploaded files
*
* @since 1.7
*/
class FileController extends \yii\console\Controller
{
/**
* Overview of uploaded files and automatically generated variants.
*/
public function actionIndex()
{
$this->stdout("*** File module console\n\n");
$fileSize = 0;
$fileSizes = [];
/** @var File $file */
foreach (File::find()->each() as $file) {
if (!is_file($file->store->get())) {
continue;
}
$fileSize += filesize($file->store->get());
foreach ($file->store->getVariants() as $variant) {
if (!isset($fileSizes[$variant])) {
$fileSizes[$variant] = 0;
}
$fileSizes[$variant] += filesize($file->store->get($variant));
}
}
echo Table::widget(['rows' => [
['Total number of uploaded files', File::find()->count()],
['Size', Yii::$app->formatter->asShortSize($fileSize)],
]]);
$this->stdout("\nAutomatically generated file variants:\n");
$table = [];
foreach ($fileSizes as $v => $s) {
$table[] = [$v, Yii::$app->formatter->asShortSize($s)];
}
echo Table::widget(['headers' => ['Variant', 'Size'], 'rows' => $table]);
}
/**
* Deletes all automatically generated file variants (previews, converted versions).
*/
public function actionDeleteVariants()
{
$this->stdout("*** File module console\n\n");
$this->stdout('Deleting automatically created file variants:');
/** @var File $file */
foreach (File::find()->each() as $file) {
foreach ($file->store->getVariants([FileHistory::VARIANT_PREFIX . '*']) as $variant) {
$file->store->delete($variant);
$this->stdout('.');
}
}
$this->stdout("OK!\n\n");
}
/**
* Scales down already uploaded images to the maximum dimensions and quality.
*/
public function actionDownscaleImages()
{
$this->stdout("*** File module console\n\n");
$this->stdout('Downscaling uploaded files:');
/** @var File $file */
foreach (File::find()->each() as $file) {
ImageHelper::downscaleImage($file);
$this->stdout('.');
}
$this->stdout("OK!\n\n");
}
}