Ответы пользователя по тегу Yii
  • Как в Yii2 задать универсальный ЧПУ?

    sidorenkoda
    @sidorenkoda Автор вопроса
    Программист, верстальщик, руководитель проектов
    Сам решил задачу =)
    Может кому будет полезно:
    'pattern' => 'katalog_<modul:(\w+)(/(\w+))?(/(\w+))?>',
    Ответ написан
    Комментировать
  • Как в Yii2 загрузка изображений и последующее хранение их имен в БД?

    sidorenkoda
    @sidorenkoda Автор вопроса
    Программист, верстальщик, руководитель проектов
    Ivan Karabadzhak А я вот взял и извратил вашу концепцию
    Я создал вторую модель, которую наследовал от первой и в ней переопределил rules();

    И получилось вот так:
    public function actionUpdate($id) {
    		$model = new Manufacturer();
    		$model = $model->findOne($id);
    		if (Yii::$app->request->post()) {
    			$model->load(Yii::$app->request->post());
    			$model->image1 = UploadedFile::getInstance($model, 'image1');
    			if ( $model->image1 ) {
    				$dir = $_SERVER['DOCUMENT_ROOT'] . '/upload/manufacturers/';
    				if ( $model->upload($dir, $model->image1, $id) ) { /* set flash - file update is good */ }
    				// Наследуем модель с "мягкими" rules
    				$model = new ManufacturerDB();
    				$model = $model->findOne($id);
    				$model->load(Yii::$app->request->post());
    				$model->setAttribute('image1', $id . '.jpg');
    			} else {
    				unset($model->image1);
    			}
    			$model->save();
    			return $this->redirect(['view', 'id' => $id]);
    		}
    		return $this->render('update', [
    			'model' => $model,
    		]);
    	}


    Соответствует это вашей концепции?
    Ответ написан
  • Yii выгрузка в excel?

    sidorenkoda
    @sidorenkoda
    Программист, верстальщик, руководитель проектов
    Недавно подобную задачу решал =)
    Решил так:

    Установите через composer https://github.com/AlexGx/yii2-phpexcel

    Потом
    <?php
    
    namespace backend\controllers;
    
    use Yii;
    use yii\filters\AccessControl;
    use yii\web\Controller;
    use yii\filters\VerbFilter;
    use backend\models\Price;
    use alexgx\phpexcel;
    
    class PriceController extends Controller {
    ...
    public function actionUpdate() {
    	    $model = new Price();
    	    $h1StyleArray = [
    		    'font'  => [
    			    'color' => ['rgb' => '691e1e'],
    			    'bold' => true,
    			    'name' => 'Times New Roman',
    			    'size' => 20
    		    ],
    		    'alignment' => [
    			    'horizontal' => 'center'
    		    ]
    	    ];
    	    $cl = new \alexgx\phpexcel\PhpExcel();
    	    $xls = $cl->create();
    	    $xls->setActiveSheetIndex(0);
    	     $sheet = $xls->getActiveSheet();
    
    	    $xls->getActiveSheet()->mergeCells('A1:F1');
    	    $sheet->setCellValue('A1', 'Дизайнерский дом ...');
    	    $sheet->getStyle('A1')->applyFromArray($h1StyleArray);
                ...
                $cl->responseFile($xls, '222.xlsx', 'Excel2007');
    }
    Ответ написан
    1 комментарий
  • Почему возникает ошибка Class 'HTMLPurifier_Config' not found?

    sidorenkoda
    @sidorenkoda Автор вопроса
    Программист, верстальщик, руководитель проектов
    После того как вы добавите HTMLPurifier в ваш Yii2 во входном файле (у меня это - index.php), перед подключением Yii2 надо напистаь следующее:
    // Подключить HTMLPurifier (пути у до него будут у Вас отличаться)
    require_once $_SERVER['DOCUMENT_ROOT'] . '/!yii2/vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php';

    $config = HTMLPurifier_Config::createDefault();
    $config->set('Core.Encoding', 'ISO-8859-1'); // replace with your encoding
    $config->set('HTML.Doctype', 'HTML 4.01 Transitional'); // replace with your doctype
    $purifier = new HTMLPurifier($config);
    $clean_html = $purifier->purify($dirty_html);

    И не забыть создать папку (Serializer), если ее нет:
    !yii2\vendor\ezyang\htmlpurifier\library\HTMLPurifier\DefinitionCache\Serializer
    Ответ написан
    Комментировать