[ SYSTEM ]: Linux wordpress 6.1.0-44-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
[ SERVER ]: Apache/2.4.66 (Debian) | PHP: 8.2.30
[ USER ]: www-data | IP: 172.19.30.54
GEFORCE FILE MANAGER
/
var
/
www
/
html
/
wordpress
/
wp-content
/
plugins
/
elementor
/
modules
/
atomic-widgets
/
template-renderer
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📄 single-file-loader.php
2,292 B
SET
[ EDIT ]
|
[ DEL ]
📄 template-renderer.php
1,358 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: single-file-loader.php
<?php namespace Elementor\Modules\AtomicWidgets\TemplateRenderer; use ElementorDeps\Twig\Error\LoaderError; use ElementorDeps\Twig\Loader\LoaderInterface; use ElementorDeps\Twig\Source; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Single_File_Loader implements LoaderInterface { private $templates = []; private $validity_cache = []; public function getSourceContext( string $name ): Source { $path = $this->get_template_path( $name ); return new Source( // This is safe to use because we're validating the file path inside `get_template_path`. // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents file_get_contents( $path ), $name, $path ); } public function getCacheKey( string $name ): string { return $this->get_template_path( $name ); } public function isFresh( string $name, int $time ): bool { $path = $this->get_template_path( $name ); return filemtime( $path ) < $time; } public function exists( string $name ) { $path = $this->templates[ $name ] ?? null; return $this->is_valid_file( $path ); } public function is_registered( string $name ): bool { return isset( $this->templates[ $name ] ); } public function register( string $name, string $path ): self { if ( ! $this->is_valid_file( $path ) ) { throw new LoaderError( esc_html( "Invalid template '{$name}': {$path}" ) ); } $this->templates[ $name ] = $path; return $this; } private function get_template_path( string $name ): string { $path = $this->templates[ $name ] ?? null; if ( ! $this->is_valid_file( $path ) ) { throw new LoaderError( esc_html( "Invalid template '{$name}': {$path}" ) ); } return $path; } private function is_valid_file( $path ): bool { if ( ! $path ) { return false; } if ( isset( $this->validity_cache[ $path ] ) ) { return $this->validity_cache[ $path ]; } // Ref: https://github.com/twigphp/Twig/blob/8432946eeeca009d75fc7fc568f3c3f4650f5a0f/src/Loader/FilesystemLoader.php#L260 if ( str_contains( $path, "\0" ) ) { throw new LoaderError( 'A template name cannot contain NULL bytes.' ); } $is_valid = is_file( $path ) && is_readable( $path ); $this->validity_cache[ $path ] = $is_valid; return $is_valid; } }