/home/juwent/domains/juwent.com.pl/public_html/wp-content/themes/juwent/vendor/mpdf/mpdf/src/Mpdf.php
$html = str_replace("'", "'", $html);
$html = str_replace(""", '"', $html);
$html = str_replace("&", "&", $html);
return $html;
}
function AdjustHTML($html, $tabSpaces = 8)
{
$limit = ini_get('pcre.backtrack_limit');
if (0 >= (int) $limit) {
throw new \Mpdf\MpdfException(sprintf(
'mPDF will not process HTML with disabled pcre.backtrack_limit to prevent unexpected behaviours, please set a positive backtrack limit.',
$limit
));
}
if (strlen($html) > (int) $limit) {
throw new \Mpdf\MpdfException(sprintf(
'The HTML code size is larger than pcre.backtrack_limit %d. You should use WriteHTML() with smaller string lengths. Pass your HTML in smaller chunks.',
$limit
));
}
preg_match_all("/(<annotation.*?>)/si", $html, $m);
if (count($m[1])) {
for ($i = 0; $i < count($m[1]); $i++) {
$sub = preg_replace("/\n/si", Mpdf::OBJECT_IDENTIFIER, $m[1][$i]);
$html = preg_replace('/' . preg_quote($m[1][$i], '/') . '/si', $sub, $html);
}
}
preg_match_all("/(<svg.*?<\/svg>)/si", $html, $svgi);
if (count($svgi[0])) {
for ($i = 0; $i < count($svgi[0]); $i++) {
$file = $this->cache->write('/_tempSVG' . uniqid(random_int(1, 100000), true) . '_' . $i . '.svg', $svgi[0][$i]);
$html = str_replace($svgi[0][$i], '<img src="' . $file . '" />', $html);
}
}
Arguments
"The HTML code size is larger than pcre.backtrack_limit 5000000. You should use WriteHTML() with smaller string lengths. Pass your HTML in smaller chunks."
/home/juwent/domains/juwent.com.pl/public_html/wp-content/themes/juwent/vendor/mpdf/mpdf/src/Mpdf.php
// Close any open block tags
$arr = [];
$ai = 0;
for ($b = $this->blklvl; $b > 0; $b--) {
$this->tag->CloseTag($this->blk[$b]['tag'], $arr, $ai);
}
// Output any text left in buffer
if (count($this->textbuffer)) {
$this->printbuffer($this->textbuffer);
}
$this->bufferoutput = true;
$this->textbuffer = [];
$this->headerbuffer = '';
$properties = $this->cssManager->MergeCSS('BLOCK', 'BODY', '');
$this->setCSS($properties, '', 'BODY');
}
mb_internal_encoding('UTF-8');
$html = $this->AdjustHTML($html, $this->tabSpaces); // Try to make HTML look more like XHTML
if ($this->autoScriptToLang) {
$html = $this->markScriptToLang($html);
}
preg_match_all('/<htmlpageheader([^>]*)>(.*?)<\/htmlpageheader>/si', $html, $h);
for ($i = 0; $i < count($h[1]); $i++) {
if (preg_match('/name=[\'|\"](.*?)[\'|\"]/', $h[1][$i], $n)) {
$this->pageHTMLheaders[$n[1]]['html'] = $h[2][$i];
$this->pageHTMLheaders[$n[1]]['h'] = $this->_getHtmlHeight($h[2][$i]);
}
}
preg_match_all('/<htmlpagefooter([^>]*)>(.*?)<\/htmlpagefooter>/si', $html, $f);
for ($i = 0; $i < count($f[1]); $i++) {
if (preg_match('/name=[\'|\"](.*?)[\'|\"]/', $f[1][$i], $n)) {
$this->pageHTMLfooters[$n[1]]['html'] = $f[2][$i];
$this->pageHTMLfooters[$n[1]]['h'] = $this->_getHtmlHeight($f[2][$i]);
}
}
/home/juwent/domains/juwent.com.pl/public_html/wp-content/themes/juwent/app/Modules/ZipGenerator/ZipGenerator.php
$pattern = '/(width[:][\s]*[\d]*[.]?[\d]*[%;]*[px;]*)/i';
foreach ($variants as $key => $variant) {
$variants[$key] = preg_replace($pattern, '', $variant);
}
}
ini_set("pcre.backtrack_limit", "5000000");
$html = view('pdf.body', [
'reference' => $this->data['reference'],
'name' => $this->post->post_title,
'short_description' => $this->data['short_description'],
'description' => $this->data['description'],
'thumbnail' => $this->data['thumbnail'],
'variants' => $variants ?? null,
'lang' => $this->lang->getLanguageCode(),
]);
$this->mpdf->WriteHTML($html);
return $this;
}
public function savePdf(): ZipGenerator
{
$path = $this->paths('pdf');
$this->mpdf->Output($path, \Mpdf\Output\Destination::FILE);
return $this;
}
public function addPdfToZip(): ZipGenerator
{
$this->generator->addFile($this->paths('pdf'), basename($this->paths('pdf')));
return $this;
}
public function closeZip(): ZipGenerator
/home/juwent/domains/juwent.com.pl/public_html/wp-content/themes/juwent/app/Modules/ZipGenerator/ZipGenerator.php
}
$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) {
throw new \Exception($zip->getStatusString());
};
return $zip;
}
/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"