Создание галереи (Gallery) MODX на front-end

Как настроить и работать с компонентом Gallery через административную часть MODX, вы можете ознакомится c нашей статьей. В этой статье мы расмотрим как создать альбом с изображениями и привязки созданого альбома к ресурсу.

Считаем, что компонент Gallery у нас установлен. Создадим TV-параметр c названием "tv-gallery", выбираем "galerryalbumlist" во вкладке "Параметры ввода". На вкладке "доступно для шаблонов" отмечаем нужные шаблоны. В данных шаблонах разместим простейшую форму:

<form method="post" enctype="multipart/form-data">
<input type="file" name="fileUpload[]" multiple>
<button type="submit" name="submit" value="save"></button>
</form>

Теперь создадим сниппет и назовем его galleryHandler. Это будет наш обработчик формы, разместим его в шаблонах где мы разместили нашу HTML форму, выше формы.

<?php
$action = (isset($_POST['submit']))? $_POST['submit'] : '';

switch($action) {
case "save":
//получаем ресурс в виде объекта
$item = $modx->getObject('modResource',array(
'id' => $modx->resource->id,
));
if(!$item){
break;
}


$resourceID = $response->response['object']['id'];

//Галлерея-создание
$responseGallery = $modx->runProcessor('mgr/album/create',
array(
'name' => $resourceID,
'parent' => 4,
'active' => 1,
'prominent' => 1,
),
array(
'processors_path' => $modx->getOption('core_path') . 'components/gallery/processors/',
)
);


$galleryID = $responseGallery->response['object']['id'];

//Назначаем галллерею
$item = $modx->getObject('modResource',array(
'id' => $resourceID,
));
if($item){
$item->setTVValue(49, $galleryID);
}

//Заливка файлов
foreach($_FILES['fileTmp']['name'] as $k => $v){
$validextensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES['fileTmp']['name'][$k]);
$file_extension = end($temporary);

if ((($_FILES['fileTmp']['type'][$k] == "image/png") || ($_FILES['fileTmp']['type'][$k] == "image/jpg") || ($_FILES['fileTmp']['type'][$k] == "image/jpeg")) && in_array($file_extension, $validextensions)) {

$_FILES['file']['name'] = $_FILES['fileTmp']['name'][$k];
$_FILES['file']['type'] = $_FILES['fileTmp']['type'][$k];
$_FILES['file']['tmp_name'] = $_FILES['fileTmp']['tmp_name'][$k];
$_FILES['file']['error'] = $_FILES['fileTmp']['error'][$k];
$_FILES['file']['size'] = $_FILES['fileTmp']['size'][$k];

$file = $_FILES['fileTmp']['name'][$k];
$arrFileInfo = pathinfo($file);
$fileName = $modx->runSnippet('fileTranslit', array(
'fileName' => $arrFileInfo['filename'],
));
$fileName = rand(10000, 99999).'_'.$fileName.'.'.$arrFileInfo['extension'];

$responseGalleryItems = $modx->runProcessor('mgr/item/upload',
array(
'album' => $galleryID,
'active' => 1,
'name' => $fileName,
),
array(
'processors_path' => $modx->getOption('core_path') . 'components/gallery/processors/',
)
);
}
}

$modx->sendRedirect($modx->makeUrl($modx->resource->id, '', array(
'code' => 'ok',
)));


/*mkdir('img/catalog/'.$resourceID);

//Закачиваем файл
if(isset($_FILES["file"]["type"])){
$validextensions = array("jpeg", "jpg", "png");
$temporary = explode(".", $_FILES["file"]["name"]);
$file_extension = end($temporary);
if ((($_FILES["file"]["type"] == "image/png") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/jpeg")) && ($_FILES["file"]["size"] < 1000000) && in_array($file_extension, $validextensions)) {
if ($_FILES["file"]["error"] == 0) {
$file = $_FILES['file']['name'];
$arrFileInfo = pathinfo($file);
$fileTranlit = $modx->runSnippet('fileTranslit', array(
'fileName' => $arrFileInfo['filename'],
));
$fileTranlit = rand(10000, 99999).'_'.$fileTranlit.'.'.$arrFileInfo['extension'];

$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = 'img/catalog/'.$resourceID.'/'.$fileTranlit;
if(move_uploaded_file($sourcePath, $targetPath)){
//Прописываем в TV
$item = $modx->getObject('modResource',array(
'id' => $resourceID,
));
if($item){
$item->setTVValue(24, $resourceID.'/'.$fileTranlit);
}
}
}
}
}*/

$modx->sendRedirect($modx->makeUrl($modx->resource->id, '', array(
'code' => 'ok',
)));

break;
}

 

 


Комментарии (0)



Разрешённые теги: <b><i><br>Добавить новый комментарий:


Создание сайтов в студии go-up.info