Exemplo n.º 1
0
 /**
  * @desc  parses the mw tags
  * @param $layout - string
  * @param $options
  * $options ['admin'] - loads the module admin
  * @return string
  * @author	Microweber Dev Team
  * @version 1.0
  * @since Version 1.0
  */
 function parseMicrwoberTags($layout, $options = false)
 {
     /*		$function_cache_id = false;
     		
     		//$args = func_get_args ();
     		if (! empty ( $options )) {
     			foreach ( $options as $k => $v ) {
     				
     				$function_cache_id = $function_cache_id . serialize ( $k ) . serialize ( $v );
     			
     			}
     		}
     		
     		$function_cache_id = __FUNCTION__ . md5 ( $layout ) . md5 ( $function_cache_id );
     		
     		$cache_group = 'extract_tags';
     		
     		//$cache_content = CI::model ( 'core' )->cacheGetContent ( $function_cache_id, $cache_group );
     		
     		if (($cache_content) != false) {
     			
     			//return $cache_content;
     		
     		}*/
     //echo memory_get_usage() . "\n"; // 36640
     /*$cache_id =  md5 ( $layout ) . md5 ( serialize ( $options ) );
     		$cache_group = 'blocks/'.DIRECTORY_SEPARATOR.intval(PAGE_ID).DIRECTORY_SEPARATOR.'';
     		
     		
     		
     		$cache_content = CI::model ( 'core' )->cacheGetContentAndDecode ( $cache_id, $cache_group );*/
     if ($cache_content != false) {
         //return $cache_content;
     }
     static $mem = array();
     static $mem2 = array();
     $layout_md5 = md5($layout);
     $options_md5 = md5(serialize($options));
     $check = $layout_md5 . $options_md5;
     if ($mem["{$check}"] != false) {
         return $mem[$check];
     }
     //var_dump( $this->$parse_memory);
     //$layout = str_ireplace ( '<mw', '<microweber', $layout );
     $layout = CI::model('core')->replace_in_long_text('<mw', '<microweber', $layout, $use_normal_replace = true);
     $v = $layout;
     //	$tags1 = CI::model ( 'core' )->extractTags ( $v, '*', $selfclosing = true, $return_the_entire_tag = true, $charset = 'UTF-8' );
     if (strstr($layout, '<microweber') == true) {
         //$layout = $this->parseMicrwoberTags ( $layout, $options );
     }
     if (strstr($layout, '<mw') == true) {
         //$layout = $this->parseMicrwoberTags ( $layout, $options );
     }
     if (strstr($layout, '<nomw') == true) {
         $relations = array();
         $tags = CI::model('core')->extractTags($layout, 'nomw', $selfclosing = false, $return_the_entire_tag = true, $charset = 'UTF-8');
         //	p($tags);
         $matches = $tags;
         $txt_to_replace_back = array();
         if (!empty($matches)) {
             //
             foreach ($matches as $m) {
                 $hash = md5($m['full_tag']);
                 $hash = 'replace_back_' . $hash;
                 $txt_to_replace_back[$hash] = $m['full_tag'];
                 $layout = str_replace($m['full_tag'], $hash, $layout);
             }
         }
     }
     if (strstr($layout, '<block') == true) {
         $editmode = CI::model('core')->is_editmode();
         //p($editmode);
         $relations = array();
         $tags = CI::model('core')->extractTags($layout, 'block', $selfclosing = true, $return_the_entire_tag = true, $charset = 'UTF-8');
         //	p($tags);
         $matches = $tags;
         if (!empty($matches)) {
             //
             foreach ($matches as $m) {
                 //
                 if ($m['tag_name'] == 'block') {
                     $attr = $m['attributes'];
                     if ($attr['id'] != '') {
                         //	p($m);
                         $attr['id'] = trim($attr['id']);
                         $is_global = $attr['global'];
                         if ($is_global == false) {
                             $is_global2 = $attr['rel'];
                             if (trim($is_global2) == 'global') {
                                 $is_global = true;
                             }
                         }
                         if (PAGE_ID != false and $is_global == false) {
                             $try_file = TEMPLATE_DIR . 'blocks/' . PAGE_ID;
                             $try_file = normalize_path($try_file);
                             $try_file .= $attr['id'] . '.php';
                             //p($try_file);
                             if (is_file($try_file)) {
                             } else {
                                 $try_file = TEMPLATE_DIR . 'blocks/' . $attr['id'] . '.php';
                             }
                         } else {
                             $try_file = TEMPLATE_DIR . 'blocks/' . $attr['id'] . '.php';
                         }
                         $try_file_default = TEMPLATE_DIR . 'blocks/default.php';
                         if (is_file($try_file) == false) {
                             $is_admin = is_admin();
                             if ($is_admin == true) {
                                 $dir = dirname($try_file);
                                 if (is_dir($dir) == false) {
                                     @mkdir_recursive($dir);
                                 }
                                 if (!copy($try_file_default, $try_file)) {
                                     @touch($try_file);
                                     //echo "failed to copy $file...\n";
                                 }
                             }
                         }
                         if (is_file($try_file) == true) {
                             $arrts = array();
                             foreach ($attr as $att => $at) {
                                 $this->template[$att] = $at;
                                 $arrts[$att] = $at;
                             }
                             $this->template['params'] = $arrts;
                             $this->load->vars($this->template);
                             $module_file = $this->load->file($try_file, true);
                             //p($arrts);
                             /*	if ($editmode == true) {
                             				//p($m);
                             				$edtid_hash = base64_encode ( $m ['full_tag'] );
                             				if (strval ( $module_file ) != '') {
                             					$module_file = '<div class="editblock"  id="' . $attr ['id'] . '">' . $module_file . '</div>';
                             				} else {
                             					$module_file = false;
                             				}
                             			
                             			} else {
                             				if (strval ( $module_file ) != '') {
                             					$module_file = '<div class="editblock" id="' . $attr ['id'] . '">' . $module_file . '</div>';
                             				}
                             			}*/
                             if (strval($module_file) != '') {
                                 if ($is_global == true) {
                                     $str123 = ' rel="global" ';
                                 } else {
                                     $str123 = false;
                                 }
                                 $module_file = '<div class="editblock" ' . $str123 . '   id="' . $attr['id'] . '">' . $module_file . '</div>';
                             } else {
                                 //$module_file = false;
                                 $module_file = '<div class="editblock" ' . $str123 . '   id="' . $attr['id'] . '">' . '</div>';
                             }
                             if (strstr($module_file, '<block') == true) {
                                 $module_file = self::parseMicrwoberTags($module_file, $options);
                             }
                             $layout = str_replace_count($m['full_tag'], $module_file, $layout, 1);
                             //$layout = str_replace ( $m ['full_tag'], '', $layout );
                             $layout = str_replace_count('</block>', '', $layout, 1);
                             //$layout = str_replace ( '</microweber>', '', $layout );
                         }
                     }
                 }
             }
         }
     }
     //
     if (strstr($layout, '<microweber') == true) {
         $editmode = CI::model('core')->is_editmode();
         $relations = array();
         $tags = CI::model('core')->extractTags($layout, 'microweber', $selfclosing = true, $return_the_entire_tag = true, $charset = 'UTF-8');
         //	p($tags);
         $matches = $tags;
         if (!empty($matches)) {
             //
             foreach ($matches as $m) {
                 if ($m['tag_name'] == 'microweber') {
                     $attr = $m['attributes'];
                     if ($attr['module'] != '') {
                         $mmd5 = md5($attr['module']);
                         $check_if_uninstalled = MODULES_DIR . '_system/' . $mmd5 . '.php';
                         if (is_dir(MODULES_DIR . '_system/') == false) {
                             touch(MODULES_DIR . '_system/');
                         }
                         if (is_file($check_if_uninstalled) == true) {
                             //	$attr ['module'] = false;
                         }
                     }
                     if (strval($attr['module']) == '') {
                         $attr['module'] = 'non_existing';
                     }
                     //p($attr ['module']);
                     if ($attr['module'] != '') {
                         $attr['module'] = trim($attr['module']);
                         $attr['module'] = str_replace('\\', '/', $attr['module']);
                         $attr['module'] = reduce_double_slashes($attr['module']);
                         $try_file1 = MODULES_DIR . '' . $attr['module'] . '.php';
                         $try_file = MODULES_DIR . 'modules/' . $attr['module'] . '.php';
                         if ($options['admin'] == true) {
                             $try_file1 = MODULES_DIR . 'admin/' . $attr['module'] . '.php';
                             $try_filefront = MODULES_DIR . '' . $attr['module'] . '.php';
                             if (strstr($attr['module'], 'admin') == false) {
                                 $try_file1 = MODULES_DIR . 'admin/' . $attr['module'] . '.php';
                             } else {
                                 $try_file1 = MODULES_DIR . '' . $attr['module'] . '.php';
                             }
                         }
                         $try_file1 = normalize_path($try_file1, false);
                         //$a = is_file ( $try_file1 );
                         //p($try_file1);
                         //p($a);
                         if (is_file($try_file1) == false) {
                             if (is_file($try_file) == true) {
                                 $try_config_file = DEFAULT_TEMPLATE_DIR . 'modules/' . $attr['module'] . '_config.php';
                             } else {
                                 if ($options['admin'] == true) {
                                     if (strstr($attr['module'], 'admin') == false) {
                                         $try_file = MODULES_DIR . 'admin/' . '' . 'default' . '.php';
                                     } else {
                                         $try_file = MODULES_DIR . '' . '' . 'default' . '.php';
                                     }
                                 }
                             }
                             $is_admin = is_admin();
                             if ($is_admin == true) {
                                 $try_file1 = $try_filefront;
                                 $try_config_file = MODULES_DIR . '' . $attr['module'] . '_config.php';
                                 $dir = dirname($try_file1);
                                 if (is_dir($dir) == false) {
                                     mkdir_recursive($dir);
                                 }
                                 //print ( "You are trying to call module that doesnt exist in $try_file1.$try_file Please create it!" );
                                 //var_dump( $try_file, $try_file1);
                                 //exit ( "Modile file not found in $try_file1. Please create it!" );
                                 //if (! copy ( $try_file, $try_file1 )) {
                                 //echo "failed to copy $file...\n";
                                 //}
                                 $error = true;
                             } else {
                                 //print ( "You are trying to call module that doesnt exist in $try_file1.$try_file Please create it!" );
                                 $error = true;
                             }
                         } else {
                             $try_config_file = MODULES_DIR . '' . $attr['module'] . '_config.php';
                         }
                         if ($error == true) {
                             $try_file1 = MODULES_DIR . 'non_existing.php';
                             $error = false;
                         }
                         //	p($try_file1);
                         if (is_file($try_file1) == true and $error == false) {
                             $arrts = array();
                             foreach ($attr as $att => $at) {
                                 $this->template[$att] = $at;
                                 //$this->template [$att] = mw_get_var($at);
                                 $arrts[$att] = $at;
                             }
                             $no_edit = false;
                             $no_admin = false;
                             $check2 = false;
                             $mem2_md5_1 = md5(serialize($m));
                             //$mem2_md5_2 = md5 ( serialize ( $arrts ) );
                             $temp2 = false;
                             $check2 = $mem2_md5_1;
                             $check2 = strval($check2);
                             //
                             $temp1 = parse_memory_storage($check2);
                             if ($temp1 != false) {
                                 //var_dump ( $temp1 );
                                 $module_file = $temp1;
                             } else {
                                 //
                                 $try_config_file = normalize_path($try_config_file);
                                 $try_config_file = rtrim($try_config_file, '\\');
                                 $cache_this = true;
                                 $force_cache_this = false;
                                 if (is_file($try_config_file)) {
                                     $config = false;
                                     include $try_config_file;
                                     if (!empty($config)) {
                                         $check_icon = MODULES_DIR . '' . $attr['module'] . '.png';
                                         $icon = pathToURL($check_icon);
                                         //p($config);
                                         $config['icon'] = $icon;
                                         $this->template['config'] = $config;
                                         if (!empty($config['options'])) {
                                             $this->setup_module_options($config['options']);
                                         }
                                         $cache_for_session = false;
                                         if ($config['no_cache'] == true) {
                                             $cache_this = false;
                                             $do_not_cache_whole_block = true;
                                             $cache_for_session = true;
                                         }
                                         if ($config['cache'] == true) {
                                             $force_cache_this = true;
                                             $cache_for_session = true;
                                         }
                                         if ($config['no_edit'] == true) {
                                             $no_edit = true;
                                         }
                                         if ($config['no_admin'] == true) {
                                             $no_admin = true;
                                         }
                                     }
                                 }
                                 if ($arrts['no_cache'] == true) {
                                     $cache_this = false;
                                 }
                                 if ($options['no_cache'] == true) {
                                     $cache_this = false;
                                 }
                                 if ($force_cache_this == false) {
                                     if (strstr($attr['module'], 'admin/') == true) {
                                         $cache_this = false;
                                     }
                                 }
                                 if ($attr['module_id'] == true) {
                                     $mod_id = $attr['module_id'];
                                 } else {
                                     $mod_id = false;
                                 }
                                 if ($options['admin'] == true) {
                                     $cache_this = false;
                                 }
                                 $params_encoded = false;
                                 if ($force_cache_this == true) {
                                     $cache_this = true;
                                 }
                                 //var_dump($force_cache_this);
                                 if ($cache_this == true) {
                                     $cache_id = md5($try_file1) . md5(serialize($arrts));
                                     if ($cache_for_session == true) {
                                         $cache_id = md5($try_file1) . sess_id() . md5(serialize($arrts));
                                     }
                                     if ($_POST) {
                                         $cache_id = $cache_id . md5(serialize($_POST));
                                     }
                                     $cache_group = 'global/blocks/';
                                     $cache_content = CI::model('core')->cacheGetContentAndDecode($cache_id, $cache_group);
                                     if ($cache_content != false) {
                                         //var_dump($cache_content);
                                         $module_file = $cache_content;
                                     } else {
                                         $this->template['params'] = $arrts;
                                         $this->load->vars($this->template);
                                         //$module_file = $this->load->file ( $try_file1, true );
                                         $module_file = CI::file($try_file1, true);
                                         CI::model('core')->cacheWriteAndEncode($module_file, $cache_id, $cache_group);
                                     }
                                 } else {
                                     $this->template['params'] = $arrts;
                                     $this->load->vars($this->template);
                                     //$module_file = $this->load->file ( $try_file1, true );
                                     $module_file = CI::file($try_file1, true);
                                 }
                                 //$params_encoded = encode_var ( $arrts );
                                 $params_encoded = 'edit_tag';
                                 $params_module = codeClean($arrts['module']);
                             }
                             //if (($attr ['module'] != 'header') and ($attr ['module'] != 'footer')) {
                             //
                             if ($editmode == true) {
                                 //	p($m);
                                 //p( $arrts);
                                 if ($no_admin == true) {
                                     $no_admin_tag = ' no_admin="true" ';
                                 } else {
                                     $no_admin_tag = '';
                                 }
                                 if ($mod_id == true) {
                                     $mod_id_tag = ' module_id="' . $mod_id . '" ';
                                 } else {
                                     $mod_id_tag = '';
                                 }
                                 //$edtid_hash = base64_encode ( $m ['full_tag'] );
                                 $edtid_hash = 'edit_tag';
                                 if (strval($module_file) != '') {
                                     if ($options['do_not_wrap'] == true) {
                                         $module_file = $module_file;
                                     } else {
                                         if ($no_edit == false) {
                                             //$module_file = '<div onmouseup="load_edit_module_by_module_id(\'' . $mod_id . '\')" mw_params_encoded="' . $params_encoded . '"  mw_params_module="' . $params_module . '"    ' . $mod_id_tag . ' class="module" ' . $no_admin_tag . ' edit="' . $edtid_hash . '">' . $module_file . '</div>';
                                             $module_file = '<div mw_params_encoded="' . $params_encoded . '"  mw_params_module="' . $params_module . '"    ' . $mod_id_tag . ' class="module" ' . $no_admin_tag . ' edit="' . $edtid_hash . '">' . $module_file . '</div>';
                                             //$module_file = '<div mw_params_encoded="' . $params_encoded . '"  mw_params_module="' . $params_module . '"    ' . $mod_id_tag . ' class="module" ' . $no_admin_tag . ' edit="' . $edtid_hash . '">' . $module_file . '</div>';
                                         } else {
                                             $module_file = '<div  mw_params_encoded="' . $params_encoded . '" mw_params_module="' . $params_module . '"   ' . $mod_id_tag . ' ' . $no_admin_tag . '  class="module">' . $module_file . '</div>';
                                         }
                                     }
                                 } else {
                                     $module_file = false;
                                 }
                                 //	p($m ['full_tag']);
                             } else {
                                 if (strval($module_file) != '') {
                                     $module_file = '<div class="module" mw_params_encoded="' . $params_encoded . '" mw_params_module="' . $params_module . '"  >' . $module_file . '</div>';
                                 }
                             }
                             //}  ++
                             $module_file = str_replace('<mw', '<microweber', $module_file);
                             if (strstr($module_file, '<microweber') == true and $error == false) {
                                 $module_file = self::parseMicrwoberTags($module_file, $options);
                             }
                             $layout = str_replace_count($m['full_tag'], $module_file, $layout, 1);
                             //$layout = str_replace ( $m ['full_tag'], $module_file, $layout );
                             //$layout = str_replace_count ( '</microweber>', '', $layout, 1 );
                             $layout = str_replace_count('</mw>', '', $layout, 1);
                             $layout = str_replace_count('</microweber>', '', $layout, 1);
                             //$layout = str_replace ( '</mw>', '', $layout );
                             //$layout = str_replace ( '</microweber>', '', $layout );
                             //parse_memory_storage ( $check2, $layout );
                         }
                     }
                 }
             }
         }
     }
     if (strstr($layout, '<editable') == true and $error == false) {
         $editmode = CI::model('core')->is_editmode();
         //p($editmode);
         $relations = array();
         $tags = CI::model('core')->extractTags($layout, 'editable', $selfclosing = false, $return_the_entire_tag = true, $charset = 'UTF-8');
         $matches = $tags;
         if (!empty($matches)) {
             foreach ($matches as $m) {
                 if ($m['tag_name'] == 'editable') {
                     $attr = $m['attributes'];
                     $get_global = false;
                     if ($editmode == true) {
                     }
                     if ($attr['rel'] == 'global') {
                         $attr['global'] = true;
                         $get_global = true;
                     }
                     if ($attr['rel'] == 'page') {
                         $attr['page'] = PAGE_ID;
                     }
                     if ($attr['rel'] == 'post') {
                         $attr['post'] = POST_ID;
                         if ($attr['post'] == false) {
                             $attr['post'] = PAGE_ID;
                             //$attr ['page'] = PAGE_ID;
                         }
                     }
                     if ($attr['rel'] == 'category') {
                         $attr['category'] = CATEGORY_ID;
                     }
                     if ($attr['rel'] == 'module') {
                         $relate_to_module = true;
                     } else {
                         $relate_to_module = false;
                     }
                     if ($relate_to_module == false) {
                         if ($attr['page']) {
                             $data = get_page($attr['page']);
                         } else {
                             if ($attr['post']) {
                                 $data = get_post($attr['post']);
                                 if ($data == false) {
                                     $data = get_page($attr['post']);
                                 }
                                 //p ( $data );
                                 //p ( $attr );
                             } else {
                                 if ($attr['category']) {
                                     $data = get_category($attr['category']);
                                 } else {
                                     if ($attr['global']) {
                                         $get_global = true;
                                     }
                                 }
                             }
                         }
                     }
                     $cf = false;
                     $field_content = false;
                     if ($get_global == true) {
                         $field_content = CI::model('core')->optionsGetByKey($attr['field'], $return_full = false, $orderby = false);
                     } else {
                         if (strstr($attr['field'], 'custom_field_') == true) {
                             $cf = str_replace('custom_field_', '', $attr['field']);
                             $field_content = $data['custom_fields'][$cf];
                         } else {
                             $field_content = $data[$attr['field']];
                         }
                     }
                     //p($m ['full_tag']);
                     if (trim($field_content) == '') {
                         $field_content = $m['contents'];
                     } else {
                         //$quote_style = ENT_COMPAT [, string $charset = 'UTF-8' ]]
                         $field_content = htmlspecialchars_decode($field_content);
                         //$field_content = html_entity_decode ( $field_content, $quote_style = ENT_COMPAT, $charset = 'UTF-8' );
                     }
                     //	$field_content = html_entity_decode ( $field_content );
                     $field_content = htmlspecialchars_decode($field_content);
                     $attrs_to_append = false;
                     if ($editmode == true) {
                         foreach ($attr as $at_key => $at_value) {
                             $attrs_to_append .= "{$at_key}='{$at_value}' ";
                         }
                         //p($attrs_to_append);
                         $layout = str_replace_count($m['full_tag'], "<div class='edit' {$attrs_to_append}>" . $field_content . '</div>', $layout, 1);
                     } else {
                         $layout = str_replace_count($m['full_tag'], $field_content, $layout, 1);
                     }
                     $layout = str_replace('<mw', '<microweber', $layout);
                     if (strstr($layout, '<microweber') == true and $error == false) {
                         $layout = self::parseMicrwoberTags($layout, $options);
                     }
                 }
             }
         }
     }
     //{SITE_URL}
     $site_url = site_url();
     //$layout = str_replace ( '{SITE_URL}', $site_url, $layout );
     $layout = CI::model('core')->replace_in_long_text('{SITE_URL}', $site_url, $layout, true);
     $layout = CI::model('core')->replace_in_long_text('{SITEURL}', $site_url, $layout, true);
     //$layout = str_replace ( '{SITEURL}', $site_url, $layout );
     //$layout = $this->badWordsRemove ( $layout );
     if (defined('POST_ID') == true) {
         //$layout = str_replace ( '{POST_ID}', POST_ID, $layout );
         $layout = CI::model('core')->replace_in_long_text('{POST_ID}', POST_ID, $layout, true);
     }
     if (defined('PAGE_ID') == true) {
         //$layout = str_replace ( '{PAGE_ID}', PAGE_ID, $layout );
         $layout = CI::model('core')->replace_in_long_text('{PAGE_ID}', PAGE_ID, $layout, true);
     }
     if (defined('CATEGORY_ID') == true) {
         //$layout = str_replace ( '{CATEGORY_ID}', CATEGORY_ID, $layout );
         $layout = CI::model('core')->replace_in_long_text('{CATEGORY_ID}', CATEGORY_ID, $layout, true);
     }
     //	$this->load->vars ( $this->template );
     if (stristr($layout, 'content_meta_title')) {
         if (defined('POST_ID') == true) {
             $is_content = get_post(POST_ID);
             $is_content_post = $is_content;
             $layout = str_ireplace('{POST_ID}', POST_ID, $layout);
         }
         if ($is_content == false) {
             if (defined('PAGE_ID') == true) {
                 $is_content = get_page(PAGE_ID);
                 $is_content_page = $is_content;
             }
         }
         if ($is_content['content_meta_title']) {
             $content_meta_title = $is_content['content_meta_title'];
         } elseif ($is_content['content_title']) {
             $content_meta_title = codeClean($is_content['content_title']);
         } else {
             $content_meta_title = CI::model('core')->optionsGetByKey('content_meta_title');
         }
         $layout = str_ireplace('{content_meta_title}', $content_meta_title, $layout);
         if ($is_content['content_meta_keywords']) {
             $content_meta_title = $is_content['content_meta_keywords'];
         } else {
             $content_meta_title = CI::model('core')->optionsGetByKey('content_meta_keywords');
         }
         $layout = str_ireplace('{content_meta_keywords}', $content_meta_title, $layout);
         if ($is_content['content_meta_description']) {
             $content_meta_title = $is_content['content_meta_description'];
         } elseif ($is_content['content_description']) {
             $content_meta_title = codeClean($is_content['content_description']);
         } elseif ($is_content['content_body']) {
             $content_meta_title = codeClean($is_content['content_body']);
         } else {
             $content_meta_title = CI::model('core')->optionsGetByKey('content_meta_title');
         }
         $layout = str_ireplace('{content_description}', $content_meta_title, $layout);
     }
     if (is_file(ACTIVE_TEMPLATE_DIR . 'controllers/pre_layout_display.php')) {
         include ACTIVE_TEMPLATE_DIR . 'controllers/pre_layout_display.php';
     }
     if (strstr($layout, '<editable') == true or strstr($layout, '<mw') == true or strstr($layout, '<microweber') == true or strstr($layout, '<block') == true and $error == false) {
         $layout = self::parseMicrwoberTags($layout, $options);
     }
     if (!empty($txt_to_replace_back)) {
         foreach ($txt_to_replace_back as $k => $v) {
             //	$v = html_entity_decode($v);
             $layout = str_replace($k, $v, $layout);
         }
         $layout = str_replace('<nomw>', '', $layout);
         $layout = str_replace('</nomw>', '', $layout);
     }
     if (empty($relations)) {
         $layout = str_ireplace('</head>', $prepend_to_head . '</head>', $layout);
         //$layout= '<div class="mw_module">'.$layout.'</div>';
         $mem[$check] = $layout;
         //if ($do_not_cache_whole_block == false) {
         //CI::model ( 'core' )->cacheWriteAndEncode ( $layout, $cache_id, $cache_group );
         //}
         //CI::model ( 'core' )->cacheWrite ( $layout, $function_cache_id, $cache_group );
         return $layout;
     } else {
         //if ($do_not_cache_whole_block == false) {
         //CI::model ( 'core' )->cacheWriteAndEncode ( $v, $cache_id, $cache_group );
         //}
         //CI::model ( 'core' )->cacheWrite ( $v, $function_cache_id, $cache_group );
         $mem[$check] = $v;
         return $v;
     }
     //p($relations);
 }
