ProShell v2.0
Dashboard
Server Info
Server: 158.106.128.192
PHP: 8.2.33
home
planet5
public_html
bansibaba.com
2026-09-12 21:59:55
Editing: view.php
Cancel
Save Changes
<?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ class am4View{ private $_name; private $_fname; private $_v; private $_controller; private $_type; const TYPE_HTML = 'phtml'; const TYPE_CSS = 'css'; const TYPE_JS = 'js'; const ESC_HTML = 'html'; const ESC_HTMLALL = 'htmlall'; const ESC_URL = 'url'; const ESC_QUOTES = 'quotes'; const ESC_HEX = 'hex'; const ESC_HEXENTITY = 'hexentity'; const ESC_JAVASCRIPT= 'javascript'; const RESOURCE_ACCESS_SKIP_PERIOD = true; function __construct($name, am4PageController $controller=null, $type=self::TYPE_HTML){ if(!preg_match('/^[a-z0-9_]+$/', $name)) throw new Exception("Incorrect view name passed!"); if(!is_file($fname = AM4_PLUGIN_DIR.'/views/'.$name.'.'.$type)){ throw new Exception("View not found!"); } $this->_fname = $fname; $this->_controller = $controller; $this->_type = $type; } static function init($name, am4PageController $controller=null, $type = self::TYPE_HTML){ return new self($name, $controller,$type); } function showErrors(){ if($this->errors){ foreach($this->errors as $e){ ?><div class="amember_error"><?php echo $e;?></div><?php } } } function assign($name, $value){ $this->$name = $value; } function get($name){ return $this->$name; } function __get($name){ if(!array_key_exists($name, $this->_v)) return null; return $this->_v[$name]; } function __set($name,$value){ $this->_v[$name] = $value; } function fetch(){ foreach((array)$this->_v as $k=>$v){ $$k = $v; } ob_start(); $_info = pathinfo($this->_fname); $_fname = $_info['basename']; $_options = get_option(AM4_STYLE_OPTION); if($_options[$_fname]){ try{ eval("?>".$_options[$_fname]); }catch(Exception $e){ print "Error in template: ".$e->getMessage(); } }else{ require($this->_fname); } $ret = ob_get_contents(); ob_end_clean(); switch($this->_type){ case self::TYPE_CSS : $ret = "<style>\n".$ret."\n</style>"; break; case self::TYPE_JS : $ret = "<script>\n".$ret."\n</script>"; break; case self::TYPE_HTML : default : break; } return $ret; } function render(){ echo $this->fetch(); } function fetchTemplateCode($path){ $info = pathinfo($path); $fname = $info['basename']; $options = get_option(AM4_STYLE_OPTION); if($options[$fname]){ eval("?>".$options[$fname]); }else{ require($path); } } function escape($subj, $esc_type=self::ESC_HTML){ if(is_array($subj)){ foreach($subj as $k=>$v){ $subj[$k] = $this->escape($v); } return $subj; } switch ($esc_type) { case self::ESC_HTML : return htmlspecialchars($subj, ENT_QUOTES); case self::HTMLALL : return htmlentities($subj, ENT_QUOTES); case self::URL : return urlencode($subj); case self::ESC_QUOTES : // escape unescaped single quotes return preg_replace("%(?<!\\\\)'%", "\\'", $subj); case self::ESC_HEX : // escape every character into hex $return = ''; for ($x=0; $x < strlen($subj); $x++) { $return .= '%' . bin2hex($subj[$x]); } return $return; case self::ESC_HEXENTITY : $return = ''; for ($x=0; $x < strlen($subj); $x++) { $return .= '&#x' . bin2hex($subj[$x]) . ';'; } return $return; case self::ESC_JAVASCRIPT : // escape quotes and backslashes and newlines return strtr($subj, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n')); default: return $subj; } } function e($string, $esc_type=self::ESC_HTML){ echo $this->escape($string, $esc_type); } function getController(){ return $this->_controller; } function _action($ret=false){ if($ret) return $this->getController()->actionField(); print $this->getController()->actionField(); } function options(Array $options, $selected=false, $ret = false){ $o = ''; foreach($options as $k=>$v){ $o .= "<option value='$k'".(($selected !== false) && ($k==$selected) ? "selected" : "").">$v</option>"; } if($ret) return $o; print $o; } function pagesOptions($selected, $ret=false){ $pages = get_pages(); $o = array(); foreach($pages as $p){ $o[$p->ID] = $p->post_title; } return $this->options($o, $selected, $ret); } function checkboxes($name, Array $values, $selected, $ret=false){ if(!is_array($selected)) $selected = array($selected); $o = ''; foreach($values as $k=>$v){ $o .= "<label><input type='checkbox' name='".$name."' value='".$k."' ".(in_array($k, $selected)? "checked" : "").">".$v."</label><br/>"; } if($ret) return $o; print $o; } function addProductTitle($access){ $products = am4PluginsManager::getAMProducts(); $categories = am4PluginsManager::getAMCategories(); if($access){ foreach($access as $t => $l){ foreach($l as $id => $a){ $name = ($t == am4Access::CATEGORY ? $categories[$id] : $products[$id]); if($name) $access[$t][$id]['title'] = $name; } } } return $access; } function resourceAccess($id, $access=array(), $varname='access',$text=null, $without_period=false){ if(!$text) $text = __('Choose Products and/or Product Categories that allows access', 'am4-plugin'); ?> <div class="resourceaccess" id="<?php echo $id;?>"><?php _e($text);?><br/> <input type='hidden' class='resourceaccess-init' value='<?php if($access){$this->e(aMemberJson::init($this->addProductTitle($access))); }else{print '{}';}?>' /> <select class='category' size=1> <option value='' ><?php _e('Please select an item...', 'am4-plugin');?></option> <optgroup class='category' label='<?php _e('Product Categories', 'am4-plugin');?>'> <option value='-1' style='font-weight: bold'><?php _e('Any Product', 'am4-plugin');?></option> <?php $this->options(am4PluginsManager::getAMCategories()); ?> </optgroup> <optgroup class='product' label='<?php _e('Products', 'am4-plugin');?>'> <?php $this->options(am4PluginsManager::getAMProducts()); ?> </optgroup> </select> <div class='category-list'></div> <div class='product-list'></div> <br /> </div> <script> jQuery(document).ready(function (){ jQuery('#<?php echo $id;?>').resourceAccess({varname: '<?php echo $varname;?>',without_period: <?php echo ($without_period ? 'true' : 'false'); ?>}); }); </script> <?php } function errorMessageSelect($value, $name){ $id = substr(md5(uniqid()), rand(0,9), rand(10,20)); ?> <ul><?php _e('Please select error message:', 'am4-plugin');?> <?php foreach((array)am4Errors::getInstance()->getAll() as $e) : ?> <li> <input type="radio" name="<?php echo $name;?>" value="<?php $this->e($e['name']);?>" <?php checked($value, $e['name']);?>> <?php $this->e($e['name']);?><a href="#" class ="am4-text-show-<?php echo $id;?>" > >> </a> <div class="am4-error-text-container" style='overflow:auto; height:300px; width:800px; border: 1px solid #7F9DB9; padding: 5px; display: none;'><?php echo $e['text'];?></div> </li> <?php endforeach;?> </ul> <script> jQuery(document).ready(function(){ jQuery(".am4-text-show-<?php echo $id;?>").click(function(e){ e.preventDefault(); jQuery(".am4-error-text-container").hide(200); jQuery(this).next("div").show(200); }); }); </script> <?php } }
Upload Files
Cancel
Upload
Create New
Cancel
Create
Change Permissions
Cancel
Save
Change Date
Cancel
Save
Rename Item
Cancel
Save
Confirm Delete
Are you sure you want to delete the selected items?
Cancel
Delete