%PDF- %PDF-
| Direktori : /home1/lightco1/www/administrator/components/com_virtuemart/views/userfields/ |
| Current File : //home1/lightco1/www/administrator/components/com_virtuemart/views/userfields/view.html.php |
<?php
/**
*
* List/add/edit/remove Userfields
*
* @package VirtueMart
* @subpackage Userfields
* @author Oscar van Eijk
* @link http://www.virtuemart.net
* @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* VirtueMart is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* @version $Id: view.html.php 9041 2015-11-05 11:59:38Z Milbo $
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
// Load the view framework
if(!class_exists('VmViewAdmin'))require(VMPATH_ADMIN.DS.'helpers'.DS.'vmviewadmin.php');
/**
* HTML View class for maintaining the list of order types
*
* @package VirtueMart
* @subpackage Userfields
* @author Oscar van Eijk
*/
class VirtuemartViewUserfields extends VmViewAdmin {
function display($tpl = null) {
VmConfig::loadJLang('com_virtuemart_shoppers',TRUE);
$option = vRequest::getCmd( 'option');
$mainframe = JFactory::getApplication() ;
if (!class_exists('VmHTML'))
require(VMPATH_ADMIN . DS . 'helpers' . DS . 'html.php');
$layoutName = vRequest::getCmd('layout', 'default');
$model = VmModel::getModel();
// The list of fields which can't be toggled
//$lists['coreFields']= array( 'name','username', 'email', 'password', 'password2' );
$lists['coreFields'] = $model->getCoreFields();
if ($layoutName == 'edit') {
$this->editor = JFactory::getEditor();
$this->userField = $model->getUserfield();
//vmdebug('user plugin $this->userField',$this->userField);
$this->SetViewTitle('USERFIELD',$this->userField->name );
$this->assignRef('viewName',$viewName);
$userFieldPlugin = '';
if (!class_exists('ShopFunctions'))
require(VMPATH_ADMIN . DS . 'helpers' . DS . 'shopfunctions.php');
$this->ordering = ShopFunctions::renderOrderingList('userfields','name',$this->userField->ordering);
if ($this->userField->virtuemart_userfield_id < 1) { // Insert new userfield
$userFieldValues = array();
$attribs = '';
$lists['type'] = JHtml::_('select.genericlist', $this->_getTypes(), 'type', $attribs, 'type', 'text', $this->userField->type);
} else { // Update existing userfield
// Ordering dropdown
$userFieldValues = $model->getUserfieldValues();
$lists['type'] = $this->_getTypes($this->userField->type)
. '<input id="type" type="hidden" name="type" value="'.$this->userField->type.'" />';
if (strpos($this->userField->type, 'plugin') !==false) {
$userFieldPlugin = self::renderUserfieldPlugin(substr($this->userField->type, 6),$this->userField);
}
}
$this->assignRef('userFieldPlugin', $userFieldPlugin);
JToolBarHelper::divider();
JToolBarHelper::save();
JToolBarHelper::apply();
JToolBarHelper::cancel();
$notoggle = ''; // (in_array($this->userField->name, $lists['coreFields']) ? 'class="readonly"' : '');
// Vendor selection
$this->lists['vendors'] = '';
if($this->showVendors()){
$lists['vendors']= ShopFunctions::renderVendorList($this->userField->virtuemart_vendor_id);
}
// Shopper groups for EU VAT Id
$shoppergroup_model = VmModel::getModel('shoppergroup');
$shoppergroup_list = $shoppergroup_model->getShopperGroups(true);
array_unshift($shoppergroup_list,'0');
$lists['shoppergroups'] = JHtml::_('select.genericlist', $shoppergroup_list, 'virtuemart_shoppergroup_id', '', 'virtuemart_shoppergroup_id', 'shopper_group_name', $this->userField->get('virtuemart_shoppergroup_id'));
// Minimum age select
$ages = array();
for ($i = 13; $i <= 25; $i++) {
$ages[] = array('key' => $i, 'value' => $i.' '.vmText::_('COM_VIRTUEMART_YEAR_S'));
}
$lists['minimum_age'] = JHtml::_('select.genericlist', $ages, 'minimum_age', '', 'key', 'value', $this->userField->get('minimum_age', 18));
// Web address types
$webaddress_types = array(
array('key' => 0, 'value' => vmText::_('COM_VIRTUEMART_USERFIELDS_URL_ONLY'))
,array('key' => 2, 'value' => vmText::_('COM_VIRTUEMART_USERFIELDS_HYPERTEXT_URL'))
);
$lists['webaddresstypes'] = JHtml::_('select.genericlist', $webaddress_types, 'webaddresstype', '', 'key', 'value', $this->userField->get('webaddresstype'));
// Userfield values
if (($n = count($userFieldValues)) < 1) {
$lists['userfield_values'] =
'<tr>'
.'<td><input type="text" value="" name="vValues[0]" /></td>'
.'<td><input type="text" size="50" value="" name="vNames[0]" /></td>'
.'</tr>';
$i = 1;
} else {
$lists['userfield_values'] = '';
$lang =JFactory::getLanguage();
for ($i = 0; $i < $n; $i++) {
$translate= $lang->hasKey($userFieldValues[$i]->fieldtitle) ? " (".vmText::_($userFieldValues[$i]->fieldtitle).")" : "";
$lists['userfield_values'] .=
'<tr>'
.'<td><input type="text" value="'.$userFieldValues[$i]->fieldvalue.'" name="vValues['.$i.']" /></td>'
.'<td><input type="text" size="50" value="'.$userFieldValues[$i]->fieldtitle.'" name="vNames['.$i.']" />'.$translate.'<input type="button" class="button deleteRow" value=" - " /></td>'
.'</tr>';
}
}
$this->valueCount = --$i;
$userFieldTable = $model->getTable();
$this->existingFields = '"'.implode('","',$userFieldTable->showFullColumns(0,'Field')).'"';
// Toggles
$lists['required'] = VmHTML::row('booleanlist','COM_VIRTUEMART_FIELDMANAGER_REQUIRED','required',$this->userField->required,$notoggle);
$lists['published'] = VmHTML::row('booleanlist','COM_VIRTUEMART_PUBLISHED','published',$this->userField->published,$notoggle);
$lists['cart'] = VmHTML::row('booleanlist','COM_VIRTUEMART_FIELDMANAGER_SHOW_ON_CART','cart',$this->userField->cart,$notoggle);
$lists['shipment'] = VmHTML::row('booleanlist','COM_VIRTUEMART_FIELDMANAGER_SHOW_ON_SHIPPING','shipment',$this->userField->shipment,$notoggle);
$lists['account'] = VmHTML::row('booleanlist','COM_VIRTUEMART_FIELDMANAGER_SHOW_ON_ACCOUNT','account',$this->userField->account,$notoggle);
$lists['readonly'] = VmHTML::row('booleanlist','COM_VIRTUEMART_USERFIELDS_READONLY','readonly',$this->userField->readonly,$notoggle);
$this->assignRef('lists', $lists);
$this->assignRef('userFieldValues', $userFieldValues);
} else {
JToolBarHelper::title( vmText::_('COM_VIRTUEMART_MANAGE_USER_FIELDS'),'vm_user_48 head');
JToolBarHelper::addNew();
JToolBarHelper::editList();
JToolBarHelper::divider();
JToolBarHelper::custom('toggle.required.1', 'publish','','COM_VIRTUEMART_FIELDMANAGER_REQUIRE');
JToolBarHelper::custom('toggle.required.0', 'unpublish','','COM_VIRTUEMART_FIELDMANAGER_UNREQUIRE');
JToolBarHelper::publishList();
JToolBarHelper::unpublishList();
JToolBarHelper::divider();
$barText = vmText::_('COM_VIRTUEMART_FIELDMANAGER_SHOW_HIDE');
$bar= JToolBar::getInstance( 'toolbar' );
$bar->appendButton( 'Separator', '"><span class="bartext">'.$barText.'</span><hr style="display: none;' );
//$bar->appendButton( 'publish', 'upload', $alt, '', 550, 400 );
JToolBarHelper::custom('toggle.registration.1', 'publish','','COM_VIRTUEMART_FIELDMANAGER_SHOW_REGISTRATION');
JToolBarHelper::custom('toggle.registration.0', 'unpublish','','COM_VIRTUEMART_FIELDMANAGER_HIDE_REGISTRATION');
JToolBarHelper::custom('toggle.shipment.1', 'publish','','COM_VIRTUEMART_FIELDMANAGER_SHOW_SHIPPING');
JToolBarHelper::custom('toggle.shipment.0', 'unpublish','','COM_VIRTUEMART_FIELDMANAGER_HIDE_SHIPPING');
JToolBarHelper::custom('toggle.account.1', 'publish','','COM_VIRTUEMART_FIELDMANAGER_SHOW_ACCOUNT');
JToolBarHelper::custom('toggle.account.0', 'unpublish','','COM_VIRTUEMART_FIELDMANAGER_HIDE_ACCOUNT');
JToolBarHelper::divider();
JToolBarHelper::deleteList();
$this->addStandardDefaultViewLists($model,'ordering','ASC');
$this->userfieldsList = $model->getUserfieldsList();
$this->pagination = $model->getPagination();
// search filter
$search = $mainframe->getUserStateFromRequest( $option.'search', 'search', '', 'string');
$search = JString::strtolower( $search );
$this->lists['search']= $search;
}
$this->lists['coreFields'] = $lists['coreFields'];
parent::display($tpl);
}
/**
* Create an array with userfield types and the visible text in the format expected by the Joomla select class
*
* @param string $value If not null, the type of which the text should be returned
* @return mixed array or string
*/
function _getTypes ($value = null){
$types = array(
array('type' => 'text' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_TEXTFIELD'))
,array('type' => 'checkbox' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_CHECKBOX_SINGLE'))
,array('type' => 'multicheckbox' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_CHECKBOX_MULTIPLE'))
,array('type' => 'date' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_DATE'))
,array('type' => 'age_verification' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_AGEVERIFICATION'))
,array('type' => 'select' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_DROPDOWN_SINGLE'))
,array('type' => 'multiselect' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_DROPDOWN_MULTIPLE'))
,array('type' => 'emailaddress' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_EMAIL'))
,array('type' => 'custom' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_CUSTOM'))
,array('type' => 'editorta' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_EDITORAREA'))
,array('type' => 'textarea' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_TEXTAREA'))
,array('type' => 'radio' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_RADIOBUTTON'))
,array('type' => 'webaddress' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_WEBADDRESS'))
,array('type' => 'delimiter' , 'text' => vmText::_('COM_VIRTUEMART_FIELDS_DELIMITER'))
);
$this->renderInstalledUserfieldPlugins($types);
if ($value === null) {
return $types;
} else {
foreach ($types as $type) {
if ($type['type'] == $value) {
return $type['text'];
}
return $value;
}
}
}
function renderUserfieldPlugin(){
if(!class_exists('vmUserfieldPlugin')) require(VMPATH_PLUGINLIBS.DS.'vmuserfieldtypeplugin.php');
VmConfig::loadJLang('plg_vmpsplugin', false);
JForm::addFieldPath(VMPATH_ADMIN . DS . 'fields');
//$selected = $this->userField->userfield_jplugin_id;
//vmdebug('renderUserfieldPlugin $this->userField->element',$this->userField->type,$this->userField->element);
$this->userField->element = substr($this->userField->type, 6);
$path = VMPATH_ROOT .DS. 'plugins' .DS. 'vmuserfield' . DS . $this->userField->element . DS . $this->userField->element . '.xml';
// Get the payment XML.
$formFile = vRequest::filterPath( $path );
if (file_exists($formFile)){
$this->userField->form = JForm::getInstance($this->userField->element, $formFile, array(),false, '//vmconfig | //config[not(//vmconfig)]');
$this->userField->params = new stdClass();
$varsToPush = vmPlugin::getVarsToPushFromForm($this->userField->form);
VmTable::bindParameterableToSubField($this->userField,$varsToPush);
$this->userField->form->bind($this->userField->getProperties());
} else {
$this->userField->form = false;
vmdebug('renderUserfieldPlugin could not find xml for '.$this->userField->type.' at '.$path);
}
if ($this->userField->form) {
$form = $this->userField->form;
ob_start();
include(VMPATH_ADMIN.DS.'fields'.DS.'formrenderer.php');
$body = ob_get_contents();
ob_end_clean();
return $body;
}
return;
}
function renderInstalledUserfieldPlugins(&$plugins){
$table = '#__extensions';
$ext_id = 'extension_id';
$enable = 'enabled';
$db = JFactory::getDBO();
$q = 'SELECT * FROM `'.$table.'` WHERE `folder` = "vmuserfield" ';
$db->setQuery($q);
$userfieldplugins = $db->loadAssocList($ext_id);
if(empty($userfieldplugins)){
return;
}
foreach($userfieldplugins as $userfieldplugin){
$plugins[] = array('type' => 'plugin'.$userfieldplugin['element'], 'text' => $userfieldplugin['name']);
}
return;
}
}
//No Closing Tag