<?php
/**
* About
*
* You may not change or alter any portion of this comment or credits
* of supporting developers from this source code or any supporting source code
* which is considered copyrighted (c) material of the original comment or credit authors.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* @copyright The XOOPS Co.Ltd. http://www.xoops.com.cn
* @copyright XOOPS Project (https://xoops.org)
* @license GNU GPL 2 or later (https://www.gnu.org/licenses/gpl-2.0.html)
* @package about
* @since 1.0.0
* @author Mengjue Shao <magic.shao@gmail.com>
* @author Susheng Yang <ezskyyoung@gmail.com>
*/
use Xmf\Request;
use XoopsModules\About;
use XoopsModules\About\Constants;
use XoopsModules\About\Utility;
use XoopsModules\About\PageHandler;
/** @var Helper $helper */
/** @var PageHandler $pageHandler */
defined('XOOPS_ROOT_PATH') || exit('Restricted access');
//require_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
$pageType = isset($_REQUEST['type']) ? Request::getInt('type', 0) : $pageObj->getVar('page_type');
$format = empty($format) ? 'e' : $format;
$menu_status = $pageObj->isNew() ? 1 : $pageObj->getVar('page_menu_status');
$list_status = $pageObj->isNew() ? 1 : $pageObj->getVar('page_status');
$page_blank = $pageObj->isNew() ? 0 : $pageObj->getVar('page_blank');
$title = $pageObj->isNew() ? _AM_ABOUT_PAGE_INSERT : _AM_ABOUT_EDIT;
$form = new \XoopsThemeForm($title, 'form', 'admin.page.php', 'post', true);
$form->setExtra('enctype="multipart/form-data"');
if (Constants::PAGE_TYPE_PAGE == $pageType) {
$form->addElement(new \XoopsFormText(_AM_ABOUT_PAGE_TITLE, 'page_title', 60, 255, $pageObj->getVar('page_title', $format)), true);
$menu = new \XoopsFormElementTray(_AM_ABOUT_PAGE_MENU_LIST);
$menu->addElement(new \XoopsFormRadioYN('', 'page_menu_status', $menu_status));
$menu->addElement(new \XoopsFormText(_AM_ABOUT_PAGE_MENU_TITLE . ':', 'page_menu_title', 30, 255, $pageObj->getVar('page_menu_title', $format)));
$menu->addElement(new \XoopsFormLabel('', _AM_ABOUT_PAGE_LINK_MENU));
$form->addElement($menu, true);
$editorTray = new \XoopsFormElementTray(_AM_ABOUT_PAGE_TEXT, '<br>');
if (class_exists('XoopsFormEditor')) {
$options['name'] = 'page_text';
$options['value'] = $pageObj->getVar('page_text');
$options['rows'] = 25;
$options['cols'] = '100%';
$options['width'] = '100%';
$options['height'] = '400px';
$pageEditor = new \XoopsFormEditor('', $helper->getConfig('editorAdmin'), $options, $nohtml = false, $onfailure = 'textarea');
$editorTray->addElement($pageEditor);
} else {
$pageEditor = new \XoopsFormDhtmlTextArea('', 'page_text', $pageObj->getVar('page_text'), '100%', '100%');
$editorTray->addElement($pageEditor);
}
$form->addElement($editorTray);
// Template set
$templates = Utility::getTemplateList('page');
if ($templates && is_array($templates)) {
$template_select = new \XoopsFormSelect(_AM_ABOUT_TEMPLATE_SELECT, 'page_tpl', $pageObj->getVar('page_tpl'));
$template_select->addOptionArray($templates);
$form->addElement($template_select);
}
} else {
$form->addElement(new \XoopsFormText(_AM_ABOUT_PAGE_MENU_TITLE . ':', 'page_menu_title', 60, 255, $pageObj->getVar('page_menu_title', $format)));
$form->addElement(new \XoopsFormHidden('page_menu_status', $menu_status));
$form->addElement(new \XoopsFormText(_AM_ABOUT_PAGE_LINK_TEXT, 'page_text', 60, 255, $pageObj->isNew() ? XOOPS_URL . $pageObj->getVar('page_text', $format) : $pageObj->getVar('page_text', $format)), true);
}
// Get list of possible parent pages
$page_list = $pageHandler->getTrees(0, '--');
if (!$pageObj->isNew()) {
$child_list = $pageHandler->getTrees($pageObj->getVar('page_id'));
$page_list = array_diff_key($page_list, $child_list); // remove this class' children from 'parent' list
unset($page_list[$pageObj->getVar('page_id')]); // remove this id from 'parent' list
}
$page_options = [];
if ($page_list) {
foreach ($page_list as $id => $page) {
$page_options[$id] = $page['prefix'] . $page['page_menu_title'];
}
}
$page_select = new \XoopsFormSelect(_AM_ABOUT_PAGE_HIGHER, 'page_pid', $pageObj->getVar('page_pid'));
$page_select->addOption(0, _NONE);
$page_select->addOptionArray($page_options);
$form->addElement($page_select);
$image_tray = new \XoopsFormElementTray(_AM_ABOUT_PAGE_IMAGE);
$image_uploader = new \XoopsFormFile('', 'userfile', 500000);
$image_tray->addElement($image_uploader);
$pageImage = $pageObj->getVar('page_image');
if (!empty($pageImage) && file_exists(XOOPS_ROOT_PATH . '/uploads/' . $xoopsModule->dirname() . '/' . $pageImage)) {
$image_tray->addElement(new \XoopsFormLabel('', '<div style="padding: 8px;"><img src="' . XOOPS_URL . '/uploads/' . $xoopsModule->dirname() . '/' . $pageImage . '"></div>'));
$delete_check = new \XoopsFormCheckBox('', 'delete_image');
$delete_check->addOption(1, _DELETE);
$image_tray->addElement($delete_check);
}
$form->addElement($image_tray);
$form->addElement(new \XoopsFormRadioYN(_AM_ABOUT_PAGE_LINK_BLANK, 'page_blank', $page_blank));
$form->addElement(new \XoopsFormRadioYN(_AM_ABOUT_PAGE_STATUS, 'page_status', $list_status, $yes = _AM_ABOUT_PAGE_SUB, $no = _AM_ABOUT_PAGE_DRAFT));
$form->addElement(new \XoopsFormHidden('id', $pageObj->getVar('page_id')));
$form->addElement(new \XoopsFormHidden('page_type', $pageType));
$form->addElement(new \XoopsFormHidden('op', 'save'));
//$form->addElement(new \XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
$form->addElement(new \XoopsFormButtonTray('submit', _SUBMIT, 'submit'));
return $form;
|