HEX
Server: LiteSpeed
System: Linux melbournecleaninggroup 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: www-data (33)
PHP: 7.3.33-1+focal
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/html/wp-content/plugins/brizy/editor/data/project-merge82.php
<?php

class Brizy_Editor_Data_ProjectMerge82 implements Brizy_Editor_Data_ProjectMergeStrategyInterface {
	private function mergeFonts( $fonts, $newFonts, $key = "family" ) {
		$result = $fonts;

		foreach ( $newFonts->data as $newFont ) {
			$exist = false;

			foreach ( $fonts->data as $font ) {
				if ( $font->$key === $newFont->$key ) {
					$exist = true;
				}
			}

			if ( ! $exist ) {
				$result->data[] = $newFont;
			}
		}

		return $result;
	}

	public function merge( $projectData1, $projectData2 ) {

		$result = $projectData1;

		// selected Kit
		$result->selectedKit = $projectData2->selectedKit;

		// selected Style
		$result->selectedStyle = $projectData2->selectedStyle;

		if ( ! isset( $result->styles ) ) {
			$result->styles = array();
		}

		// merge styles
		foreach ( $projectData2->styles as $i => $style ) {
			foreach ( $result->styles as $j => $resultStyle ) {
				if ( $style->id === $resultStyle->id ) {
					$result->styles[ $j ] = $style;
				} else {
					$result->styles[] = $style;
				}
			}
		}

		// extraFontStyles
		$result->extraFontStyles = array_merge(
			(array) ( $result->extraFontStyles ),
			(array) ( $projectData2->extraFontStyles )
		);

		// font
		$result->font = $projectData2->font;

		// fonts
		// fonts -> config
		$result->fonts->config = $this->mergeFonts( $result->fonts->config, $projectData2->fonts->config );

		// fonts -> blocks
		if ( isset( $projectData2->fonts->blocks ) ) {
			if ( ! isset( $result->fonts->blocks ) ) {
				$result->fonts->blocks = $projectData2->fonts->blocks;
			} else {
				$result->fonts->blocks = $this->mergeFonts( $projectData2->fonts->blocks, $projectData2->fonts->blocks );
			}
		}

		// fonts -> google
		if ( isset( $projectData2->fonts->google ) ) {
			if ( ! isset( $result->fonts->google ) ) {
				$result->fonts->google = $projectData2->fonts->google;
			} else {
				$result->fonts->google = $this->mergeFonts( $projectData2->fonts->google, $projectData2->fonts->google );
			}
		}

		// fonts -> upload
		if ( isset( $projectData2->fonts->upload ) ) {
			if ( ! isset( $result->fonts->upload ) ) {
				$result->fonts->uploud = $projectData2->fonts->upload;
			} else {
				$result->fonts->upload = $this->mergeFonts( $projectData2->fonts->upload, $projectData2->fonts->upload, "id" );
			}
		}

		return $result;
	}
}