Delphinum, а я бы взглянул хотя бы на первичные наметки файлового хранилища![]()
______________
мое фиговое ооп в комплекте выглядит примерно так (+/-)
if(app::user()->right('account.edit')) {
switch(app::router()->query(2)){
case 'avatar':
if(app::router()->query(3)=='upload' AND $upload = app::file()->uploaded('newavatar')){
$upload->extension(['image/jpeg', 'image/png', 'image/gif']);
$upload->minSize = 1024;
$upload->maxSize = 1024*1024;
if($upload->validExtension()){
if($upload->saveFile()){
app::image($upload->tmpFile());
app::image()->minHeight(200);
app::image()->minWidth(200);
app::image()->maxHeight(2400);
app::image()->maxWidth(2400);
if(app::image()->valid()){
app::image()->replaceData(
[
'x' => 200,
'y' => 200,
'type' => 'png',
'save' => app::storage()->filterPath(app::storage()->avatar(app::user()->id())),
'trim' => true
]
);
app::image()->replace();
if(app::storage()->avatar(app::user()->id(), true)){
app::events()->registerEvent(
[
'type' => 3,
'bind' => 'image.avatar.'.app::user()->id(),
'event' => 'сменил аватар',
'url' => '/user/'.app::user()->id().'/'
]
);
jsOnResponse('{"filename":"'.app::storage()->avatar(app::user()->id()).'", "error":""}');
}else{
...
}
}else{
...
}
$upload->deleteTmpFile();
}else{
...
}
}else{
...
}
}else{
....
}