Fehler mit Elementor-Widgets

Mittwoch, 27.04.2022 09:47

Vor ein paar Tagen hatten wir das Problem, dass eine WordPress-Website mit Elementor nicht mehr funktionierte. Nach dem Aktivieren des error reportings erschienen Fehler wie

Fatal error: Uncaught Error: Class 'Elementor\Scheme_Color' not found

oder

Fatal error: Uncaught Error: Class 'Elementor\Scheme_Typography' not found

Problem ist schlicht, dass die erwähnten Klassen umbenannt wurden. Abhilfe schaffen hier zwei Wege:

  1. Jedes Vorkommen von Scheme_Color ersetzen mit \Elementor\Core\Schemes\Color sowie jedes Vorkommen von Scheme_Typography ersetzen mit \Elementor\Core\Schemes\Typography
  2. in jede erwähnte Datei nach der Deklaration des Namespace folgende Zeilen einfügen:

use \Elementor\Core\Schemes\Typography as Scheme_Typography;
use \Elementor\Core\Schemes\Color as Scheme_Color;

Das hat das Problem bei uns gelöst. Natürlich nur bis zum Nächsten Auto-Update.

„Schuld“ war in unserem Fall übrigens das Plugin „Pixerex Elements“.

Es gibt natürlich noch eine dritte Möglichkeit, indem man im „fehlerhaften“ Plugin eine PHP-Datei mit folgendem Inhalt erstellt:

<?php
/**
 * Plugin Name: Elementor Scheme_Color and Scheme_Typography Class Issue
 **/
namespace Elementor;

\add_action(
  'plugins_loaded',
  function() {
    if ( ! class_exists( 'Elementor\Scheme_Color' ) ) {
      class Scheme_Color extends Core\Schemes\Color {}
    }
  }
);
\add_action(
  'plugins_loaded',
  function() {
    if ( ! class_exists( 'Elementor\Scheme_Typography' ) ) {
      class Scheme_Typography extends Core\Schemes\Typography {}
    }
  }
);

Thema: WordPress | Kommentare (0) | Autor:

GIT Commits mit PHP auslesen und ausgeben

Dienstag, 30.10.2018 14:51

Möchte man bei einem Projekt die GIT Commits als History ausgeben, kann man folgenden Code dafür nutzen (vorher vielleicht noch schön machen):

$gitDir = '.';
$output = [];
chdir($gitDir);
exec('git log', $output);
$history = [];
foreach($output as $line){
	if(strpos($line, 'commit')===0){
		if(!empty($commit)){
			array_push($history, $commit);
			unset($commit);
		}
		$commit['hash'] = substr($line, strlen('commit'));
	}elseif(strpos($line, 'Author')===0){
		$commit['author'] = substr($line, strlen('Author:'));
	}elseif(strpos($line, 'Date')===0){
		$commit['date'] = substr($line, strlen('Date:'));
	}else{
		if(!isset($commit['message'])){
			$commit['message'] = '';
		}
		$commit['message'] .= $line;
	}
}
$content = '';
foreach($history as $item){
	echo date('d.m.Y H:i:s', strtotime($item['date'])) . ': ' . $item['message'] . "\n";
}

Verbesserungsvorschläge sind gern gesehen!

Thema: PHP | Kommentare (0) | Autor:

TYPO3 Internetagentur Dresden
Diese Webseite verwendet Cookies. Weitere Informationen.