Ejemplo n.º 1
0
 public function beforeDelete()
 {
     if (parent::beforeDelete()) {
         return true;
     } else {
         return false;
     }
 }
Ejemplo n.º 2
0
 /**
  * @param \albertborsos\yii2lib\db\ActiveRecord $model
  */
 public static function createArchive($model)
 {
     if (!$model->getIsNewRecord()) {
         $class = get_class($model);
         /** @var \albertborsos\yii2lib\db\ActiveRecord $class */
         $oldModel = $class::findOne(['id' => $model->getPrimaryKey()]);
         if (!self::attributesAreSame($model, $oldModel)) {
             $archive = new Historizer();
             $archive->model_class = $class;
             $archive->model_id = $model->getPrimaryKey();
             $archive->model_attributes = Json::encode($oldModel->attributes);
             if (!$archive->save()) {
                 $archive->throwNewException('Archiválás nem sikerült!');
             }
         } else {
             return false;
         }
     } else {
         return false;
     }
 }
Ejemplo n.º 3
0
 public static function saveTo(ActiveRecord $model, $tagsInString, $separator = ',')
 {
     if (!is_null($model->getPrimaryKey())) {
         if ($tagsInString !== '' && !is_null($tagsInString)) {
             // lekérdezem a korábbi tag-eket (a törölteket is)
             $assignedTags = self::getAssignedTags($model, false);
             // felbontom az új tag-eket egy tömbre
             $tags = explode(',', $tagsInString);
             // az elküldött cimkékhez legyűjtöm az id_kat
             $tagsWithIDs = self::matchLabelWithID($tags);
             // most már megvan az összes cimkéhez az id-nk
             // összehasonlítom, hogy mit kell törölni és mit kell hozzáadni
             foreach ($assignedTags as $assignedTag) {
                 /* @var Assigns $assignedTag */
                 $savedToTags = false;
                 foreach ($tagsWithIDs as $tagID => $tagLabel) {
                     if ($assignedTag->tag_id == $tagID) {
                         $savedToTags = true;
                     }
                 }
                 if ($savedToTags) {
                     // ha szerepel, akkor le kell ellenőriznem a státuszt db-ben
                     if ($assignedTag->status == 'd') {
                         $assignedTag->status = 'a';
                         $assignedTag->save();
                     }
                 } else {
                     //ha nem szerepel az új cimkék közt, akkor törölni kell db-ből
                     $assignedTag->status = 'd';
                     $assignedTag->save();
                 }
             }
             foreach ($tagsWithIDs as $tagID => $tagLabel) {
                 $isAssignedToPost = false;
                 foreach ($assignedTags as $assignedTag) {
                     /* @var Assigns $assignedTag */
                     if ($assignedTag->tag_id == $tagID) {
                         $isAssignedToPost = true;
                     }
                 }
                 if (!$isAssignedToPost) {
                     // ha nincs hozzárendelve akkor menteni kell
                     $assign = new Assigns();
                     $assign->tag_id = $tagID;
                     $assign->model_class = get_class($model);
                     $assign->model_id = $model->getPrimaryKey();
                     $assign->status = 'a';
                     if (!$assign->save()) {
                         $assign->throwNewException('Cimke hozzárendelési hiba!');
                     }
                 }
             }
         } else {
             // minden modelhez tartozó aktív cimkét törölni kell
             $assignedTags = self::getAssignedTags($model);
             foreach ($assignedTags as $assignedTag) {
                 /* @var Assigns $assignedTag */
                 $assignedTag->status = 'd';
                 $assignedTag->save();
             }
         }
         return true;
     } else {
         $model->throwNewException('Előbb menteni kell a modelt, hogy hozzá lehessen fűzni a cimkéket!');
     }
 }
Ejemplo n.º 4
0
<?php

use albertborsos\yii2lib\db\ActiveRecord;
use yii\helpers\Html;
use kartik\grid\GridView;
use albertborsos\yii2tagger\components\DataProvider;
/* @var $this yii\web\View */
/* @var $searchModel albertborsos\yii2tagger\models\TagSearch */
/* @var $dataProvider yii\data\ActiveDataProvider */
?>
<div class="tags-index">

    <?php 
// echo $this->render('_search', ['model' => $searchModel]);
?>

    <?php 
echo GridView::widget(['dataProvider' => $dataProvider, 'panel' => ['heading' => '<h3 class="panel-title"><i class="glyphicon glyphicon-globe"></i> Cimkék</h3>', 'type' => 'default', 'showFooter' => false], 'floatHeader' => true, 'export' => false, 'exportConfig' => [GridView::CSV => ['label' => 'CSV', 'icon' => 'floppy-open', 'showHeader' => true, 'showPageSummary' => true, 'showFooter' => true, 'showCaption' => true, 'colDelimiter' => ",", 'rowDelimiter' => "\r\n", 'filename' => 'grid-export', 'alertMsg' => 'The CSV export file will be generated for download.', 'options' => ['title' => 'Mentés CSV-ként']], GridView::EXCEL => ['label' => 'Excel', 'icon' => 'floppy-remove', 'showHeader' => true, 'showPageSummary' => true, 'showFooter' => true, 'showCaption' => true, 'worksheet' => 'ExportWorksheet', 'filename' => 'grid-export', 'alertMsg' => 'The EXCEL export file will be generated for download.', 'cssFile' => '', 'options' => ['title' => 'Mentés XLS-ként']]], 'filterModel' => $searchModel, 'columns' => [['attribute' => 'sort_order', 'hAlign' => 'center', 'vAlign' => 'middle', 'headerOptions' => ['class' => 'text-center'], 'format' => 'raw', 'value' => function ($model, $index, $widget) {
    return $model->editable(ActiveRecord::EDITABLE_TYPE_DROPDOWN, 'sort_order', DataProvider::items('sortorder'));
}, 'filter' => false], ['attribute' => 'label', 'hAlign' => 'center', 'vAlign' => 'middle', 'headerOptions' => ['class' => 'text-center'], 'format' => 'raw', 'value' => function ($model, $index, $widget) {
    return $model->editable(ActiveRecord::EDITABLE_TYPE_TEXTINPUT, 'label');
}], ['attribute' => 'updated_at', 'hAlign' => 'center', 'vAlign' => 'middle', 'format' => 'raw', 'headerOptions' => ['class' => 'text-center'], 'value' => function ($model, $index, $widget) {
    return \albertborsos\yii2lib\db\ActiveRecord::showLastModifiedInfo($model);
}]]]);
?>

</div>