public static function clearTemplateBlockCache( $objectID, $checkViewCacheClassSettings = false )
    {
        // ordinary template block cache
        eZContentObject::expireTemplateBlockCache();

        if ( empty( $objectID ) )
            return;

        // subtree template block cache
        $nodeList = false;

        if ( is_array( $objectID ) )
        {
            $objects = eZContentObject::fetchIDArray( $objectID );
        }
        else
        {
            $objects = array( $objectID => eZContentObject::fetch( $objectID ) );
        }

        $ini = eZINI::instance( 'viewcache.ini' );
        foreach ( $objects as $object )
        {
            if ( $object instanceof eZContentObject )
            {
                $getAssignedNodes = true;
                if ( $checkViewCacheClassSettings )
                {
                    $objectClassIdentifier = $object->attribute('class_identifier');
                    if ( $ini->hasVariable( $objectClassIdentifier, 'ClearCacheBlocks' )
                      && $ini->variable( $objectClassIdentifier, 'ClearCacheBlocks' ) === 'disabled' )
                    {
                        $getAssignedNodes = false;
                    }
                }

                if ( $getAssignedNodes )
                {
                    $nodeList = array_merge( ( $nodeList !== false ? $nodeList : array() ), $object->assignedNodes() );
                }
            }
        }

        eZSubtreeCache::cleanup( $nodeList );
    }