QuickFox 2
changeset 34:0e05a7ed0206
модификация процесса обработки redefined.vis
для корректного переопределения блоков из частей стиля, отличных от common
Для указания переопределяемой части нужно вставить строку "<<part '{имя части}'>>' перед блоками, фактически переопределяющими эту часть стиля
для корректного переопределения блоков из частей стиля, отличных от common
Для указания переопределяемой части нужно вставить строку "<<part '{имя части}'>>' перед блоками, фактически переопределяющими эту часть стиля
| author | foxel |
|---|---|
| date | Wed Dec 30 16:25:48 2009 +0600 (8 months ago) |
| parents | fe2836c510cf |
| children | 1d100abd8030 |
| files | QFox2.md5 QFox2/Fox2.php install/content.sql kernel2/QF2_vis.php |
line diff
1.1 --- a/QFox2.md5 Mon Dec 28 17:27:30 2009 +0600 1.2 +++ b/QFox2.md5 Wed Dec 30 16:25:48 2009 +0600 1.3 @@ -17,7 +17,7 @@ 1.4 46b7e94d411d843ea0240e067f6c53d5 kernel2/QF2_services.php 1.5 fbb868231380f53d44908e433a0fd439 kernel2/QF2_sess.php 1.6 18bfe0a124d426ef047aca980f23e9cd kernel2/QF2_tar.php 1.7 -653770c691a34847f8b02da2b92446d4 kernel2/QF2_vis.php 1.8 +bf189c45b93961a4c6c773feda3b03f6 kernel2/QF2_vis.php 1.9 216f7ef0f383e5d56fdab9e65e7f93cd kernel2/QF_kernel2.php 1.10 96831fd122fe8a3ddf9dfc8563729ab3 kernel2/chars/cp037.chr 1.11 b2f6c332aaf70db2501afeba2c75bb5d kernel2/chars/cp037.ltt 1.12 @@ -144,7 +144,7 @@ 1.13 989489290036483052d960d6ec7f72c2 kernel2/chars/x-mac-roman.ltt 1.14 fb9375c8f8c5fc54000ba23e31f6ce2d kernel2/chars/zdingbat.chr 1.15 8f80cc35ff7453a2be7fa926f31383e3 QFox2/as_data.dat 1.16 -967c9d4fa4eee23875292a487472afd1 QFox2/Fox2.php 1.17 +17321f67e2996b444142bc8f6ce58a96 QFox2/Fox2.php 1.18 53600c837c8fb0c7bf938a68d2e8d650 QFox2/Fox2_adm.php 1.19 5c24b3ffa072e02cb45a11d69a917f34 QFox2/Fox2_cfgsets.php 1.20 64569999e61fcffd3d2f824bce1c1806 QFox2/Fox2_cms.php
2.1 --- a/QFox2/Fox2.php Mon Dec 28 17:27:30 2009 +0600 2.2 +++ b/QFox2/Fox2.php Wed Dec 30 16:25:48 2009 +0600 2.3 @@ -35,6 +35,7 @@ 2.4 { 2.5 var $URL_temps; 2.6 var $URL_domain = null; 2.7 + var $VIS_redefs = Array(); 2.8 var $err_traced = Array(); 2.9 2.10 function Fox2() 2.11 @@ -143,7 +144,7 @@ 2.12 $QF->Events->Set_On_Event('VIS_PreParse', Array(&$this, 'On_VIS_Prep') ); 2.13 $QF->Events->Set_On_Event('EJS_PreParse', Array(&$this, 'On_EJS_Prep') ); 2.14 if ($QF->Config->Get('vis_redefined', 'fox2')) 2.15 - $QF->Events->Set_On_Event('VIS_module_start', Array(&$this, '_VISUserMods_Preload') ); 2.16 + $QF->Events->Set_On_Event('VIS_RawParse', Array(&$this, '_VISUserMods_Add') ); 2.17 2.18 // running any autoruns from packages 2.19 if ($ar_datas = $QF->DSets->Get_DSet('fox_autoruns')) 2.20 @@ -705,9 +706,54 @@ 2.21 $indata = preg_replace_callback('#\{(?>(F|R)?URL:((?:\w+|\"[^\"]+\"|\|)+))\}#',Array(&$this, '_VISParse_URL_CB'),$indata); 2.22 } 2.23 2.24 - function _VISUserMods_Preload() 2.25 + function _VISUserMods_Add(&$indata, $style, $part) 2.26 + { 2.27 + global $QF; 2.28 + 2.29 + if (!isset($this->VIS_redefs[$style]) && !$this->_VISUserMods_Preload($style)) 2.30 + return; 2.31 + 2.32 + if (isset($this->VIS_redefs[$style]) && isset($this->VIS_redefs[$style][$part])) 2.33 + $indata.= $this->VIS_redefs[$style][$part]; 2.34 + } 2.35 + 2.36 + /*function _VISUserMods_Preload() 2.37 { 2.38 global $QF; 2.39 $QF->VIS->Load_Templates('user_redefined'); 2.40 + } */ 2.41 + 2.42 + function _VISUserMods_Preload($style) 2.43 + { 2.44 global $QF; 2.45 + if (!$QF->Check_Module('VIS')) 2.46 + return false; 2.47 + 2.48 + $style = strtolower($style); 2.49 + if (isset($this->VIS_redefs[$style])) 2.50 + return true; 2.51 + 2.52 + $cachename = QF_KERNEL_VIS_VPREFIX.$style.'_redefs'; 2.53 + $cfile = QF_STYLES_DIR.$style.'/redefined.vis'; 2.54 + if ($data = $QF->Cache->Get($cachename)) 2.55 + $this->VIS_redefs[$style] = $data; 2.56 + elseif ($data = qf_file_get_contents($cfile)) 2.57 + { 2.58 preg_match_all('#\<\<part \'(\w+)\'\>\>|[^\<]+|\<#', $data, $struct, PREG_SET_ORDER); 2.59 + $data = Array(); 2.60 + $p_name = QF_KERNEL_VIS_COMMON; 2.61 + foreach ($struct as $part) 2.62 + { 2.63 + if ($part[1]) 2.64 + $p_name = strtolower($part[1]); 2.65 + elseif (isset($data[$p_name])) 2.66 + $data[$p_name].= $part[0]; 2.67 + else 2.68 + $data[$p_name] = $part[0]; 2.69 + } 2.70 + $QF->Cache->Set($cachename, $data); 2.71 + $this->VIS_redefs[$style] = $data; 2.72 + return true; 2.73 + } 2.74 + else 2.75 + return false; 2.76 } 2.77 2.78 function _VISParse_URL_CB($matches)
3.1 --- a/install/content.sql Mon Dec 28 17:27:30 2009 +0600 3.2 +++ b/install/content.sql Wed Dec 30 16:25:48 2009 +0600 3.3 @@ -1391,19 +1391,19 @@ 3.4 REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.5 VALUES('fox_ajax_scripts', 'qf2', 'ptree_getpost', 'a:2:{s:6:\"module\";s:11:\"PTree_incls\";s:6:\"method\";s:11:\"AJX_getpost\";}', '0', ''); 3.6 REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.7 - VALUES('dev_rev_info', 'qf2', 'qf2', 'PA.091228.0841', '1', ''); 3.8 -REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.9 - VALUES('dev_rev_info', 'qf2_base', 'qf2_base', 'PA.091228.0841', '1', ''); 3.10 -REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.11 - VALUES('dev_rev_info', 'qf2_adm', 'qf2_adm', 'PA.091228.0841', '1', ''); 3.12 -REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.13 - VALUES('dev_rev_info', 'qf2_multiuser', 'qf2_multiuser', 'PA.091228.0841', '1', ''); 3.14 -REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.15 - VALUES('dev_rev_info', 'google_adds', 'google_adds', 'PA.091228.0841', '1', ''); 3.16 -REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.17 - VALUES('dev_rev_info', 'gallery', 'gallery', 'PA.091228.0841', '1', ''); 3.18 -REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.19 - VALUES('dev_rev_info', 'music_player', 'music_player', 'PA.091228.0841', '1', ''); 3.20 + VALUES('dev_rev_info', 'qf2', 'qf2', 'PA.091230.1005', '1', ''); 3.21 +REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.22 + VALUES('dev_rev_info', 'qf2_base', 'qf2_base', 'PA.091230.1005', '1', ''); 3.23 +REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.24 + VALUES('dev_rev_info', 'qf2_adm', 'qf2_adm', 'PA.091230.1005', '1', ''); 3.25 +REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.26 + VALUES('dev_rev_info', 'qf2_multiuser', 'qf2_multiuser', 'PA.091230.1005', '1', ''); 3.27 +REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.28 + VALUES('dev_rev_info', 'google_adds', 'google_adds', 'PA.091230.1005', '1', ''); 3.29 +REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.30 + VALUES('dev_rev_info', 'gallery', 'gallery', 'PA.091230.1005', '1', ''); 3.31 +REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.32 + VALUES('dev_rev_info', 'music_player', 'music_player', 'PA.091230.1005', '1', ''); 3.33 REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.34 VALUES('package_dbases', 'qf2_multiuser', 'qf2_multiuser', 'a:1:{i:0;s:9:\"users_rel\";}', '0', ''); 3.35 REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.36 @@ -1453,7 +1453,7 @@ 3.37 REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.38 VALUES('fox_index_dps', 'blogs', 'blogs', 'Blogs root', '1', ''); 3.39 REPLACE INTO `{DBKEY}datasets` (`set_id`, `package`, `data_id`, `data`, `scalar`, `lparse_sufx`) 3.40 - VALUES('dev_rev_info', 'blogs', 'blogs', 'PA.091228.0841', '1', ''); 3.41 + VALUES('dev_rev_info', 'blogs', 'blogs', 'PA.091230.1005', '1', ''); 3.42 3.43 3.44 # Data content for {DBKEY}config_sets
4.1 --- a/kernel2/QF2_vis.php Mon Dec 28 17:27:30 2009 +0600 4.2 +++ b/kernel2/QF2_vis.php Wed Dec 30 16:25:48 2009 +0600 4.3 @@ -356,6 +356,7 @@ 4.4 // not used for now - not needed 4.5 //if ($add_Consts = qf_file_load_datafile(QF_STCNTS_DIR.$part.'.cnt', true)) 4.6 // $this->Consts += $add_Consts; 4.7 + $QF->Events->Call_Event_Ref('VIS_RawParse', $indata, $style, $part); 4.8 4.9 $indata = str_replace('{ST_IMGS}', QF_ST_IMGS_DIR.$style, $indata); 4.10 $indata = str_replace('{IMGS}', QF_IMAGES_DIR, $indata); 4.11 @@ -364,7 +365,7 @@ 4.12 $indata = preg_replace_callback('#\{(?>L_((?:\w+|\"[^\"]+\"|\|)+))\}#',Array(&$this, '_Templ_Lang_CB'),$indata); 4.13 $indata = preg_replace('#\{(?>CONST:([\w\|]+))\}#e','(isset(\$this->Templ_Consts("$1"))) ? \$this->Templ_Consts("$1") : ""',$indata); 4.14 4.15 - $QF->Events->Call_Event_Ref('VIS_PreParse', $indata); 4.16 + $QF->Events->Call_Event_Ref('VIS_PreParse', $indata, $style, $part); 4.17 4.18 preg_match_all("#<<\+ '(?>(\w+))'>>(.*?)<<- '\\1'>>#s", $indata, $blocks); 4.19
