Файловый менеджер - Редактировать - /var/www/html/administrator/components/com_jssupportticket/models/userfields.php
Ðазад
<?php /** * @Copyright Copyright (C) 2015 ... Ahmad Bilal * @license GNU/GPL http://www.gnu.org/copyleft/gpl.html * Company: Buruj Solutions + Contact: www.burujsolutions.com , info@burujsolutions.com * Created on: May 22, 2015 ^ + Project: JS Tickets ^ */ defined('_JEXEC') or die('Not Allowed'); jimport('joomla.application.component.model'); jimport('joomla.html.html'); class JSSupportticketModelUserFields extends JSSupportTicketModel { function __construct() { parent::__construct(); } function isFieldRequiredByField($field){ $db = JFactory::getDbo(); $query = "SELECT field.required FROM `#__js_ticket_fieldsordering` AS field WHERE field.field = ".$db->quote($field); $db->setQuery($query); $result = $db->loadResult(); return $result; } function fieldPublished($field_id, $value) { if (is_numeric($field_id) == false) return false; $db = JFactory::getDBO(); $query = " UPDATE `#__js_ticket_fieldsordering` SET published = " . $value . " WHERE id = " . $field_id. " AND cannotunpublish = 0"; $db->setQuery($query); if (!$db->execute()) { return false; } return true; } function visitorFieldPublished($field_id, $value) { if (is_numeric($field_id) == false) return false; $db = JFactory::getDBO(); $query = " UPDATE `#__js_ticket_fieldsordering` SET isvisitorpublished = " . $value . " WHERE id = " . $field_id. " AND cannotunpublish = 0"; $db->setQuery($query); if (!$db->execute()) { return false; } return true; } function fieldRequired($field_id, $value) { if (is_numeric($field_id) == false) return false; $db = JFactory::getDBO(); $query = " UPDATE `#__js_ticket_fieldsordering` SET required = " . $value . " WHERE id = " . $field_id. " AND cannotunpublish = 0"; $db->setQuery($query); if (!$db->execute()) { return false; } return true; } function fieldOrderingUp($field_id) { if (is_numeric($field_id) == false) return false; $db = JFactory::getDBO(); $query = "UPDATE `#__js_ticket_fieldsordering` AS f1, `#__js_ticket_fieldsordering` AS f2 SET f1.ordering = f1.ordering - 1 WHERE f1.ordering = f2.ordering + 1 AND f1.fieldfor = f2.fieldfor AND f2.id = " . $field_id . " ; "; $db->setQuery($query); if (!$db->execute()) { return false; } $query = " UPDATE `#__js_ticket_fieldsordering` SET ordering = ordering + 1 WHERE id = " . $field_id . ";" ; $db->setQuery($query); if (!$db->execute()) { return false; } return true; } function fieldOrderingDown($field_id) { if (is_numeric($field_id) == false) return false; $db = JFactory::getDBO(); $query = "UPDATE `#__js_ticket_fieldsordering` AS f1, `#__js_ticket_fieldsordering` AS f2 SET f1.ordering = f1.ordering + 1 WHERE f1.ordering = f2.ordering - 1 AND f1.fieldfor = f2.fieldfor AND f2.id = " . $field_id . " ; "; $db->setQuery($query); if (!$db->execute()) { return false; } $query = " UPDATE `#__js_ticket_fieldsordering` SET ordering = ordering - 1 WHERE id = " . $field_id . ";"; $db->setQuery($query); if (!$db->execute()) { return false; } return true; } // New_New function getFieldOrderingForList($fieldfor) { $db = JFactory::getDbo(); if (is_numeric($fieldfor) == false) return false; $query = "SELECT * FROM `#__js_ticket_fieldsordering` WHERE fieldfor = ".$fieldfor." ORDER BY ordering "; $db->setQuery($query); $result[0] = $db->loadObjectList(); return $result; } function getFieldsForListing($fieldfor) { if (is_numeric($fieldfor) == false) return false; $db = JFactory::getDbo(); $query = "SELECT field,showonlisting FROM `#__js_ticket_fieldsordering` WHERE fieldfor = " . $fieldfor ." ORDER BY ordering"; $db->setQuery($query); $fields = $db->loadObjectList(); $fielddata = array(); foreach ($fields AS $field) { $fielddata[$field->field] = $field->showonlisting; } return $fielddata; } function getFieldsOrderingforForm($fieldfor) { if (is_numeric($fieldfor) == false) return false; $db = $this->getDBO(); $user = JSSupportticketCurrentUser::getInstance(); if($user->getIsGuest()){ $published = ' isvisitorpublished = 1 '; }else{ $published = ' published = 1 '; } $query = "SELECT * FROM `#__js_ticket_fieldsordering` WHERE ".$published." AND fieldfor = " . $fieldfor . " ORDER BY ordering"; $db->setQuery($query); $fieldordering = $db->loadObjectList(); return $fieldordering; } function storeUserField() { $db = JFactory::getDBO(); $data = JFactory::getApplication()->input->post->getArray(); if (empty($data)) { return false; } if ($data['isuserfield'] == 1) { // value to add as field ordering if ($data['id'] == '') { // only for new $query = "SELECT max(ordering) FROM #__js_ticket_fieldsordering WHERE fieldfor=".$_SESSION['ffusr']; $db->setQuery($query); $var = $db->loadResult(); $data['ordering'] = $var + 1; if(isset($data['userfieldtype']) && $data['userfieldtype'] == 'file' || $data['userfieldtype'] == 'termsandconditions'){ $data['cannotsearch'] = 1; $data['cannotshowonlisting'] = 1; }else{ $data['cannotsearch'] = 0; } // Unique field $query = "SELECT max(id) FROM #__js_ticket_fieldsordering "; $db->setQuery($query); $var = $db->loadResult(); $data['field'] = 'ufield_'. ($var + 1); $data['fieldfor'] = $_SESSION['ffusr']; } $params = array(); //code for depandetn field if (isset($data['userfieldtype']) && $data['userfieldtype'] == 'depandant_field') { if (!empty($data['arraynames2']) && empty($data['arraynames'])) { //to handle edit case of depandat field $data['arraynames'] = $data['arraynames2']; } $flagvar = $this->updateParentField($data['parentfield'], $data['field']); if ($flagvar == false) { return SAVE_ERROR; } if (!empty($data['arraynames'])) { $valarrays = explode(',', $data['arraynames']); foreach ($valarrays as $key => $value) { $keyvalue = $value; $value = str_replace(' ','_',$value); if ($data[$value] != null) { $params[$keyvalue] = array_filter($data[$value]); } } } } if (!empty($data['values'])) { foreach ($data['values'] as $key => $value) { if ($value != null) { $params[] = trim($value); } } } if (isset($data['userfieldtype']) && $data['userfieldtype'] == 'termsandconditions') { // to manage terms and condition field $params['termsandconditions_text'] = $data['termsandconditions_text']; $params['termsandconditions_linktype'] = $data['termsandconditions_linktype']; $params['termsandconditions_link'] = $data['termsandconditions_link']; $params['termsandconditions_page'] = $data['termsandconditions_page']; } if(!empty($params)){ $params = json_encode($params); $data['userfieldparams'] = $params; } } if($data["isuserfield"] == "") $data["isuserfield"] = 0; $row = $this->getTable('fieldordering'); if (!$row->bind($data)) { $this->setError($row->getError()); return SAVE_ERROR; } if (!$row->check()) { $this->setError($row->getError()); return SAVE_ERROR; } if (!$row->store()) { $this->getJSModel('systemerrors')->updateSystemErrors($row->getError()); $this->setError($row->getError()); return SAVE_ERROR; } return SAVED; } function updateField($data) { if (empty($data)) { return false; } $db = JFactory::getDBO(); $inquery = ''; $clasue = ''; if(isset($data['fieldtitle']) && $data['fieldtitle'] != null){ $inquery .= $clasue." fieldtitle = '". $data['fieldtitle']."'"; $clasue = ' , '; } if(isset($data['published']) && $data['published'] != null){ $inquery .= $clasue." published = ". $data['published']; $clasue = ' , '; } if(isset($data['isvisitorpublished']) && $data['isvisitorpublished'] != null){ $inquery .= $clasue." isvisitorpublished = ". $data['isvisitorpublished']; $clasue = ' , '; } if(isset($data['required']) && $data['required'] != null){ $inquery .= $clasue." required = ". $data['required']; $clasue = ' , '; } if(isset($data['search_user']) && $data['search_user'] != null){ $inquery .= $clasue." search_user = ". $data['search_user']; $clasue = ' , '; } if(isset($data['search_visitor']) && $data['search_visitor'] != null){ $inquery .= $clasue." search_visitor = ". $data['search_visitor']; $clasue = ' , '; } if(isset($data['showonlisting']) && $data['showonlisting'] != null){ $inquery .= $clasue." showonlisting = ". $data['showonlisting']; $clasue = ' , '; } $query = "UPDATE `#__js_ticket_fieldsordering` SET ".$inquery." WHERE id = " . $data['id'] ; $db->setQuery($query); $db->execute(); return true; } function updateParentField($parentfield, $field) { $db = $this->getDBO(); if(!is_numeric($parentfield)) return false; $query = "UPDATE `#__js_ticket_fieldsordering` SET depandant_field = '' WHERE depandant_field = '" . $field . "'"; $db->setQuery($query); $db->execute(); $query = "UPDATE `#__js_ticket_fieldsordering` SET depandant_field = '" . $field . "' WHERE id = " . $parentfield; $db->setQuery($query); $db->execute(); return true; } function getOptionsForFieldEdit($field) { $db = $this->getDBO(); $yesno = array( '0' => array('value' => '1', 'text' => JText::_('Yes')), '1' => array('value' => '0', 'text' => JText::_('No')),); $query = "SELECT * FROM `#__js_ticket_fieldsordering` WHERE id = $field"; $db->setQuery($query); $data = $db->loadObject(); $html = '<span class="popup-top"> <span id="popup_title" > ' . JText::_("Edit Field") . ' </span> <span id="popup_cross" onClick="close_popup();" class="close"></span> </span>'; $html .= '<form id="adminForm" class="popup-field-from" method="post" action="index.php?option=com_jssupportticket&c=userfields&task=storeUserFields&'.JSession::getFormToken().'=1">'; $title_value = JText::_('Text'); if(isset($data->fieldtitle)){ $title_value = $data->fieldtitle; } $html .= '<div class="popup-field-wrapper"> <div class="popup-field-title">' . JText::_('Field Title') . '<font class="required-notifier">*</font></div> <div class="popup-field-obj"> <input type="text" id="fieldtitle" name="fieldtitle" value="'.$title_value.'" class="inputbox one" data-validation="required" /> </div> </div>'; if ($data->cannotunpublish == 0 && $data->userfieldtype != 'termsandconditions') { $html .= '<div class="popup-field-wrapper"> <div class="popup-field-title">' . JText::_('User Published') . '</div> <div class="popup-field-obj">' . JHTML::_('select.genericList', $yesno , 'published','class="inputbox one"', 'value' , 'text' , isset($data->published) ? $data->published : 0) . '</div> </div>'; $html .= '<div class="popup-field-wrapper"> <div class="popup-field-title">' . JText::_('Visitor published') . '</div> <div class="popup-field-obj">' . JHTML::_('select.genericList', $yesno , 'isvisitorpublished','class="inputbox one"', 'value' , 'text' , isset($data->isvisitorpublished) ? $data->isvisitorpublished : 0) . '</div> </div>'; $html .= '<div class="popup-field-wrapper"> <div class="popup-field-title">' . JText::_('Required') . '</div> <div class="popup-field-obj">' . JHTML::_('select.genericList', $yesno , 'required','class="inputbox one"', 'value' , 'text' , isset($data->required) ? $data->required : 0) . '</div> </div>'; } if ($data->cannotsearch == 0 && $data->userfieldtype != 'termsandconditions') { $html .= '<div class="popup-field-wrapper"> <div class="popup-field-title">' . JText::_('User Search') . '</div> <div class="popup-field-obj">' . JHTML::_('select.genericList', $yesno , 'search_user','class="inputbox one"', 'value' , 'text' , isset($data->search_user) ? $data->search_user : 0) . '</div> </div>'; $html .= '<div class="popup-field-wrapper"> <div class="popup-field-title">' . JText::_('Visitor Search') . '</div> <div class="popup-field-obj">' . JHTML::_('select.genericList', $yesno , 'search_visitor','class="inputbox one"', 'value' , 'text' , isset($data->search_visitor) ? $data->search_visitor : 0) . '</div> </div>'; } if (($data->isuserfield == 1 || $data->cannotshowonlisting == 0) && $data->userfieldtype != 'termsandconditions') { $html .= '<div class="popup-field-wrapper"> <div class="popup-field-title">' . JText::_('Show On Listing') . '</div> <div class="popup-field-obj">' . JHTML::_('select.genericList', $yesno , 'showonlisting','class="inputbox one"', 'value' , 'text' , isset($data->showonlisting) ? $data->showonlisting : 0) . '</div> </div>'; } $html .= ' <input type="hidden" id="id" name="id" value="'.$data->id.'" /> <input type="hidden" id="isuserfield" name="isuserfield" value="'.$data->isuserfield.'" /> <input type="hidden" id="fieldfor" name="fieldfor" value="'.$data->fieldfor.'" />'; $html .= JHtml::_('form.token'); $html .='<div class="js-submit-container"> <input type="submit" id="save" name="save" value="'.JText::_('Save').'" class="button" />'; if ($data->isuserfield == 1) { $html .= '<a class="button" style="margin-left:15px;" id="user-field-anchor" href="index.php?option=com_jssupportticket&c=userfields&view=userfields&layout=formuserfield&cid[]=' . $data->id .'&ff='.$data->fieldfor.'"> ' . JText::_('Advanced') . ' </a>'; } $html .='</div> </form>'; return $html; } function deleteUserField($id){ if (is_numeric($id) == false) return false; $db = $this->getDBO(); $query = "SELECT field,fieldfor FROM `#__js_ticket_fieldsordering` WHERE id = $id"; $db->setQuery($query); $result = $db->loadObject(); if ($this->userFieldCanDelete($result) == true) { $query = "DELETE FROM `#__js_ticket_fieldsordering` WHERE id = $id"; $db->setQuery($query); $db->execute(); return DELETED; }else{ return IN_USE; } } function enforceDeleteUserField($id){ if (is_numeric($id) == false) return false; $db = $this->getDBO(); $query = "SELECT field,fieldfor FROM `#__js_ticket_fieldsordering` WHERE id = $id"; $db->setQuery($query); $result = $db->loadObject(); if (true) { $query = "DELETE FROM `js_ticket_fieldsordering` WHERE id = $id"; $db->setQuery($query); $db->execute(); return DELETE; }else{ return IN_USE; } } function userFieldCanDelete($field) { $fieldname = $field->field; $fieldfor = $field->fieldfor; $db = $this->getDBO(); if($fieldfor == 1){//for deleting a ticket field $table = "tickets"; }else if($fieldfor == 2){ $table = "feedbacks"; } $query = ' SELECT ( SELECT COUNT(id) FROM `#__js_ticket_'.$table.'` WHERE params LIKE \'%"' . $fieldname . '":%\' ) AS total'; $db->setQuery($query); $total = $db->loadResult(); if ($total > 0) return false; else return true; } function getFieldTitleByFieldfor($fieldfor) { if (!is_numeric($fieldfor)) return false; $db = $this->getDBO(); $query = "SELECT field,fieldtitle FROM `#__js_ticket_fieldsordering` WHERE fieldfor = " . $fieldfor ; $db->setQuery($query); $fields = $db->loadObjectList(); $fielddata = array(); foreach ($fields as $value) { $fielddata[$value->field] = $value->fieldtitle; } return $fielddata; } function getUserFieldbyId($id,$fieldfor) { if ($id) { if (is_numeric($id) == false) return false; $db = $this->getDBO(); $query = "SELECT * FROM `#__js_ticket_fieldsordering` WHERE id = " . $id; $db->setQuery($query); $result['userfield'] = $db->loadObject(); $params = $result['userfield']->userfieldparams; $result['userfieldparams'] = !empty($params) ? json_decode($params, true) : ''; } $result['fieldfor'] = $fieldfor; $result['joomlaarticles'] = $this->getJSModel('jssupportticket')->joomlaContentArticles(); return $result; } function dataForDepandantField( $val , $childfield){ $db = $this->getDBO(); $query = "SELECT userfieldparams,fieldtitle,field,depandant_field FROM `#__js_ticket_fieldsordering` WHERE field = '".$childfield."'"; $db->setQuery($query); $data = $db->loadObject(); $decoded_data = json_decode($data->userfieldparams); $comboOptions = array(); $flag = 0; foreach ($decoded_data as $key => $value) { if($key == $val){ for ($i=0; $i < count($value) ; $i++) { if($flag == 0){ $comboOptions[] = array('value' => null, 'text' => JText::_('Select').' '.$data->fieldtitle); } $comboOptions[] = array('value' => $value[$i], 'text' => $value[$i]); $flag = 1; } } } $jsFunction = ''; if ($data->depandant_field != null) { $jsFunction = "onchange=getDataForDepandantField('" . $data->field . "','" . $data->depandant_field . "',1,'". JSession::getFormToken() ."');"; } $html = JHTML::_('select.genericList', $comboOptions , $childfield,'class="inputbox js-form-select-field one"'.$jsFunction, 'value' , 'text' ,''); return $html; } function getFieldsForComboByFieldFor( $fieldfor, $parentfield ) { $db = JFactory::getDbo(); $query = "SELECT fieldtitle AS text , id AS value FROM `#__js_ticket_fieldsordering` WHERE fieldfor = $fieldfor AND (userfieldtype = 'radio' OR userfieldtype = 'combo' OR userfieldtype = 'depandant_field') "; $db->setQuery($query); $data = $db->loadObjectList(); $result = array(array('text' => JText::_('Select parent field'), 'value' => null)); foreach($data AS $da){ $result[] = $da; } $query = "SELECT id FROM `#__js_ticket_fieldsordering` WHERE fieldfor = $fieldfor AND (userfieldtype = 'radio' OR userfieldtype = 'combo' OR userfieldtype = 'depandant_field') AND depandant_field = '" . $parentfield . "' "; $db->setQuery($query); $parent = $db->loadResult(); $jsFunction = 'onchange="getDataOfSelectedField();"'; $html = JHTML::_('select.genericList', $result, 'parentfield', 'class="inputbox inputbox one" ' .$jsFunction, 'value', 'text', $parent); return $html; } function getSectionToFillValues( $field ) { if( ! is_numeric($field)) return false; $db = JFactory::getDbo(); $query = "SELECT userfieldparams FROM `#__js_ticket_fieldsordering` WHERE id = $field"; $db->setQuery($query); $data = $db->loadResult(); $datas = json_decode($data); $html = ''; $fieldsvar = ''; $comma = ''; foreach ($datas as $data) { if(is_array($data)){ for ($i = 0; $i < count($data); $i++) { $fieldsvar .= $comma . "$data[$i]"; $textvar = $data[$i]; $textvar .='[]'; $html .= "<div class='js-field-wrapper js-row no-margin'>"; $html .= "<div class='js-field-title js-col-lg-3 js-col-md-3 no-padding'>" . $data[$i] . "</div>"; $html .= "<div class='js-col-lg-9 js-col-md-9 no-padding combo-options-fields' id=" . $data[$i] . "> <span class='input-field-wrapper'> <input type='text' id='".$textvar."' name='".$textvar."' class='inputbox one user-field' /> <img class='input-field-remove-img' src='components/com_jssupportticket/include/images/deletes.png' /> </span> <input type='button' id='depandant-field-button' onClick='getNextField(\"" . $data[$i] . "\",this);' value='Add More' /> </div>"; $html .= "</div>"; $comma = ','; } }else{ $fieldsvar .= $comma . "$data"; $textvar = $data; $textvar .='[]'; $html .= "<div class='js-field-wrapper js-row no-margin'>"; $html .= "<div class='js-field-title js-col-lg-3 js-col-md-3 no-padding'>" . $data . "</div>"; $html .= "<div class='js-col-lg-9 js-col-md-9 no-padding combo-options-fields' id=" . $data . "> <span class='input-field-wrapper'> <input type='text' id='".$textvar."' name='".$textvar."' class='inputbox one user-field' /> <img class='input-field-remove-img' src='components/com_jssupportticket/include/images/deletes.png' /> </span> <input type='button' id='depandant-field-button' onClick='getNextField(\"" . $data . "\",this);' value='Add More' /> </div>"; $html .= "</div>"; $comma = ','; } } $html .= " <input type='hidden' name='arraynames' value='" . $fieldsvar . "' />"; return $html; } function getUserUnpublishFieldsfor($fieldfor) { if (!is_numeric($fieldfor)) return false; $db = JFactory::getDbo(); $user = JSSupportticketCurrentUser::getInstance(); if ($user->getIsGuest()) { $published = ' isvisitorpublished = 0 '; } else { $published = ' published = 0 '; } $query = "SELECT field FROM `#__js_ticket_fieldsordering` WHERE fieldfor = " . $fieldfor . " AND isuserfield = 1 AND " . $published; $db->setQuery($query); $fields = $db->loadObjectList(); return $fields; } function getUserfieldsfor($fieldfor) { if (!is_numeric($fieldfor)) return false; $db = JFactory::getDbo(); $user = JSSupportticketCurrentUser::getInstance(); if ($user->getIsGuest()) { $published = ' isvisitorpublished = 1 '; } else { $published = ' published = 1 '; } $query = "SELECT field,userfieldparams,userfieldtype,fieldtitle FROM `#__js_ticket_fieldsordering` WHERE fieldfor = " . $fieldfor . " AND isuserfield = 1 AND " . $published; $db->setQuery($query); $fields = $db->loadObjectList(); return $fields; } } ?>
| ver. 1.1 | |
.
| PHP 8.4.18 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0 |
proxy
|
phpinfo
|
ÐаÑтройка