function execute(&$form, $action_id) { $config = !empty($form->actions_config[$action_id]) ? $form->actions_config[$action_id] : array(); $config = new \GCore\Libs\Parameter($config); $file_path = $config->get('path'); if (\GCore\Libs\File::exists($file_path)) { \GCore\Libs\Download::send($file_path); } }
function delete_cache() { $path = \GCore\C::get('GCORE_FRONT_PATH') . 'cache' . DS; $files = \GCore\Libs\Folder::getFiles($path); $count = 0; foreach ($files as $k => $file) { if (basename($file) != 'index.html' and basename($file) != 'demos.cf5bak') { $result = \GCore\Libs\File::delete($file); if ($result) { $count++; } } } $session = \GCore\Libs\Base::getSession(); $session->setFlash('info', $count . ' ' . l_('CACHE_FILES_DELETED')); $this->redirect(r_('index.php?ext=chronoforms')); }
function processUpload(&$form, $file_post = array(), $field_name, $file_extensions) { //check valid file if (!\GCore\Libs\Upload::valid($file_post)) { return false; } //check not empty file upload if (!\GCore\Libs\Upload::not_empty($file_post)) { return false; } //check errors if (!isset($file_post['tmp_name']) or !is_uploaded_file($file_post['tmp_name'])) { if (!empty($file_post['error']) and $file_post['error'] !== UPLOAD_ERR_OK) { $form->debug[$action_id][self::$title][] = 'PHP returned this error for file upload by : ' . $field_name . ', PHP error is: ' . $file_post['error']; $form->errors[$field_name] = $file_post['error']; } $this->events['fail'] = 1; return false; } else { $form->debug[$action_id][self::$title][] = 'Upload routine started for file upload by : ' . $field_name; } if ((bool) $this->config->get('safe_file_name', 1) === true) { $file_name = \GCore\Libs\File::makeSafe($file_post['name']); } else { $file_name = utf8_decode($file_post['name']); } $real_file_name = $file_name; $file_tmp_name = $file_post['tmp_name']; $file_info = pathinfo($file_name); //mask the file name if (strlen($this->config->get('forced_file_name', '')) > 0) { $file_name = str_replace('FILE_NAME', $file_name, $this->config->get('forced_file_name', '')); } else { $file_name = date('YmdHis') . '_' . $file_name; } //check the file size if ($file_tmp_name) { //check max size if ($file_post['error'] === UPLOAD_ERR_INI_SIZE) { $form->debug[$action_id][self::$title][] = 'File : ' . $field_name . ' size is over the max PHP configured limit.'; $form->errors[$field_name] = $this->config->get('max_error', 'Sorry, Your uploaded file size (' . $file_post["size"] / 1024 . ' KB) exceeds the allowed limit.'); $this->events['fail'] = 1; return false; } elseif ($file_post["size"] / 1024 > (int) $this->config->get('max_size', 100)) { $form->debug[$action_id][self::$title][] = 'File : ' . $field_name . ' size is over the max limit.'; $form->errors[$field_name] = $this->config->get('max_error', 'Sorry, Your uploaded file size (' . $file_post["size"] / 1024 . ' KB) exceeds the allowed limit.'); $this->events['fail'] = 1; return false; } elseif ($file_post["size"] / 1024 < (int) $this->config->get('min_size', 0)) { $form->debug[$action_id][self::$title][] = 'File : ' . $field_name . ' size is less than the minimum limit.'; $form->errors[$field_name] = $this->config->get('min_error', 'Sorry, Your uploaded file size (' . $file_post["size"] / 1024 . ' KB) is less than the minimum limit.'); $this->events['fail'] = 1; return false; } elseif (!in_array(strtolower($file_info['extension']), $file_extensions)) { $form->debug[$action_id][self::$title][] = 'File : ' . $field_name . ' extension is not allowed.'; $form->errors[$field_name] = $this->config->get('type_error', 'Sorry, Your uploaded file type is not allowed.'); $this->events['fail'] = 1; return false; } else { $uploaded_file = \GCore\Libs\Upload::save($file_tmp_name, $this->upload_path . $file_name); if ($uploaded_file) { $uploaded_file_data = array(); $uploaded_file_data = array('name' => $file_name, 'original_name' => $real_file_name, 'path' => $this->upload_path . $file_name, 'size' => $file_post["size"]); //Try to generate an auto file link $site_link = \GCore\C::get('GCORE_FRONT_URL'); if (substr($site_link, -1) == "/") { $site_link = substr_replace($site_link, '', -1); } $uploaded_file_data['link'] = str_replace(array(\GCore\C::get('GCORE_FRONT_PATH'), DS), array($site_link, "/"), $this->upload_path . $file_name); //$form->data[$field_name] = $file_name; $form->debug[$action_id][self::$title][] = $this->upload_path . $file_name . ' has been uploaded successfully.'; $this->events['success'] = 1; return $uploaded_file_data; } else { $form->debug[$action_id][self::$title][] = $this->upload_path . $file_name . ' could not be uploaded!!'; $this->events['fail'] = 1; return false; } } } }
public function on_list($fld, $ttl, &$data_columns) { $config = new \GCore\Libs\Parameter($this->connection['Connection']['extras']['plugins']['download']); if ($config->get('path_field') and $config->get('download_action')) { $path = $config->get('path_field'); $action = $config->get('download_action'); if ($fld == '_DOWNLOAD_.link') { $link = r_('index.php?ext=chronoconnectivity&cont=lists&act=' . $action . '&ccname=' . $this->connection['Connection']['title'] . '&gcb={' . $this->model->alias . '.' . $this->model->pkey . '}'); $text = $ttl; if ($config->get('display_icon', 1)) { $text = '<i class="fa fa-download fa-fw"></i> ' . $text; } $data_columns[$fld]['html'] = '<a class="' . $config->get('download_link_class', 'btn btn-success btn-xs') . '" href="' . $link . '">' . $text . '</a>'; } $file_info = array(); $file_info['filesize'] = ''; $file_info['filetime'] = ''; $file_info['filename'] = ''; $get_file_info = function ($cell, $row, $column) use($path, $file_info, $config) { $file_path = \GCore\Libs\Arr::getVal($row, explode('.', $path)); if ($config->get('download_path')) { $file_path = rtrim($config->get('download_path'), DS) . DS . $file_path; } //$file_info = array(); if (file_exists($file_path)) { if (is_dir($file_path)) { //this is a folder $files = @\GCore\Libs\Folder::getFiles($file_path, false); foreach ($files as $file) { $found[$file] = filemtime($file); } if (empty($found)) { return false; } arsort($found); $files = array_keys($found); sort($files); $file = array_pop($files); $file_info['filesize'] = \GCore\Libs\File::humanSize(filesize($file)); $file_info['filetime'] = date($config->get('filetime_format', 'd-m-Y H:i'), filemtime($file)); $file_info['filename'] = basename($file); } else { //this is a file $file = $file_path; $file_info['filesize'] = \GCore\Libs\File::humanSize(filesize($file)); $file_info['filetime'] = date($config->get('filetime_format', 'd-m-Y H:i'), filemtime($file)); $file_info['filename'] = basename($file); } } foreach ($file_info as $k => $info) { if ($column == '_DOWNLOAD_.' . $k) { return $file_info[$k]; } } return ''; //$file_info; }; foreach ($file_info as $k => $info) { if ($fld == '_DOWNLOAD_.' . $k) { $data_columns[$fld]['function'] = $get_file_info; } } if ($fld == '_HkkITS_.hot') { $data_columns[$fld]['function'] = create_function('$value,$row', ' if(\\GCore\\Libs\\Arr::getVal($row, explode(".", "' . $download . '"), 0) >= (int)' . $config->get('hot_limit', '1000') . '){ return 1; }else{ return 0; } '); $data_columns[$fld]['html'] = array(0 => '', 1 => '<span class="label label-danger">' . $config->get('hot_text', 'Hot') . '</span>'); } } }
function execute(&$form, $action_id){ $config = $form->actions_config[$action_id]; $config = new \GCore\Libs\Parameter($config); $content = $config->get('content', ""); ob_start(); eval('?>'.$content); $output = ob_get_clean(); //if the content box was empty, display the form output if(empty($output)){ $output = $form->form_output; } $output = \GCore\Libs\Str::replacer($output, $form->data); //begin tcpdf code require_once('tcpdf/config/lang/eng.php'); require_once('tcpdf/tcpdf.php'); // create new PDF document $pdf = new \TCPDF($config->get('pdf_page_orientation', 'P'), PDF_UNIT, $config->get('pdf_page_format', 'A4'), true, 'UTF-8', false); //set protection if enabled if((bool)$config->get('enable_protection', 0) === true){ $owner_pass = ($config->get('owner_pass', "") ? $config->get('owner_pass', "") : null); $perms = (strlen($config->get('permissions', "")) > 0) ? explode(",", $config->get('permissions', "")) : array(); $pdf->SetProtection($perms, $config->get('user_pass', ""), $owner_pass, $config->get('sec_mode', ""), $pubkeys=null); } // set document information $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor($config->get('pdf_author', 'PDF Author.')); $pdf->SetTitle($config->get('pdf_title', 'PDF Title Goes Here.')); $pdf->SetSubject($config->get('pdf_subject', 'Powered by Chronoforms + TCPDF')); $pdf->SetKeywords($config->get('pdf_keywords', 'Chronoforms, PDF Plugin, TCPDF, PDF, '.$form->form['Form']['title'])); // Willian // set header data, font and margins if((bool)$config->get((bool)$config->get('pdf_header_show', 1))){ if(strlen($config->get('pdf_title')) OR strlen($config->get('pdf_header'))){ $pdf->SetHeaderData(false, 0, $config->get('pdf_title', 'PDF Title Goes Here.'), $config->get('pdf_header', 'Powered by Chronoforms + TCPDF')); } $pdf->setHeaderFont(Array($config->get('pdf_header_font', 'helvetica'), '', (int)$config->get('pdf_header_font_size', 10))); $pdf->SetHeaderMargin($config->get('pdf_margin_header', 5)); $pdf->setPrintHeader(true); } else { $pdf->setPrintHeader(false); } // set footer font and margins if((bool)$config->get((bool)$config->get('pdf_footer_show', 1))){ $pdf->setFooterFont(Array($config->get('pdf_footer_font', 'helvetica'), '', (int)$config->get('pdf_footer_font_size', 8))); $pdf->SetFooterMargin($config->get('pdf_margin_footer', 10)); $pdf->setPrintFooter(true); } else { $pdf->setPrintFooter(false); } // set default monospaced font $pdf->SetDefaultMonospacedFont($config->get('pdf_monospaced_font', 'courier')); //set margins $pdf->SetMargins($config->get('pdf_margin_left', 15), $config->get('pdf_margin_top', 27), $config->get('pdf_margin_right', 15)); //set auto page breaks $pdf->SetAutoPageBreak(TRUE, $config->get('pdf_margin_bottom', 25)); //set image scale factor $pdf->setImageScale($config->get('pdf_image_scale_ratio', 1.25)); //set some language-dependent strings $pdf->setLanguageArray($l); // Willian // Mostrar/Esconder Cabeçalho $pdf->setPrintHeader((bool)$config->get('pdf_header_show', 1)); // Mostrar/Esconder Rodapé $pdf->setPrintHeader((bool)$config->get('pdf_footer_show', 1)); // --------------------------------------------------------- // set font $pdf->SetFont($config->get('pdf_body_font', 'courier'), '', (int)$config->get('pdf_body_font_size', 14)); // add a page $pdf->AddPage(); // create some HTML content $css = ""; $output = $css.$output; $html = $output; // output the HTML content $pdf->writeHTML($html, true, false, true, false, ''); // reset pointer to the last page $pdf->lastPage(); //Close and output PDF document if(isset($form->data['pdf_file_name']) && !empty($form->data['pdf_file_name'])){ $PDF_file_name = $form->data['pdf_file_name']; }else{ if(strlen(trim($config->get('pdf_file_name', ''))) > 0){ $PDF_file_name = trim($config->get('pdf_file_name', ''))."_".date('YmdHis'); }else{ $PDF_file_name = $form->form['Form']['title']."_".date('YmdHis'); } } $PDF_view = $config->get('pdf_view', 'I'); if(($PDF_view == 'F') || ($PDF_view == 'FI') || ($PDF_view == 'FD')){ jimport('joomla.utilities.error'); jimport('joomla.filesystem.file'); jimport('joomla.filesystem.folder'); $upload_path = $config->get('pdf_save_path'); if(!empty($upload_path)){ $upload_path = str_replace(array("/", "\\"), DS, $upload_path); if(substr($upload_path, -1) == DS){ $upload_path = substr_replace($upload_path, '', -1); } $upload_path = $upload_path.DS; $config->set('pdf_save_path', $upload_path); }else{ $upload_path = \GCore\C::ext_path('chronoforms', 'front').'pdfs'.DS.$form->form['Form']['title'].DS; } //check the save files path is ok if(!file_exists($upload_path.DS.'index.html')){ if(!\GCore\Libs\Folder::create($upload_path)){ $form->errors[] = "Couldn't create upload directory: ".$upload_path; $this->events['fail'] = 1; return; } $dummy_c = '<html><body bgcolor="#ffffff"></body></html>'; if(!\GCore\Libs\File::write($upload_path.DS.'index.html', $dummy_c)){ $form->errors[] = "Couldn't create upload directory index file."; $this->events['fail'] = 1; return; } } $PDF_file_path = $upload_path.$PDF_file_name.".pdf"; $pdf->Output($PDF_file_path, $PDF_view); //Try to generate an auto file link $site_link = \GCore\C::get('GCORE_FRONT_URL'); if(substr($site_link, -1) == "/"){ $site_link = substr_replace($site_link, '', -1); } if(strlen(trim($config->get('pdf_post_name', ''))) > 0){ $form->files[trim($config->get('pdf_post_name', ''))] = array('name' => $PDF_file_name.".pdf", 'path' => $PDF_file_path, 'size' => 0); $form->files[trim($config->get('pdf_post_name', ''))]['link'] = str_replace(array(\GCore\C::get('GCORE_FRONT_PATH'), DS), array($site_link, "/"), $upload_path.$PDF_file_name.".pdf"); $form->data[trim($config->get('pdf_post_name', ''))] = $PDF_file_name.".pdf"; $form->debug[$action_id][self::$title][] = $PDF_file_path.' has been saved correctly.'; } }else{ $pdf->Output($PDF_file_name.".pdf", $PDF_view); } if($PDF_view != 'F'){ @flush(); @ob_flush(); exit; } }
function restore() { $files = $_FILES; if (is_array($files) and !empty($files)) { $session = \GCore\Libs\Base::getSession(); if (!\GCore\Libs\Upload::valid($files['ccbackup'])) { $session->setFlash('error', l_('CONN_CONNECTIONS_RESTORE_ERROR')); return false; } if (!\GCore\Libs\Upload::not_empty($files['ccbackup'])) { $session->setFlash('error', l_('CONN_CONNECTIONS_RESTORE_ERROR')); return false; } if (!\GCore\Libs\Upload::check_type($files['ccbackup'], array('cc5bak'))) { $session->setFlash('error', l_('CONN_CONNECTIONS_RESTORE_ERROR')); return false; } $path = \GCore\C::get('GCORE_FRONT_PATH') . DS . 'cache'; $uploaded_file = \GCore\Libs\Upload::save($files['ccbackup']['tmp_name'], $path . DS . $files['ccbackup']['name']); if (!$uploaded_file) { $session->setFlash('error', l_('CONN_CONNECTIONS_RESTORE_ERROR')); } else { $data = file_get_contents($path . DS . $files['ccbackup']['name']); \GCore\Libs\File::delete($path . DS . $files['ccbackup']['name']); $connections = unserialize(base64_decode(trim($data))); if (!empty($connections)) { foreach ($connections as $connection) { if (isset($connection['Connection']['id'])) { $connection['Connection']['id'] = null; $connection['Connection']['published'] = 0; $this->Connection->save($connection); } } } $session->setFlash('success', l_('CONN_CONNECTIONS_RESTORED')); $this->redirect(r_('index.php?ext=chronoconnectivity')); } } }