<?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 <[email protected]> 
 * @author         Susheng Yang <[email protected]> 
 */ 
 
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; 
 
 |