OwlCyberSecurity - MANAGER
Edit File: Edit.php
<?php /** * @copyright Copyright (c) 2009-2022 ThemeCatcher (https://www.themecatcher.net) */ class Quform_Admin_Page_Entries_Edit extends Quform_Admin_Page_Entries { /** * @var Quform_Form_Factory */ protected $formFactory; /** * @var Quform_Uploader */ protected $uploader; /** * @var Quform_Session */ protected $session; /** * @param Quform_ViewFactory $viewFactory * @param Quform_Repository $repository * @param Quform_Form_Factory $formFactory * @param Quform_Uploader $uploader * @param Quform_Session $session */ public function __construct(Quform_ViewFactory $viewFactory, Quform_Repository $repository, Quform_Form_Factory $formFactory, Quform_Uploader $uploader, Quform_Session $session) { parent::__construct($viewFactory, $repository); $this->formFactory = $formFactory; $this->uploader = $uploader; $this->session = $session; } public function init() { $this->template = QUFORM_TEMPLATE_PATH . '/admin/entries/edit.php'; } /** * Enqueue the page styles */ protected function enqueueStyles() { wp_enqueue_style('quform-select2', Quform::url('css/select2.min.css'), array(), '4.0.13'); parent::enqueueStyles(); } /** * Enqueue the page scripts */ protected function enqueueScripts() { wp_deregister_script('jquery-form'); wp_enqueue_script('jquery-form', Quform::url('js/jquery.form.min.js'), array('jquery'), '4.3.0', true); wp_enqueue_script('quform-select2', Quform::url('js/select2.min.js'), array('jquery'), '4.0.13', true); parent::enqueueScripts(); wp_enqueue_script('quform-entries-edit', Quform::adminUrl('js/entries.edit.min.js'), array('jquery'), QUFORM_VERSION, true); wp_localize_script('quform-entries-edit', 'quformEntriesEditL10n', array( 'none' => __('None', 'quform'), 'searchUsersNonce' => wp_create_nonce('quform_entries_search_users') )); } /** * Set the page title * * @return string */ protected function getAdminTitle() { return __('Edit Entry', 'quform'); } /** * Get the HTML for the admin navigation menu * * @param array|null $currentForm The data for the current form (if any) * @param array $extra Extra HTML to add to the nav, the array key is the hook position * @return string */ public function getNavHtml(array $currentForm = null, array $extra = array()) { $extra[10] = sprintf( '<div class="qfb-nav-item"><a class="qfb-nav-item-link" href="%s"><i class="qfb-icon qfb-icon-arrow-left"></i></a></div>', esc_url(add_query_arg(array( 'id' => $currentForm['id'], 'sp' => false, 'eid' => false, 'read' => false, 'unread' => false, 'error' => false, 'deleted' => false ))) ); $extra[40] = sprintf( '<div class="qfb-nav-item qfb-nav-page-info"><i class="qfb-nav-page-icon qfb-mdi qfb-mdi-message"></i><span class="qfb-nav-page-title">%s</span></div>', /* translators: %s: the form name */ Quform::escape(sprintf(__('Editing entry for %s', 'quform'), $currentForm['name'])) ); return parent::getNavHtml($currentForm, $extra); } /** * Process this page and send data to the view */ public function process() { if ( ! current_user_can('quform_edit_entries')) { wp_die(__( 'You do not have sufficient permissions to access this page.', 'quform'), 403); } $entryId = isset($_GET['eid']) && is_numeric($_GET['eid']) ? (int) $_GET['eid'] : null; $entry = $this->repository->findEntry($entryId); if ( ! is_array($entry)) { wp_die(__("You attempted to edit an item that doesn't exist. Perhaps it was deleted?", 'quform')); } $formId = $this->repository->getFormIdFromEntryId($entryId); $config = $this->repository->getConfig($formId); if ( ! is_array($config)) { wp_die(__("You attempted to edit an item that doesn't exist. Perhaps it was deleted?", 'quform')); } $uniqueId = Quform_Form::generateUniqueId(); while ($this->session->has(sprintf('quform-%s', $uniqueId))) { $uniqueId = Quform_Form::generateUniqueId(); } $config['uniqueId'] = $uniqueId; $config['entryId'] = $entryId; $config['environment'] = 'editEntry'; $form = $this->formFactory->create($config); $form->setValues(array(), true); foreach ($entry as $key => $value) { if (preg_match('/element_(\d+)/', $key, $matches)) { $form->setValueFromStorage($matches[1], $value); unset($entry[$key]); } } // Save currently saved uploads into session $this->uploader->saveFileUploadValuesIntoSession($form); // Mark as read if ($entry['unread'] == 1) { $this->repository->readEntries(array($entry['id'])); } // Get label data from label IDs $entry['labels'] = $this->repository->getEntryLabels($entryId); $data = array( 'form' => $form, 'entry' => $entry, 'labels' => $this->repository->getFormEntryLabels($form->getId()) ); $this->view->with($data); } }