Commit 4be530ec authored by Шакарим Сапа's avatar Шакарим Сапа

Merge remote-tracking branch 'origin/master'

parents 061c079f 97f9dc96
<?php
/**
* @link http://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/
namespace backend\assets;
use yii\web\AssetBundle;
/**
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
*/
class FileUploadBundle extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $js = [
'js/upload-files.js'
];
public $css = [
'css/upload-files.css'
];
}
.tag-title {
float: left;
font-size: 13px;
}
.tag-item a:hover {
color: #000;
}
.tag-item {
float: left;
margin-right: 20px;
padding: 10px;
border-radius: 10px;
margin-bottom: 10px;
width: 100%;
}
.tag-item a {
float: left;
margin-left: 10px;
display: block;
text-decoration: none;
}
#add-doc-projs {
position: relative;
top: -5px;
margin-left: 10px;
}
.tag-title input {
display: none;
}
a#add-doc-projs.btn {
display: inline-block;
padding: 4px 12px;
margin-bottom: 0;
font-size: 14px;
line-height: 20px;
color: #333333;
text-align: center;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
vertical-align: middle;
cursor: pointer;
background-color: #f5f5f5;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
background-repeat: repeat-x;
border: 1px solid #cccccc;
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border-bottom-color: #b3b3b3;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
#doc-upd label, .tag-item label {
display: block;
margin-bottom: 5px;
font-size: 14px;
font-weight: normal;
line-height: 20px;
}
#doc-upd .span12, #Doc_name.span12 {
width: 60%;
}
#doc-upd .btn-doc-proj{
margin-top: 12px;
margin-right: 31%;
float: left;
margin-left: 0px;
display: inline-block;
padding: 4px 12px;
margin-bottom: 0;
font-size: 14px;
line-height: 20px;
color: #333333;
text-align: center;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
vertical-align: middle;
cursor: pointer;
background-color: #f5f5f5;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
background-repeat: repeat-x;
border: 1px solid #cccccc;
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
border-bottom-color: #b3b3b3;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
font-weight: normal;
}
#doc-upd input {
font-size: 14px;
font-weight: normal;
line-height: 20px;
font-weight: normal;
}
a.close-doc, a.remove-doc{
float: right;
margin-right: 40%;
}
.close-doc, .remove-doc-projs{
color: red;
}
.alert-danger, .alert-error {
color: #b94a48;
background-color: #f2dede;
border-color: #eed3d7;
}
.alert-block {
padding-top: 14px;
padding-bottom: 14px;
}
\ No newline at end of file
$(document).ready(function() {
$('body').on('click', "#course-form .kv-file-remove", function(){
$('#courses-filename').val('');
});
/* Вызов формы редактирования данных документа */
$('body').on('click', '.upd-doc-projs', function(){
link = jQuery(this);
doc = link.data('id');
jQuery.ajax({
type: 'POST',
url: "/school/lessons-admin/update-form-document",
data: {'docId': doc},
success: function(data){
jQuery('#doc-upd').append(
data
);
}
});
});
/* Вызов формы создания документа */
jQuery('#add-doc-projs').click(function() {
jQuery('#doc-items').append(
'<div class="tag-item">'+
'<input type="file" value="" name="LessonImage[]" id="LessonImage">'+
'<a title="Удалить документ" href="javascript:void(0);" class="remove-doc">\n\
X</a>'+
'<label for="Doc_name">Введите имя документа<span class="required"> *</span></label>'+
'<input class="span12" name="Filename[]" type="text" id="Doc_name">'+
'</div>'
);
});
/* Удаление документа */
jQuery('body').on('click', '.remove-doc-projs', function(){
link = jQuery(this);
doc = link.attr('value');
jQuery.ajax({
type: 'POST',
url: '/school/lessons-admin/delete-document',
data: {'docId': doc},
success: function(){
link.parent().remove();
}
});
});
/* Сохранение изменений в документе и закрытие формы редактирования */
jQuery('body').on('click', '.btn-doc-proj', function(){
link = jQuery(this);
name = link.parent().children('input#Doc_name').val();
id = link.data('id');
block_doc = jQuery('#document-'+id);
jQuery.ajax({
type: 'POST',
url: '/school/lessons-admin/update-document',
data: {'name': name, 'docId': doc},
success: function(response){
link.parent().remove();
block_doc.replaceWith(response);
}
});
});
});
\ No newline at end of file
......@@ -6,6 +6,7 @@ use Yii;
use common\components\AdminController;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use dosamigos\transliterator\TransliteratorHelper;
use common\modules\school\models\Courses;
use common\modules\school\models\SearchCourses;
......@@ -74,13 +75,15 @@ class CoursesAdminController extends AdminController
$model->image = $image_name;
}
}
$model->image = TransliteratorHelper::process($model->image, '', 'en');
$model->image = str_replace("-", "_", $model->image);
$model->image = preg_replace('/[^0-9a-z_\.]/i', '', $model->image);
$model->save();
if (!$model->filename) {
//If all went OK, then I proceed to save the image in filesystem
if(!empty($model->upload_image)){
$model->upload_image->saveAs($model->getPath().$image_name);
$model->upload_image->saveAs($model->getPath().$model->image);
}
}
......@@ -104,21 +107,30 @@ class CoursesAdminController extends AdminController
'Редактировать курс'
];
$model = $this->findModel($id);
if($model->load(Yii::$app->request->post()) && $model->validate()){
//Try to get file info
$model->upload_image = \yii\web\UploadedFile::getInstance($model, 'upload_image');
//If received, then I get the file name and asign it to $model->image in order to store it in db
if(!empty($model->upload_image)){
$image_name = $model->upload_image->name;
$model->image = $image_name;
if ($model->filename) {
$model->image = $model->filename;
}
else {
//Try to get file info
$model->upload_image = \yii\web\UploadedFile::getInstance($model, 'upload_image');
//If received, then I get the file name and asign it to $model->image in order to store it in db
if(!empty($model->upload_image)){
$image_name = $model->upload_image->name;
$model->image = $image_name;
}
}
$model->image = TransliteratorHelper::process($model->image, '', 'en');
$model->image = str_replace("-", "_", $model->image);
$model->image = preg_replace('/[^0-9a-z_\.]/i', '', $model->image);
$model->save();
//If all went OK, then I proceed to save the image in filesystem
if(!empty($model->upload_image)){
$model->upload_image->saveAs($model->getPath().$image_name);
if (!$model->filename) {
//If all went OK, then I proceed to save the image in filesystem
if(!empty($model->upload_image)){
$model->upload_image->saveAs($model->getPath(). $model->image);
}
}
return $this->redirect(['view', 'id' => $model->id]);
}
......@@ -194,6 +206,10 @@ class CoursesAdminController extends AdminController
//$filename = $images['name']["upload_image"];
// loop and process files
//$ext = explode('.', basename($filename));
$images['name']["upload_image"] = str_replace("-", "_", $images['name']["upload_image"]);
$images['name']["upload_image"] = TransliteratorHelper::process($images['name']["upload_image"], '', 'en');
$images['name']["upload_image"] = preg_replace('/[^0-9a-z_\.]/i', '', $images['name']["upload_image"]);
$target = $model->getPath() . $images['name']["upload_image"];//md5(uniqid()) . "." . array_pop($ext);
if(move_uploaded_file($images['tmp_name']["upload_image"], $target)) {
$success = true;
......
......@@ -7,6 +7,7 @@ use Yii;
use common\components\BaseController;
use common\modules\school\models\Lessons;
use common\modules\school\models\LessonImage;
use common\modules\testings\models\Passing;
class LessonController extends BaseController
......@@ -15,6 +16,7 @@ class LessonController extends BaseController
{
return [
'View' => 'Урок',
'Download-documents' => 'Скачивание документа',
];
}
......@@ -36,4 +38,18 @@ class LessonController extends BaseController
return $this->render('view', compact('model', 'passing'));
}
public function actionDownloadDocuments($id)
{
$modelLesson = new Lessons();
$docId=intval($id);
$doc = LessonImage::findOne($docId);
/* $fileContent = file_get_contents($modelLesson->getPath());
\Yii::app()->request->sendFile($doc->filename, $fileContent);*/
$file = $modelLesson->getPath().$doc->filename;
if (file_exists($file)) {
\Yii::$app->response->sendFile($file);
}
}
}
......@@ -10,6 +10,7 @@ use yii\web\UploadedFile;
use common\modules\school\models\Lessons;
use common\modules\school\models\SearchLessons;
use common\modules\school\models\LessonImage;
class LessonsAdminController extends AdminController
{
......@@ -21,6 +22,10 @@ class LessonsAdminController extends AdminController
'Update' => 'Редактирование урока',
'Delete' => 'Удаление урока',
'Manage' => 'Управление уроками',
'Upload' => 'Временное сохранение изображения',
'Update-form-document' => 'Вызов формы редактирования данных документа',
'Delete-document' => 'Удаление документа',
'Update-document' => 'Сохранение изменений данных документа',
);
}
......@@ -55,7 +60,9 @@ class LessonsAdminController extends AdminController
public function actionCreate()
{
$model = new Lessons;
$exts = array("pdf", "gif", "jpg", "png", "doc", "docx", "xls", "xlsx", "rtf");
$errorMessages = array();
Yii::$app->controller->page_title = 'Добавить урок';
Yii::$app->controller->breadcrumbs = [
['Список курсов' => '/school/lessons-admin/manage'],
......@@ -63,64 +70,101 @@ class LessonsAdminController extends AdminController
];
$model->load(Yii::$app->request->post());
$model->filesUpload = UploadedFile::getInstances($model, 'filesUpload');
if (Yii::$app->request->isPost && $model->validate())
{
if($model->filesUpload)
{
$model->upload();
$model->filesUpload = null;
$files = UploadedFile::getInstancesByName('LessonImage');
$model->save();
if ($files) {
foreach ($files as $key=>$file) {
$name = $_POST['Filename'][$key];
if ($name) {
// Получение расширения файла
$extension = $file->getExtensionName();
if (in_array($extension, $exts)){
$filename = $model->getFilename($name).'.'.$extension;
if ($file->saveAs($model->getPath().$filename)) {
$docs = new LessonImage;
$docs->title = $name;
$docs->filename =$filename;
$docs->lesson_id = $model->id;
$docs->save();
}
}
else {
$errorMessage = 'Неверное расширение файла "'.$file->name.'"';
array_push($errorMessages, $errorMessage);
}
}
else {
$errorMessage = 'Введите имя документа "'.$file->name.'"';
array_push($errorMessages, $errorMessage);
}
}
}
if (!$errorMessages) {
return $this->redirect(['manage']);
}
$model->save();
return $this->redirect(['manage']);
}
else
{
$form = new \common\components\BaseForm('/common/modules/school/forms/LessonForm', $model);
return $this->render('create', [
'model' => $model,
'form' => $form->out
]);
}
$model->errors = $errorMessages;
$form = new \common\components\BaseForm('/common/modules/school/forms/LessonForm', $model, $errorMessages);
return $this->render('create', [
'model' => $model,
'form' => $form->out,
]);
}
public function actionUpdate($id)
{
$exts = array("pdf", "gif", "jpg", "png", "docx", "doc", "xls", "xlsx", "rtf");
$errorMessages = array();
Yii::$app->controller->page_title = 'Редактировать урок';
Yii::$app->controller->breadcrumbs = [
['Список уроков' => '/school/lessons-admin/manage'],
'Редактировать урок'
];
$model = $this->findModel($id);
$model = $this->findModel($id);
$model->load(Yii::$app->request->post());
$model->filesUpload = UploadedFile::getInstances($model, 'filesUpload');
if (Yii::$app->request->isPost && $model->validate())
{
if($model->filesUpload)
{
if($model->files)
{
$model->deleteFiles();
}
$model->upload();
$model->filesUpload = null;
if (Yii::$app->request->isPost && $model->validate()) {
$model->save();
$files = UploadedFile::getInstancesByName('LessonImage');
if ($files) {
foreach ($files as $key=>$file) {
$name = $_POST['Filename'][$key];
if ($name) {
// Получение расширения файла
$extension = $file->getExtension();
if (in_array($extension, $exts)){
$filename = $model->getFilename($name).'.'.$extension;
if ($file->saveAs($model->getPath().$filename)) {
$docs = new LessonImage;
$docs->title = $name;
$docs->filename =$filename;
$docs->lesson_id = $model->id;
$docs->save();
}
}
else {
$errorMessage = 'Неверное расширение файла "'.$file->name .'"';
array_push($errorMessages, $errorMessage);
}
}
else {
$errorMessage = 'Введите имя документа "'.$file->name.'"';
array_push($errorMessages, $errorMessage);
}
}
}
if (!$errorMessages) {
return $this->redirect(['manage']);
}
$model->save();
return $this->redirect(['manage']);
$model->errors = $errorMessages;
}
else
{
$form = new \common\components\BaseForm('/common/modules/school/forms/LessonForm', $model);
return $this->render('update', [
'model' => $model,
'form' => $form->out
]);
}
$form = new \common\components\BaseForm('/common/modules/school/forms/LessonForm', $model);
return $this->render('update', [
'model' => $model,
'form' => $form->out
]);
}
public function actionDelete($id)
......@@ -161,5 +205,100 @@ class LessonsAdminController extends AdminController
} else {
throw new NotFoundHttpException('The requested page does not exist.');
}
}
public function actionUpload()
{
$model = new Lessons;
if (empty($_FILES['Lessons'])) {
echo json_encode(['error'=>'No files found for upload.']);
// or you can throw an exception
return; // terminate
}
// get the files posted
$images = $_FILES['Lessons'];
$success = null;
// file paths to store
$paths= [];
// get file names
//$filename = $images['name']["upload_image"];
// loop and process files
//$ext = explode('.', basename($filename));
$filename = str_replace("-", "_", $images['name']["filesUpload"][0]);
$filename = TransliteratorHelper::process($filename, '', 'en');
$filename = preg_replace('/[^0-9a-z_\.]/i', '', $filename);
$target = $model->getPath() . $filename;//md5(uniqid()) . "." . array_pop($ext);
if(move_uploaded_file($images['tmp_name']["filesUpload"][0], $target)) {
$success = true;
$paths[] = $target;
} else {
$success = false;
break;
}
// check and process based on successful status
if ($success === true) {
$output = [];
} elseif ($success === false) {
$output = ['error'=>'Error while uploading images. Contact the system administrator'];
foreach ($paths as $file) {
unlink($file);
}
} else {
$output = ['error'=>'No files were processed.'];
}
// return a json encoded response for plugin to process successfully
echo json_encode($output);
}
public function actionUpdateFormDocument()
{
$id = $_POST['docId'];
$model = LessonImage::findOne($id);
echo '<div class="tag-item">'.
'<a title="Закрыть форму редактирования" href="javascript:void(0);" class="close-doc">
X</a>'.
'<label for="Doc_name">Введите имя документа<span class="required"> *</span></label>'.
'<input class="span12" name="Filename[]" type="text" id="Doc_name" value="'.$model->title.'">'.
'<a class="btn btn-doc-proj" data-id='.$model->id.'>'.
'Сохранить'.
'</a>'.
'</div>';
}
public function actionDeleteDocument()
{
$docId = $_POST['docId'];
$lesson = new Lessons();
$model = LessonImage::findOne($docId);
unlink($lesson->getPath().$model->filename);
$model->delete();
}
public function actionUpdateDocument()
{
$docId = $_POST['docId'];
$docName = $_POST['name'];
$model = $model = LessonImage::findOne($docId);
$model->title = $docName;
if ($model->save()) {
echo '<div class="tag-item" id="document-'.$model->id.'">'.
'<div class="tag-title"><input type="checkbox" value="'.$model->title.'" checked="checked" name="Filenames[]">'.
($model->title ? $model->title : $model->filename).
'</div>'.
'<a title="Редактировать документ" href="javascript:void(0);" class="upd-doc-projs" data-id="'.$model->id.'">'.
'<i class="icon-pencil"></i>'.
'</a>'.
'<a title="Удалить документ" href="javascript:void(0);" class="remove-doc-projs" value="'.$model->id.'">
X
</a>'.
'</div>';
}
}
}
......@@ -22,14 +22,16 @@ $image = "<div class='file-widget'>".FileInput::widget([
'showUpload' => false,
'overwriteInitial'=>true,
'initialPreview'=>$initialImages,
'showRemove' => true,
],
'pluginEvents' => [
'fileuploaded'=>"function(event, data, previewId, index) {
$(\"[name='Courses[filename]']\").val(data.files[0].name);
}",
'fileclear'=>"function(event) {
$(\"[name='Courses[filename]']\").val();
}",
'filepredelete' => "function(event, key) {
return (!confirm('Are you sure you want to delete ?'));
}",
'filedelete' => 'function(event, key) { console.log(\'File is delete\'); }',
],
])."</div>";
......
<?php
use yii\helpers\ArrayHelper;
use kartik\file\FileInput;
use yii\helpers\Url;
use yii\helpers\Html;
use common\modules\school\models\Courses;
use common\modules\testings\models\Test;
$image = "<div class='file-widget'>".FileInput::widget([
'model' => $model,
'attribute' => 'filesUpload[]',
'language' => 'en',
'options' => ['multiple' => true, 'overwriteInitial'=>false],
'pluginOptions' => ['showUpload' => false]
])."</div>";
$docsLesson = '';
if ($model->files){
foreach($model->files as $doc){
$docsLesson[] = '<div class="tag-item" id="document-'.$doc->id.'">
<div class="tag-title"><input type="checkbox" value="'.$doc->title.'" checked="checked"
name="Filenames[]" /> '.($doc->title ? $doc->title : $doc->filename).'
</div>
<a title="Редактировать документ" href="javascript:void(0);" class="upd-doc-projs" data-id="'.$doc->id.'">
<i class="icon-pencil"></i>
</a>
<a title="Удалить документ" href="javascript:void(0);" class="remove-doc-projs" value="'.$doc->id.'">
X
</a>
</div>';
}
}
$docsLesson = implode("", $docsLesson);
$newDoc = 'Добавить документ<span><a class="btn" id="add-doc-projs" href="javascript:void(0);" title="Новый документ">
<i class="icon-plus"></i></a>
</span>
<div id="doc-items"></div>
<div id="doc-upd"></div>';
$errors = '';
if ($model->errors){
$errors[] = '<div class="alert alert-block alert-error">';
foreach($model->errors as $error){
$errors[] = '<p>'.$error.'</p>';
}
$errors[] = '</div>';
$errors = implode("", $errors);
}
$elements = [
'test_id' => ['type' => 'dropdownlist', 'items' => ArrayHelper::map(Test::find()->all(), 'id', 'name', 'session.name'), 'empty' => 'Не задан'],
'title' => ['type' => 'text'],
......@@ -23,9 +51,10 @@ $elements = [
'items' => ArrayHelper::map(Courses::find()->all(), 'id', 'title'),
],
'number' => ['type' => 'text'],
'image' => $image,
'errors' => $errors,
'newDoc' => $newDoc,
'docsLesson' => $docsLesson,
];
return [
'activeForm'=>[
'id' => 'lesson-form',
......@@ -39,3 +68,4 @@ return [
]
];
......@@ -34,9 +34,10 @@ class LessonImage extends \common\components\ActiveRecordModel
public function rules()
{
return [
[['lesson_id', 'filename'], 'required'],
[['lesson_id', 'filename', 'title'], 'required'],
[['lesson_id'], 'integer'],
[['filename'], 'string', 'max' => 50],
[['title'], 'string', 'max' => 150],
];
}
......@@ -49,6 +50,7 @@ class LessonImage extends \common\components\ActiveRecordModel
'id' => 'ID',
'lesson_id' => 'Урок',
'filename' => 'Документ',
'title' => 'Название',
];
}
......
......@@ -3,6 +3,8 @@
namespace common\modules\school\models;
use Yii;
use dosamigos\transliterator\TransliteratorHelper;
use common\modules\school\components\Utilities;
use common\modules\school\models\Courses;
use common\modules\testings\models\Test;
......@@ -21,7 +23,7 @@ class Lessons extends \common\components\ActiveRecordModel
const IMAGES_FOLDER = '/uploads/lessons_docs/';
public $filesUpload;
public $errors;
/**
* @inheritdoc
*/
......@@ -46,7 +48,6 @@ class Lessons extends \common\components\ActiveRecordModel
[['video_id'], 'string', 'max' => 100],
[['course_id', 'number', 'test_id'], 'integer'],
[['text'], 'safe'],
[['filesUpload'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif, rar, ai, ppt, doc, docx', 'maxFiles' => 10],
];
}
......@@ -63,7 +64,6 @@ class Lessons extends \common\components\ActiveRecordModel
'video_id' => 'Код видео',
'course_id' => 'Курс',
'number' => 'Номер урока',
'filesUpload' => 'Документы'
];
}
......@@ -123,23 +123,27 @@ class Lessons extends \common\components\ActiveRecordModel
return Yii::getAlias('@frontend/web') . self::IMAGES_FOLDER;
}
public function getUrl($image)
{
return Yii::$app->params['frontUrl'].self::IMAGES_FOLDER.$image;
}
public function upload()
{
if ($this->validate())
{
if(!file_exists($this->getPath()))
/*if(!file_exists($this->getPath()))
{
mkdir($this->getPath(), 0777, true);
}
}*/
foreach ($this->filesUpload as $file)
{
$filename = date('dmYHis-') . uniqid() . '.' . $file->extension;
$file->saveAs($this->getPath() . $filename);
/*$filename = date('dmYHis-') . uniqid() . '.' . $file->extension;
$file->saveAs($this->getPath() . $filename);*/
$image = new LessonImage();
$image->lesson_id = $this->id;
$image->filename = $filename;
$image->filename = $file;
$image->save();
}
......@@ -159,10 +163,19 @@ class Lessons extends \common\components\ActiveRecordModel
{
if(file_exists($this->getPath() . $file->filename))
{
unlink($this->getPath() . $file->filename);
if(!in_array($file->filename, $this->filesUpload)){
unlink($this->getPath() . $file->filename);
}
}
$file->delete();
}
}
}
}
public function getFilename($name) {
$filename = str_replace("-", "_", $name);
$filename = TransliteratorHelper::process($filename, '', 'en');
$filename = preg_replace('/[^0-9a-z_\.]/i', '', $filename);
return $filename;
}
}
<?php
use backend\assets\FileUploadBundle;
FileUploadBundle::register($this);
echo $form;
<?php
use backend\assets\FileUploadBundle;
FileUploadBundle::register($this);
echo $form;
\ No newline at end of file
......@@ -148,7 +148,31 @@ WidgetAssetBundle::register($this);
<?php echo $model->text;?>
<?php endif;?>
<div class="row">
<?php if($model->files):?>
<?php foreach($model->files as $key=>$file):?>
<?php if((($key+1) % 2) != 0):?>
<div class="row">
<div class="col-md-6 col-xs-6 col-sm-12">
<i class="ai_format"></i>
<a href="<?php echo Url::toRoute(['/school/lesson/download-documents', 'id' => $file->id]);?>" class="ai_link">
<?php echo $file->title;?>
</a>
</div>
<?php else:?>
<div class="col-md-6 col-xs-6 col-sm-12">
<i class="ai_format"></i>
<a href="<?php echo Url::toRoute(['/school/lesson/download-documents', 'id' => $file->id]);?>" class="ai_link">
<?php echo $file->title;?>
</a>
</div>
</div>
<?php endif;?>
<?php endforeach;?>
<?php if((count($model->files) % 2) != 0):?>
</div>
<?php endif;?>
<?php endif;?>
<!--<div class="row">
<div class="col-md-6 col-xs-6 col-sm-12">
<i class="ai_format"></i>
<a href="#" class="ai_link">Скачать типовые вопросы для уточнений</a>
......@@ -163,7 +187,7 @@ WidgetAssetBundle::register($this);
<i class="rar_format"></i>
<a href="#" class="rar_link">Скачать типовые вопросы для уточнений</a>
</div>
</div>
</div>-->
<div class="row">
<div class="col-md-7 col-xs-7 col-sm-12">
<div class="vc-com_tit">Была ли информация на этой странице полезной?</div>
......
<?php
use backend\assets\FileUploadBundle;
FileUploadBundle::register($this);
echo $form;
$js = <<<EOD
$('.kv-file-remove').removeClass('disabled');
EOD;
$this->registerJs($js, yii\web\View::POS_READY, 'remove.info');
<?php
use backend\assets\FileUploadBundle;
FileUploadBundle::register($this);
echo $form;
\ No newline at end of file
echo $form;
$js = <<<EOD
$('.kv-file-remove').removeClass('disabled');
EOD;
$this->registerJs($js, yii\web\View::POS_READY, 'remove.info');
\ No newline at end of file
<?php
use yii\db\Schema;
use yii\db\Migration;
class m160225_234431_add_column_school_lessons_image extends Migration
{
public function safeUp()
{
$this->addColumn('school_lessons_image', 'title', Schema::TYPE_STRING . '(150)');
}
public function safeDown()
{
$this->dropColumn('school_lessons_image', 'title');
}
}
......@@ -175,13 +175,13 @@
.dropzone {
min-height: 150px;
border: 2px solid rgba(0, 0, 0, 0.3);
background: white;
padding: 50px 10px 10px 10px; }
/* border: 2px solid rgba(0, 0, 0, 0.3);
background: white;*/
padding: 10px 10px 10px 10px; }
.dropzone.dz-clickable {
cursor: pointer; }
.dropzone.dz-clickable * {
cursor: default; }
/*.dropzone.dz-clickable * {
cursor: default; }*/
.dropzone.dz-clickable .dz-message, .dropzone.dz-clickable .dz-message * {
cursor: pointer; }
.dropzone.dz-started .dz-message {
......@@ -376,7 +376,7 @@
background: linear-gradient(to bottom, #be2626, #a92222);
padding: 0.5em 1.2em;
color: white; }
.dropzone .dz-preview .dz-error-message:after {
.dropzone .dz-preview .dz-error-message:after {
content: '';
position: absolute;
top: -6px;
......@@ -386,15 +386,19 @@
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #be2626; }
.dropzone .file-upload{
.dropzone .file-upload{
margin-bottom: 15px;
}
.dropzone {
.dropzone {
z-index: 100;
}
.file_upload_bt, .file_upload_bt_cs {
bottom: 140px;
.file_upload_bt, .file_upload_bt_cs {
bottom: -80px;
}
.dz-default dz-message{
.file_upload, .file_upload_cs, .file_upload_bt_cs{
cursor: pointer !important;
z-index: 200;
}
.dz-default.dz-message{
display:none;
}
\ No newline at end of file
}
......@@ -9,15 +9,13 @@ $(document).ready(function() {
maxFiles: 4,
addRemoveLinks: true,
dictRemoveFile: 'Удалить',
/*accept: function(file, done) {
$('#file_name').val(file.name);
done();
},*/
success: function(first, response)
{
$('#files-zone').append('<input type="hidden" name="Bid[file][]" value="'+response.filename+'" />');
$('.file_drop').hide();
$('.file_drop_cs').hide();
}
$('.file_upload_bt_cs').hide();
$('.file_upload_bt').hide();
},
};
});
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment