Esempio n. 1
0
function build_menu($menus = array())
{
    // Check if current level is parent
    $current_line = isset($menus[0]) ? $menus[0] : array();
    $root_level = get_value($current_line, 'id_menu_parent') <= 0 ? true : false;
    if (count($menus) > 0) {
        foreach ($menus as $menu) {
            // DEBUG:
            // print_r($menu);
            // Counting children menu
            $count_menu_children = count(get_value($menu, 'children'));
            // Build a link
            $link = tag_replace(get_value($menu, 'link'));
            $target = get_value($menu, 'target') != '' ? ' target="' . tag_replace(get_value($menu, 'target')) . '" ' : '';
            $label = lang(get_value($menu, 'label'));
            $img = image(get_value($menu, 'url_img'));
            // Build a single line menu
            if ($count_menu_children > 0) {
                $class = $root_level ? 'dropdown' : 'dropdown dropdown-submenu';
                $caret = $root_level ? '<span class="caret"></span>' : '';
                ?>
				<li class="<?php 
                echo $class;
                ?>
">
					<a href="<?php 
                echo $link;
                ?>
" <?php 
                echo $target;
                ?>
 class="dropdown-toggle" data-toggle="dropdown">
						<?php 
                echo $img . ' ' . $label . $caret;
                ?>
					</a>
					<ul class="dropdown-menu"><?php 
                build_menu(get_value($menu, 'children'));
                ?>
</ul>
				</li>
			<?php 
            } else {
                ?>
				<li><a href="<?php 
                echo $link;
                ?>
" <?php 
                echo $target;
                ?>
 ><?php 
                echo $img . ' ' . $label;
                ?>
</a></li>
			<?php 
            }
        }
    }
}
 /**
  * load_module()
  * Loads module data from database to current object.
  * @return void
  */
 private function _load_module()
 {
     // Try to locate the module on database
     $module = $this->db->from('acm_module')->where(array('controller' => $this->controller))->get()->row_array(0);
     if (count($module) <= 0) {
         // There is no modules on database with this name
         $this->error->show_error(lang('Module not found'), lang('It was not possible to load the specified module. Make sure that the class name is the same registered on database.') . ' Classe: ' . $this->controller);
         exit;
     }
     // Set current object attributes values
     $this->id_module = get_value($module, 'id_module');
     $this->label = lang(get_value($module, 'label'));
     $this->sql_list = get_value($module, 'sql_list');
     $this->url_img = tag_replace(get_value($module, 'url_img'));
     $this->description = get_value($module, 'description');
     $this->table_name = get_value($module, 'table_name');
     $this->menus = $this->db->get_where('acm_module_menu', array('id_module' => $this->id_module))->result_array();
     $this->actions = $this->db->get_where('acm_module_action', array('id_module' => $this->id_module))->result_array();
     // Load the module model
     $this->load->model($this->controller . '_model');
     // Load base model
     $this->load->model('core/acme_module_controller_model');
 }
Esempio n. 3
0
echo URL_ROOT;
?>
/app-log"><i class="fa fa-fw fa-refresh"></i> <?php 
echo lang('Refresh');
?>
</a></li>
                    <li><a href="javascript:void(0)" class="remove-all"><i class="fa fa-fw fa-warning"></i> <?php 
echo lang('Remove all errors');
?>
</a></li>

                    <?php 
foreach ($this->menus as $menu) {
    // build link
    $link = tag_replace(get_value($menu, 'link'));
    $target = get_value($menu, 'target') != '' ? ' target="' . tag_replace(get_value($menu, 'target')) . '" ' : '';
    $label = lang(get_value($menu, 'label'));
    $img = image(get_value($menu, 'url_img'));
    ?>
                    <li><a href="<?php 
    echo $link;
    ?>
" <?php 
    echo $target;
    ?>
><?php 
    echo $img . ' ' . $label;
    ?>
</a></li>

                    <?php 
Esempio n. 4
0
			</div>

		</div>

	</div>

</div>

<div class="module-body">

	<div class="row">

		<div class="col-sm-8 col-md-7">

			<?php 
$action = get_value($form, 'action') != '' ? tag_replace(get_value($form, 'action')) : URL_ROOT . '/' . $this->controller . '/form_process';
$enctype = get_value($form, 'enctype') != '' ? 'enctype="' . get_value($form, 'enctype') . '"' : '';
$method = get_value($form, 'method') != '' ? get_value($form, 'method') : 'post';
?>
			
			<form action="<?php 
echo $action;
?>
" method="<?php 
echo $method;
?>
" <?php 
echo $enctype;
?>
>
			
			<h3 style="margin-top: 15px"><?php 
echo lang('Your new module') . ' <a href="' . tag_replace($link) . '" target="_blank">' . get_value($module, 'label') . ' <i class="fa fa-fw fa-external-link"></i></a> ' . lang('was created with no errors.');
?>
</h3>

			<h4 style="margin-top: 40px"><?php 
echo lang('Things you are recommended now');
?>
:</h4>

			<div>
				<h5>
				<i class="fa fa-fw fa-arrow-circle-right"></i>
				<a href="<?php 
echo tag_replace($link);
?>
" target="_blank"><?php 
echo lang('Go to');
?>
 <?php 
echo get_value($module, 'label');
?>
 <i class="fa fa-fw fa-external-link"></i></a>
				</h5>
			</div>

			<div>
				<h5>
				<i class="fa fa-fw fa-users"></i> 
				<a href="<?php 
    </div>

</div>

<div class="module-body">

    <div class="row">

        <div class="col-sm-3 user-data">

            <?php 
$id_user = get_value($user, 'id_user');
$url_img = get_value($user, 'url_img');
// Adjust thumb
if (basename($url_img) != '' && file_exists(PATH_UPLOAD . '/' . $this->photos_dir . '/' . basename($url_img))) {
    $url_img = tag_replace($url_img);
} else {
    $url_img = URL_IMG . '/user-unknown.png';
}
?>

            <div class="text-center user-img">
                <img src="<?php 
echo $url_img;
?>
" class="img-circle img-responsive" />
            </div>

            <h4 class="text-center name">

                <div><i class="fa fa-fw fa-envelope-o"></i> <?php 
Esempio n. 7
0
 /**
  * edit_thumbnail()
  * update user thumbnail according to the coordinates.
  * @return int id_user
  * @return void
  */
 public function edit_thumbnail($id_user = 0)
 {
     // only the logged user can see your profile
     if ($this->session->userdata('id_user') != $id_user || $id_user == '' || $id_user == 0) {
         redirect($this->session->userdata('url_default'));
     }
     // coordinates of image
     $w = $this->input->post('w');
     $h = $this->input->post('h');
     $sw = $this->input->post('sw');
     $sh = $this->input->post('sh');
     $x1 = $this->input->post('x1');
     $x2 = $this->input->post('x2');
     $y1 = $this->input->post('y1');
     $y2 = $this->input->post('y2');
     // Make thumb only if coordinates are correct
     if ($w != '' && $h != '' && $x1 != '' && $x2 != '' && $y1 != '' && $y2 != '' && $sw != '' && $sh != '') {
         // user data
         $user = $this->app_user_model->get_user($id_user);
         // make thumb (return = thumb name)
         if (($file_thumb_name = $this->_make_thumbnail($id_user, basename(get_value($user, 'url_img_large')), $w, $h, $sw, $sh, $x1, $x2, $y1, $y2)) === false) {
             // force header 400 (erro)
             $this->output->set_status_header('400');
         } else {
             // Remove previous thumb
             @unlink(PATH_UPLOAD . '/' . $this->photos_dir . '/' . basename(get_value($user, 'url_img')));
             // update info on database
             $new_user_img = '{URL_UPLOAD}/' . $this->photos_dir . '/' . $file_thumb_name;
             $this->db->update('acm_user_config', array('url_img' => $new_user_img), array('id_user' => $id_user));
             // update img on session
             $this->session->set_userdata('user_img', tag_replace($new_user_img));
         }
     }
 }
Esempio n. 8
0
 /**
  * Process login page/form. After validate login, redirect user to his home.
  *
  * @return void
  */
 public function login_process()
 {
     $email = $this->input->post('email');
     $pass = $this->input->post('pass');
     // Try to get the user by email and pass
     $user = $this->access->validate_login($email, $pass);
     // Case user doesnt exist, redirect to login page again
     if (!$user) {
         // Error message
         $this->session->set_userdata('email_user', $email);
         $this->session->set_userdata('bool_email_error', true);
         if ($email == '') {
             $this->session->set_userdata('email_msg_error', lang('Enter your email address'));
         } elseif ($email != '') {
             $this->session->set_userdata('email_msg_error', lang('The given email address or password are incorrect'));
         }
         redirect('app-login');
     } else {
         // Check url default for user, if not exist try to redirect to default dashboard
         $url_default = get_value($user, 'url_default') != '' ? $this->tag->tag_replace(get_value($user, 'url_default')) : URL_ROOT . '/app_dashboard/';
         // Put some user data in session
         $session['id_user'] = get_value($user, 'id_user');
         $session['user_group'] = get_value($user, 'user_group');
         $session['user_name'] = get_value($user, 'user_name');
         $session['email'] = get_value($user, 'email');
         $session['user_img'] = tag_replace(get_value($user, 'url_img'));
         $session['language'] = get_value($user, 'lang_default');
         $session['url_default'] = $url_default;
         $session['login_access'] = true;
         // Set the data above
         $this->session->set_userdata($session);
         // Log the login
         $this->logger->db_log('login', 'login');
         // Redirect to user's home
         redirect($url_default);
     }
 }
Esempio n. 9
0
function parse_page($basedir, $tpl_name, $hf, $out_filename = '', $page = '', $parent_hf = 0)
{
    global $PARSE_PAGE_OPEN_TAG, $PARSE_PAGE_CLOSE_TAG;
    global $CONFIG;
    //make path 'absolute'
    if (!preg_match("/^\\//", $tpl_name)) {
        $tpl_name = "{$basedir}/{$tpl_name}";
    }
    if (!$page) {
        //load template
        $page = precache_file($CONFIG['SITE_TEMPLATES'] . $tpl_name);
    }
    if ($page) {
        //if template empty - don't parse it
        parse_lang($page);
        //get all tags with attributes needed to be filled
        preg_match_all("/{$PARSE_PAGE_OPEN_TAG}([^{$PARSE_PAGE_CLOSE_TAG}]+){$PARSE_PAGE_CLOSE_TAG}/", $page, $out, PREG_PATTERN_ORDER);
        $tags_full = $out[1];
        //rw("$tpl_name: found ".count($tags_full)." tags");
        if (count($tags_full) > 0) {
            //if there are no tags found - dont' parse it
            $hf['ROOT_URL'] = $CONFIG['ROOT_URL'];
            $hf['ROOT_DIR'] = $CONFIG['SITE_ROOT'];
            $hf['LANG'] = $GLOBALS['LANG'];
            // rw("hf=".count($hf)." ");
            //re-sort $tags_full, so all 'inline' and 'sub' tags will be parsed first
            $tags_full = parse_page_sort_tags($tags_full);
            $TAGSEEN = array();
            for ($i = 0; $i < count($tags_full); $i++) {
                $tag_full = $tags_full[$i];
                if (array_key_exists($tag_full, $TAGSEEN)) {
                    continue;
                }
                $TAGSEEN[$tag_full] = 1;
                $tag = '';
                $attrs = array();
                if (!preg_match("/\\s/", $tag_full)) {
                    //if tag doesn't have attrs - don't parse attrs
                    $tag = $tag_full;
                } else {
                    //now cut attrs  <abcd attr1="aa a" attr2='b bb' attr3=ccc attr4> => abcd, attr1="aa a", attr2='b bb', attr3=ccc, attr4
                    preg_match_all("/((?:\\S+\\=\".*?\")|(?:\\S+\\='.*?')|(?:[^'\"\\s]+)|(?:\\S+\\=\\S*))/", $tag_full, $out, PREG_PATTERN_ORDER);
                    $attrs_raw = $out[1];
                    //dumparr($attrs_raw);
                    //rw($tag." => ".$attrs_raw);
                    //echo Dumper(@attrs);
                    $tag = $attrs_raw[0];
                    for ($j = 0; $j < count($attrs_raw); $j++) {
                        $attr = $attrs_raw[$j];
                        //rw("search attr [$attr]");
                        if (preg_match("/(?:(\\S+)\\=\"([^\"]*)\")|(?:(\\S+)\\=(\\S*))|(?:(\\S+)\\='([^']*)')/", $attr, $match)) {
                            //split attr and it's value
                            $name = $match[1];
                            $value = $match[2];
                            //rw("attr [$attr] $name => $value");
                            $attrs[$name] = $value;
                        } else {
                            $attrs[$attr] = "";
                        }
                    }
                }
                #echo "tag=$tag_full<br>\n";
                if (tag_if($attrs, $hf)) {
                    //check for inline template and prepare it
                    $inline_tpl = '';
                    $is_inline_tpl = false;
                    if (array_key_exists('inline', $attrs)) {
                        $is_inline_tpl = true;
                        $inline_tpl = get_inline_tpl($page, $tag, $tag_full);
                        #rw("inline = $inline_tpl");
                    }
                    //get var from GLOBALS, not from $hf
                    if (array_key_exists('global', $attrs)) {
                        $tagvalue = hfvalue($tag, fw::i()->G);
                        #was: $GLOBALS
                    } elseif (array_key_exists('session', $attrs)) {
                        $tagvalue = hfvalue($tag, $_SESSION);
                    } elseif (array_key_exists('parent', $attrs) && is_array($parent_hf)) {
                        $tagvalue = hfvalue($tag, $parent_hf);
                        //get usual var
                    } else {
                        $tagvalue = hfvalue($tag, $hf);
                    }
                    #            $attr_lang='';
                    #            if ( array_key_exists('lang', $attrs) ) $attr_lang=$attrs['lang'];
                    //start working with tag value
                    if (!is_null($tagvalue)) {
                        //rw("$tag EXISTS");
                        if (array_key_exists('repeat', $attrs)) {
                            //if this is 'repeat' tag parse as datarow
                            if (is_array($tagvalue)) {
                                $repeat_array = $tagvalue;
                                $tagvalue = '';
                                $hfcount = count($repeat_array);
                                $k1 = 0;
                                foreach ($repeat_array as $k => $v) {
                                    $hfrow = $v;
                                    $hfrow['repeat.last'] = $k1 == $hfcount - 1 ? 1 : 0;
                                    $hfrow['repeat.first'] = $k1 == 0 ? 1 : 0;
                                    $hfrow['repeat.even'] = $k1 % 2 ? 1 : 0;
                                    $hfrow['repeat.odd'] = $k1 % 2 ? 0 : 1;
                                    $hfrow['repeat.index'] = $k1;
                                    $hfrow['repeat.iteration'] = $k1 + 1;
                                    $hfrow['repeat.total'] = $hfcount;
                                    $tagvalue .= parse_page($basedir, tag_tplpath($tag, $tpl_name, $is_inline_tpl), $hfrow, 'v', $inline_tpl, $hf);
                                    $k1++;
                                }
                            } else {
                                logger('WARN', 'ParsePage - not an array passed to repeat tag = ' . $tag);
                                $tagvalue = '';
                            }
                        } elseif (array_key_exists('sub', $attrs)) {
                            //if this is 'sub' tag - parse it as independent subtemplate
                            $tagvalue = parse_page($basedir, tag_tplpath($tag, $tpl_name, $is_inline_tpl), $tagvalue, 'v', $inline_tpl, $hf);
                        } else {
                            //if usual tag - replace it with tagvalue got above
                            #CSRF shield +1
                            if ($tagvalue > "" && !array_key_exists('noescape', $attrs)) {
                                $tagvalue = htmlescape($tagvalue);
                            }
                        }
                        $page = tag_replace($page, $tag_full, $tagvalue, $attrs);
                    } elseif (array_key_exists('repeat', $attrs)) {
                        //if it's repeat tag, but tag value empty - just replace with empty string
                        $page = tag_replace($page, $tag_full, '', $attrs);
                    } elseif (array_key_exists('var', $attrs)) {
                        //if tag doesn't exists in $hf and it's marked as variable (var)
                        //then don't make subparse and just replace to empty string for more performance
                        $page = tag_replace($page, $tag_full, "", $attrs);
                    } elseif (array_key_exists('select', $attrs)) {
                        //this is special case for '<select>' HTML tag
                        $v = parse_select_tag($basedir, tag_tplpath($tag, $tpl_name, $is_inline_tpl), $hf, $attrs);
                        $page = tag_replace($page, $tag_full, $v, $attrs);
                    } elseif (array_key_exists('radio', $attrs)) {
                        //this is special case for '<index type=radio>' HTML tag
                        $v = parse_radio_tag($basedir, tag_tplpath($tag, $tpl_name, $is_inline_tpl), $hf, $attrs);
                        $page = tag_replace($page, $tag_full, $v, $attrs);
                    } elseif (array_key_exists('selvalue', $attrs)) {
                        //this is special case for displaying just one selected value (for '<select>' or '<index type=radio>' HTML tags
                        $v = parse_selvalue_tag($basedir, tag_tplpath($tag, $tpl_name, $is_inline_tpl), $hf, $attrs);
                        if (!array_key_exists('noescape', $attrs)) {
                            $v = htmlescape($v);
                        }
                        $page = tag_replace($page, $tag_full, $v, $attrs);
                    } else {
                        //if tag is not set and not a var - then it's subtemplate in a file - parse it
                        //echo "$tag SUBPARSE<br>\n";
                        $v = parse_page($basedir, tag_tplpath($tag, $tpl_name, $is_inline_tpl), $hf, 'v', $inline_tpl, $hf);
                        $page = tag_replace($page, $tag_full, $v, $attrs);
                    }
                } else {
                    $page = tag_replace_raw($page, $tag_full, '', array_key_exists('inline', $attrs));
                    // print "$tag not shown\n";
                }
            }
        }
        //if tags empty
    }
    //if  tpl empty
    if ($out_filename && $out_filename != 'v' && $out_filename != 's') {
        $outdir = dirname($out_filename);
        //check dir
        if (!is_dir($outdir)) {
            mkdir($outdir, 0777);
        }
        $OUTFILE = fopen($out_filename, "w") or die("Can't open out [{$out_filename}] file");
        fputs($OUTFILE, $page);
        fclose($OUTFILE);
    } else {
        if ($out_filename == 'v') {
            #variable mode
            return $page;
        } else {
            #screen mode
            print_header();
            print $page;
        }
    }
}
Esempio n. 10
0
 /**
  * app_settings_inputs()
  * Returns a set of HTML hidden inputs, each one for each app setting as APP_NAME, TEMPLATE, etc.
  * @return string html_inputs
  */
 public function app_settings_inputs()
 {
     $return = '';
     $escape = array();
     // Just creates the input if it is safe or is not an object
     foreach ($this->CI->config->config['app_settings'] as $attribute => $value) {
         if (!is_object($value)) {
             $return .= !in_array($attribute, $escape) || !$protected_mode ? "<input type=\"hidden\" name=\"{$attribute}\" id=\"{$attribute}\" value=\"" . tag_replace($value) . "\" />\n" : '';
         }
     }
     // Returns
     return $return;
 }
Esempio n. 11
0
* This HTML component build an img tag. It also check if the given url is a font-awesome icon
* and them let it be (know more on fontawesome.github.io/Font-Awesome/)
*
* It is loaded by the call $this->template->image($url_img);
*
* Or by the function loaded by template helper, called image($url_img);
*
* @param 	string $url_img
* @since 	28/06/2013
*
* --------------------------------------------------------------------------------------------------
*/
?>

<?php 
// Check if the given value is a font-awesome
if (stristr($url_img, 'class="fa') || stristr($url_img, "class='fa")) {
    echo $url_img;
} elseif ($url_img != '') {
    ?>
	
	<img src="<?php 
    echo tag_replace($url_img);
    ?>
" />

<?php 
}
?>

			
Esempio n. 12
0
 /**
  * Returns a set of HTML hidden inputs, each one for each app setting
  * as APP_NAME, TEMPLATE, etc.
  *
  * @return string html_inputs
  */
 public function app_settings_inputs()
 {
     $return = '';
     $escape = array();
     // Gets a single controller
     $CI = get_instance();
     // Loads properly configs
     if ($CI->acme_installed) {
         $config = $this->CI->config->config['app_settings'];
     } else {
         require 'application/core/engine-files/installer_app_settings.php';
     }
     // Just creates the input if it is safe or is not an object
     foreach ($config as $attribute => $value) {
         if (!is_object($value)) {
             $return .= !in_array($attribute, $escape) || !$protected_mode ? "<input type=\"hidden\" name=\"{$attribute}\" id=\"{$attribute}\" value=\"" . tag_replace($value) . "\" />\n" : '';
         }
     }
     // Returns
     return $return;
 }
Esempio n. 13
0
*			[url_img] => <i class="fa fa-fw fa-home"></i>
*		)
*
* @param    array $action
* @since    28/06/2013
*
* --------------------------------------------------------------------------------------------------
*/
?>

<?php 
// Adjust target
$target = get_value($action, 'target') != '' ? ' target="' . get_value($action, 'target') . '"' : '';
// Adjust image
$img = image(get_value($action, 'url_img'));
?>

<a href="<?php 
echo tag_replace(get_value($action, 'link'));
?>
" <?php 
echo $target;
?>
>
	<?php 
echo $img;
?>
	<?php 
echo get_value($action, 'label');
?>
</a>