/home/juwent/domains/juwent.com.pl/public_html/wp-content/themes/juwent/app/Modules/ZipGenerator/ZipGenerator.php
                  
                     
  public function addGallery(): ZipGenerator
  {
    if ($this->data['gallery']) {
      $this->generator->addEmptyDir('gallery');
      foreach ($this->data['gallery'] as $id) {
        $image = get_attached_file($id);
        $this->generator->addFile($image, 'gallery/' . basename($image));
      }
    }
    return $this;
  }
 
  public function addAttachments(): ZipGenerator
  {
    if ($this->data['attachments']) {
      $this->generator->addEmptyDir('attachments');
      foreach ($this->data['attachments'] as $id) {
        $attachment = get_attached_file($id);
        $this->generator->addFile($attachment, 'attachments/' . basename($attachment));
      }
    }
    return $this;
  }
 
  public function addVideos(): ZipGenerator
  {
    if ($this->data['videos']) {
      $this->generator->addEmptyDir('gallery');
      foreach ($this->data['videos'] as $id) {
        $video = get_attached_file($id);
        $this->generator->addFile($video, 'videos/' . basename($video));
      }
    }
    return $this;
  }
 
  public function createPdf(): ZipGenerator
  {
    global $sitepress;
                  
                          
              Arguments
          
          
              "ZipArchive::addFile(): Argument #1 ($filepath) cannot be empty"
           
        
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/wp-content/themes/juwent/app/Modules/ZipGenerator/ZipGenerator.php
                  
                     
  public function addGallery(): ZipGenerator
  {
    if ($this->data['gallery']) {
      $this->generator->addEmptyDir('gallery');
      foreach ($this->data['gallery'] as $id) {
        $image = get_attached_file($id);
        $this->generator->addFile($image, 'gallery/' . basename($image));
      }
    }
    return $this;
  }
 
  public function addAttachments(): ZipGenerator
  {
    if ($this->data['attachments']) {
      $this->generator->addEmptyDir('attachments');
      foreach ($this->data['attachments'] as $id) {
        $attachment = get_attached_file($id);
        $this->generator->addFile($attachment, 'attachments/' . basename($attachment));
      }
    }
    return $this;
  }
 
  public function addVideos(): ZipGenerator
  {
    if ($this->data['videos']) {
      $this->generator->addEmptyDir('gallery');
      foreach ($this->data['videos'] as $id) {
        $video = get_attached_file($id);
        $this->generator->addFile($video, 'videos/' . basename($video));
      }
    }
    return $this;
  }
 
  public function createPdf(): ZipGenerator
  {
    global $sitepress;
                  
                
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/wp-content/themes/juwent/app/Modules/ZipGenerator/ZipGenerator.php
                  
                        $zip_name = $name . ".zip";
    $zip_path = WP_CONTENT_DIR . "/zip/$zip_name";
 
    if (!file_exists(WP_CONTENT_DIR . "/tmp_pdf")) {
      mkdir(WP_CONTENT_DIR . "/tmp_pdf");
    }
 
    $paths = [
      'pdf' => $pdf_path,
      'zip' => $zip_path,
    ];
 
    return $paths[$key];
  }
 
  public function generate()
  {
    $this
      ->addGallery()
      ->addAttachments()
      ->addVideos()
      ->createPdf()
      ->addPdfHeader()
      ->addPdfFooter()
      ->addPdfBody()
      ->savePdf()
      ->addPdfToZip()
      ->closeZip()
      ->setPermissions();
 
    $this->setHeaders();
    $this->downloadFile();
    $this->removeFiles();
  }
 
  public function createZip(): ZipArchive
  {
    $zip = new ZipArchive();
 
    if ($zip->open($this->paths('zip'), ZipArchive::CREATE | ZipArchive::OVERWRITE) !== true) {
                  
                
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/wp-content/themes/juwent/app/Modules/ZipGenerator/ZipGeneratorServiceProvider.php
                  
                                add_rewrite_rule('^pobierz/([^/]+)?$', 'index.php?_postId=$matches[1]', 'top');
        });
    }
 
    private function addQueryVars(): void
    {
        add_filter('query_vars', function (array $vars) {
            $vars[] = '_postId';
            return $vars;
        });
    }
 
    private function handleTemplateRedirect(): void
    {
        add_action('template_redirect', function () {
 
            if ($postId = get_query_var('_postId')) {
 
                $zip = app()->make(ZipGeneratorInterface::class, ['postId' => $postId]);
                $zip->generate();
                die();
            }
        });
    }
}
 
                  
                
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/wp-includes/class-wp-hook.php
                  
                     
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
 
            $priority = $this->current_priority[ $nesting_level ];
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if ( ! $this->doing_action ) {
                    $args[0] = $value;
                }
 
                // Avoid the array_slice() if possible.
                if ( 0 === $the_['accepted_args'] ) {
                    $value = call_user_func( $the_['function'] );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, $the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
                  
                
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/wp-includes/class-wp-hook.php
                  
                            } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
     */
    public function do_action( $args ) {
        $this->doing_action = true;
        $this->apply_filters( '', $args );
 
        // If there are recursive calls to the current action, we haven't finished it until we get to the last one.
        if ( ! $this->nesting_level ) {
            $this->doing_action = false;
        }
    }
 
    /**
     * Processes the functions hooked into the 'all' hook.
     *
     * @since 4.7.0
     *
     * @param array $args Arguments to pass to the hook callbacks. Passed by reference.
     */
    public function do_all_hook( &$args ) {
        $nesting_level                      = $this->nesting_level++;
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        do {
            $priority = current( $this->iterations[ $nesting_level ] );
                  
                
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/wp-includes/plugin.php
                  
                        if ( ! isset( $wp_filter[ $hook_name ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
 
        return;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $hook_name;
    }
 
    if ( empty( $arg ) ) {
        $arg[] = '';
    } elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
        // Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
        $arg[0] = $arg[0][0];
    }
 
    $wp_filter[ $hook_name ]->do_action( $arg );
 
    array_pop( $wp_current_filter );
}
 
/**
 * Calls the callback functions that have been added to an action hook, specifying arguments in an array.
 *
 * @since 2.1.0
 *
 * @see do_action() This function is identical, but the arguments passed to the
 *                  functions hooked to `$hook_name` are supplied using an array.
 *
 * @global WP_Hook[] $wp_filter         Stores all of the filters and actions.
 * @global int[]     $wp_actions        Stores the number of times each action was triggered.
 * @global string[]  $wp_current_filter Stores the list of current filters with the current one last.
 *
 * @param string $hook_name The name of the action to be executed.
 * @param array  $args      The arguments supplied to the functions hooked to `$hook_name`.
 */
function do_action_ref_array( $hook_name, $args ) {
                  
                
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/wp-includes/template-loader.php
                  
                    <?php
/**
 * Loads the correct template based on the visitor's url
 *
 * @package WordPress
 */
if ( wp_using_themes() ) {
    /**
     * Fires before determining which template to load.
     *
     * @since 1.5.0
     */
    do_action( 'template_redirect' );
}
 
/**
 * Filters whether to allow 'HEAD' requests to generate content.
 *
 * Provides a significant performance bump by exiting before the page
 * content loads for 'HEAD' requests. See #14348.
 *
 * @since 3.5.0
 *
 * @param bool $exit Whether to exit without generating any content for 'HEAD' requests. Default true.
 */
if ( 'HEAD' === $_SERVER['REQUEST_METHOD'] && apply_filters( 'exit_on_http_head', true ) ) {
    exit;
}
 
// Process feeds and trackbacks even if not using themes.
if ( is_robots() ) {
    /**
     * Fired when the template loader determines a robots.txt request.
     *
     * @since 2.1.0
     */
    do_action( 'do_robots' );
    return;
} elseif ( is_favicon() ) {
    /**
                  
                
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/wp-blog-header.php
                  
                    <?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
                  
                          
              Arguments
          
          
              "/home/juwent/domains/juwent.com.pl/public_html/wp-includes/template-loader.php"
           
        
                
       
            
        
                                /home/juwent/domains/juwent.com.pl/public_html/index.php
                  
                    <?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );
 
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
 
                  
                          
              Arguments
          
          
              "/home/juwent/domains/juwent.com.pl/public_html/wp-blog-header.php"