Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/ninja-fo.../includes/Exports
File: TempFileWriter.php
<?php
[0] Fix | Delete
[1] Fix | Delete
/**
[2] Fix | Delete
* Writes temporary files for attachment and uploading
[3] Fix | Delete
*/
[4] Fix | Delete
class NF_Exports_TempFileWriter {
[5] Fix | Delete
[6] Fix | Delete
/**
[7] Fix | Delete
* Content to be written to file
[8] Fix | Delete
*
[9] Fix | Delete
* Can send a single string or an array of stringed content
[10] Fix | Delete
* @var string|array
[11] Fix | Delete
*/
[12] Fix | Delete
protected $content;
[13] Fix | Delete
[14] Fix | Delete
/**
[15] Fix | Delete
*
[16] Fix | Delete
* @var resource
[17] Fix | Delete
*/
[18] Fix | Delete
protected $tempFile;
[19] Fix | Delete
[20] Fix | Delete
/**
[21] Fix | Delete
* Directory of final file location
[22] Fix | Delete
* @var array
[23] Fix | Delete
*/
[24] Fix | Delete
protected $dir = [];
[25] Fix | Delete
[26] Fix | Delete
/**
[27] Fix | Delete
* Temp file name at time of upload, before renaming
[28] Fix | Delete
* @var array
[29] Fix | Delete
*/
[30] Fix | Delete
protected $basename = [];
[31] Fix | Delete
[32] Fix | Delete
/**
[33] Fix | Delete
* Full file name with path as attached to email
[34] Fix | Delete
* @var array
[35] Fix | Delete
*/
[36] Fix | Delete
protected $attachmentFilename = [];
[37] Fix | Delete
[38] Fix | Delete
/**
[39] Fix | Delete
* File path information
[40] Fix | Delete
* @var array
[41] Fix | Delete
*/
[42] Fix | Delete
protected $fileinfo = [];
[43] Fix | Delete
[44] Fix | Delete
/**
[45] Fix | Delete
* Upload directory path
[46] Fix | Delete
* @var string
[47] Fix | Delete
*/
[48] Fix | Delete
protected $uploadDir;
[49] Fix | Delete
[50] Fix | Delete
/**
[51] Fix | Delete
* Construct with the content to be written
[52] Fix | Delete
* @param string $content
[53] Fix | Delete
*/
[54] Fix | Delete
public function __construct($content) {
[55] Fix | Delete
if (is_array($content)) {
[56] Fix | Delete
[57] Fix | Delete
$this->content = $content;
[58] Fix | Delete
} else {
[59] Fix | Delete
$this->content = [$content];
[60] Fix | Delete
}
[61] Fix | Delete
// set upload director to /uploads
[62] Fix | Delete
$dir = wp_upload_dir();
[63] Fix | Delete
$this->uploadDir = $dir['path'];
[64] Fix | Delete
}
[65] Fix | Delete
[66] Fix | Delete
/**
[67] Fix | Delete
* Write files to temporary location
[68] Fix | Delete
* @return NfScheduledSubmissionExports\Storage\TempFileWriter
[69] Fix | Delete
*/
[70] Fix | Delete
public function writeFiles() {
[71] Fix | Delete
$this->writeTempFile();
[72] Fix | Delete
$this->renameFile();
[73] Fix | Delete
return $this;
[74] Fix | Delete
}
[75] Fix | Delete
[76] Fix | Delete
/**
[77] Fix | Delete
* Returns array of temp filenames, first file name if single
[78] Fix | Delete
* @param bool $single
[79] Fix | Delete
*/
[80] Fix | Delete
public function getFileInfo(bool $single = false) {
[81] Fix | Delete
$this->constructFileInfo();
[82] Fix | Delete
if ($single && isset($this->fileinfo[0])) {
[83] Fix | Delete
$return = $this->fileinfo[0];
[84] Fix | Delete
} else {
[85] Fix | Delete
$return = $this->fileinfo;
[86] Fix | Delete
}
[87] Fix | Delete
[88] Fix | Delete
return $return;
[89] Fix | Delete
}
[90] Fix | Delete
[91] Fix | Delete
public function getAttachmentNames(bool $single = false) {
[92] Fix | Delete
if ($single && !empty($this->attachmentFilename)) {
[93] Fix | Delete
$arrayKeys = array_keys($this->attachmentFilename);
[94] Fix | Delete
$return = $this->attachmentFilename[$arrayKeys[0]];
[95] Fix | Delete
} else {
[96] Fix | Delete
$return = $this->attachmentFilename;
[97] Fix | Delete
}
[98] Fix | Delete
[99] Fix | Delete
return $return;
[100] Fix | Delete
}
[101] Fix | Delete
[102] Fix | Delete
protected function constructFileInfo() {
[103] Fix | Delete
$this->fileinfo = [];
[104] Fix | Delete
foreach ($this->attachmentFilename as $index => $filename) {
[105] Fix | Delete
[106] Fix | Delete
$this->fileinfo[$index] = array_merge(pathinfo($filename), wp_upload_dir());
[107] Fix | Delete
}
[108] Fix | Delete
}
[109] Fix | Delete
[110] Fix | Delete
/**
[111] Fix | Delete
* Generate the FileInfo for a given filename
[112] Fix | Delete
*
[113] Fix | Delete
* @param string $filename
[114] Fix | Delete
* @return array
[115] Fix | Delete
*/
[116] Fix | Delete
public static function generateFileInfo($filename) {
[117] Fix | Delete
$array= array_merge(pathinfo($filename), wp_upload_dir());
[118] Fix | Delete
$array['attachmentName']=$filename;
[119] Fix | Delete
return $array;
[120] Fix | Delete
}
[121] Fix | Delete
[122] Fix | Delete
/**
[123] Fix | Delete
* Write contents to temporary file location
[124] Fix | Delete
*/
[125] Fix | Delete
protected function writeTempFile() {
[126] Fix | Delete
$path = trailingslashit($this->uploadDir);
[127] Fix | Delete
[128] Fix | Delete
foreach (array_keys($this->content) as $index) {
[129] Fix | Delete
// create temporary file
[130] Fix | Delete
$tempFilename = tempnam($path, 'Sub');
[131] Fix | Delete
$pathinfo = pathinfo($tempFilename);
[132] Fix | Delete
$this->dir[$index] = $pathinfo['dirname'];
[133] Fix | Delete
$this->basename[$index] = $pathinfo['basename'];
[134] Fix | Delete
[135] Fix | Delete
$this->tempFile[$index] = fopen($tempFilename, 'r+');
[136] Fix | Delete
[137] Fix | Delete
// write to temp file
[138] Fix | Delete
fwrite($this->tempFile[$index], $this->content[$index]);
[139] Fix | Delete
fclose($this->tempFile[$index]);
[140] Fix | Delete
}
[141] Fix | Delete
}
[142] Fix | Delete
[143] Fix | Delete
/**
[144] Fix | Delete
* Rename temp file to permanent file name
[145] Fix | Delete
* @param string $filename
[146] Fix | Delete
* @return string
[147] Fix | Delete
*/
[148] Fix | Delete
protected function renameFile() {
[149] Fix | Delete
$filename = apply_filters('ninja_forms_submission_csv_name', 'ninja-forms-submission');
[150] Fix | Delete
foreach (array_keys($this->content) as $index) {
[151] Fix | Delete
// remove a file if it already exists
[152] Fix | Delete
if (file_exists($this->dir[$index] . '/' . $filename . "_$index.csv")) {
[153] Fix | Delete
unlink($this->dir[$index] . '/' . $filename . "_$index.csv");
[154] Fix | Delete
}
[155] Fix | Delete
[156] Fix | Delete
$this->attachmentFilename[$index] = $this->dir[$index] . '/' . $filename . "_$index.csv";
[157] Fix | Delete
// move file
[158] Fix | Delete
rename($this->dir[$index] . '/' . $this->basename[$index], $this->attachmentFilename[$index]);
[159] Fix | Delete
}
[160] Fix | Delete
}
[161] Fix | Delete
[162] Fix | Delete
/**
[163] Fix | Delete
* Delete file from directory after email with attachment has been sent
[164] Fix | Delete
*/
[165] Fix | Delete
public function dropAttachmentFiles() {
[166] Fix | Delete
foreach (array_keys($this->attachmentFilename) as $index) {
[167] Fix | Delete
// remove a file if it already exists
[168] Fix | Delete
self::dropAttachmentFile($this->attachmentFilename[$index]);
[169] Fix | Delete
}
[170] Fix | Delete
}
[171] Fix | Delete
[172] Fix | Delete
/**
[173] Fix | Delete
* Drop (delete) a given filename
[174] Fix | Delete
*
[175] Fix | Delete
* @param string $filename
[176] Fix | Delete
*/
[177] Fix | Delete
public static function dropAttachmentFile($filename) {
[178] Fix | Delete
if (file_exists($filename)) {
[179] Fix | Delete
unlink($filename);
[180] Fix | Delete
}
[181] Fix | Delete
}
[182] Fix | Delete
[183] Fix | Delete
}
[184] Fix | Delete
[185] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function