Skip to content

Commit

Permalink
Add compatibility with Timber 2.x
Browse files Browse the repository at this point in the history
  • Loading branch information
gchtr committed Aug 18, 2023
1 parent 7aa0659 commit c44ea0c
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 3 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"require": {
"composer/installers": "^1.0 || ^2.0",
"php": ">=7.4.0",
"timber/timber": "^1.19"
"timber/timber": "^1.19 || ^2.0.0-rc.1"
},
"require-dev": {
"wpackagist-plugin/advanced-custom-fields": "5.*",
Expand Down
36 changes: 34 additions & 2 deletions lib/Timmy.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,11 @@ public static function init() {
add_action( 'after_setup_theme', [ $self, 'after_setup_theme' ] );

// Add filters and functions to integrate Timmy into Timber and Twig.
add_filter( 'timber/twig', [ $self, 'filter_twig' ] );
if ( version_compare( \Timber\Timber::$version, '2.0.0', '>=' ) ) {
add_filter('timber/twig/filters', [ $self, 'filter_twig' ]);
} else {
add_filter( 'timber/twig', [ $self, 'filter_twig_legacy' ] );
}

add_filter( 'timmy/resize/ignore', array( __CLASS__, 'ignore_unallowed_files' ), 10, 2 );
}
Expand Down Expand Up @@ -167,14 +171,42 @@ public static function get_image( $attachment, $size ) {
return $image;
}

/**
* Adds Twig filters.
*
* @param array $filters
*
* @return array
*/
public function filter_twig( array $filters ) {
$filters['get_timber_image'] = [ 'callable' => 'get_timber_image' ];
$filters['get_timber_image_src'] = [ 'callable' => 'get_timber_image_src' ];
$filters['get_timber_image_srcset'] = [ 'callable' => 'get_timber_image_srcset' ];
$filters['get_timber_image_responsive'] = [ 'callable' => 'get_timber_image_responsive' ];
$filters['get_timber_image_responsive_src'] = [ 'callable' => 'get_timber_image_responsive_src' ];
$filters['get_timber_picture_responsive'] = [ 'callable' => 'get_timber_picture_responsive' ];
$filters['lazy'] = [ 'callable' => 'make_timber_image_lazy' ];
$filters['get_timmy_image'] = [ 'callable' => [ '\Timmy\Timmy', 'get_image' ] ];

// ACF.
$filters['get_timber_image_responsive_acf'] = [ 'callable' => 'get_timber_image_responsive_acf' ];

// Image texts.
$filters['get_timber_image_alt'] = [ 'callable' => 'get_timber_image_alt' ];
$filters['get_timber_image_caption'] = [ 'callable' => 'get_timber_image_caption' ];
$filters['get_timber_image_description'] = [ 'callable' => 'get_timber_image_description' ];

return $filters;
}

/**
* Set filters to use Timmy filters and functions in Twig.
*
* @param \Twig\Environment $twig The Twig Environment instance.
*
* @return \Twig\Environment $twig
*/
public function filter_twig( $twig ) {
public function filter_twig_legacy( $twig ) {
$twig->addFilter( new Twig_Filter( 'get_timber_image', 'get_timber_image' ) );
$twig->addFilter( new Twig_Filter( 'get_timber_image_src', 'get_timber_image_src' ) );
$twig->addFilter( new Twig_Filter( 'get_timber_image_srcset', 'get_timber_image_srcset' ) );
Expand Down

0 comments on commit c44ea0c

Please sign in to comment.