Exemplo n.º 2
0
 function getPostByURL($content_id, $url, $no_recursive = false)
 {
     //  header("Content-type: text/plain; charset=UTF-8");
     $function_cache_id = false;
     $args = func_get_args();
     foreach ($args as $k => $v) {
         $function_cache_id = $function_cache_id . serialize($k) . serialize($v);
     }
     $function_cache_id = __FUNCTION__ . md5($function_cache_id);
     $content_id = intval($content_id);
     $cache_group = 'content/' . $content_id;
     $cache_content = CI::model('core')->cacheGetContentAndDecode($function_cache_id, $cache_group);
     if ($cache_content != false) {
         return $cache_content;
     }
     global $cms_db_tables;
     if (strval($url) == '') {
         return false;
     }
     $id = array();
     $id['id'] = $content_id;
     $id = $this->contentGetById($id);
     $the_real_url = str_replace_count($id['content_url'], '', $url, 1);
     $the_real_url = trim_slashes($the_real_url);
     $url = $the_real_url;
     $table = $cms_db_tables['table_content'];
     $url = strtolower($url);
     //$content_url_md5 = md5 ( $url );
     $sql = "SELECT id, content_url from {$table} where content_url='{$url}' and content_type='post'   order by updated_on desc limit 0,1 ";
     $q = CI::model('core')->dbQuery($sql, md5($sql), 'content/global');
     $result = $q;
     if (!empty($result)) {
         $content = $result[0];
         $content = $content['id'];
     } else {
         return false;
     }
     $data = array();
     $data['id'] = $content;
     $content = $this->contentGetByIdAndCache($data['id']);
     if (empty($content)) {
         return false;
     } else {
         CI::model('core')->cacheWriteAndEncode($content, $function_cache_id, $cache_group);
         return $content;
     }
 }
Exemplo n.º 3
0
 function testStrReplaceCountOverLimit()
 {
     $str = 'Iñtôërnâtiônàliôzætôiøn';
     $expected = 'Iñttëstërnâtitëstnàliôzætôiøn';
     $replace = str_replace_count('ô', 'tëst', $str, 2);
     $this->assertSame($replace, $expected);
 }