sub Get_Page_Vars { my ($temp_vars,$type) = @_; my $sth = $dbh->prepare (qq{ SELECT `name`,`value`,`add_name` FROM `page_vars` WHERE `type` = ? OR `type2` = ? ORDER BY add_name,id,d}); $sth->execute($type, $type); while( my ($db_name,$content,$_add_name) = $sth->fetchrow_array()) { { local $_ = $content; my $ident_key = qr/[\w{}']+/; my $phash_pat = qr/[$]$ident_key/; if (/$phash_pat/) { s/($phash_pat)/ eval($temp_vars{$1}) /ge; s/($phash_pat)/ $temp_vars{eval($1)} /ge; s/($phash_pat)/ eval($vars{$1}) /ge; s/($phash_pat)/ $vars{eval($1)} /ge; s/($phash_pat)/ eval($1) /ge; } if (/\/) { s/\/ eval($vars{$1}) /ge; s/\/ $vars{eval($1)} /ge; s/\/ eval($temp_vars{$1}) /ge; s/\/ $temp_vars{eval($1)} /ge; s/\/ eval($1) /ge; } if (/{{$ident_key}}/) { s/{{($ident_key)}}/ eval($vars{$1}) /ge; s/{{($ident_key)}}/ $vars{eval($1)} /ge; } s|
|
|gi; $content = $_; } if ($content && ($content =~ //i && $content =~ /<\/code>/i)) { while($content =~ //i && $content =~ /<\/code>/i) { my ($code1,$code2,$_do_code); ($content,$code1) = split //, $content, 2; ($code2,$ocontent) = split /<\/code>/, $code1, 2; $_do_code = eval($code2); $content = $content . $_do_code . $ocontent; } } if ($content && ($content =~ //i && $content =~ /<\/syscode>/i)) { while($content =~ //i && $content =~ /<\/syscode>/i) { my ($syscode1,$syscode2); ($content,$syscode1) = split //i, $content, 2; ($syscode2,$ocontent) = split /<\/syscode>/i, $syscode1, 2; eval{$syscode2}; $content = $content . $ocontent; } } if ($_add_name) { $content = qq~$content~; } $temp_vars{$db_name} = $content; } $sth->finish(); return(%temp_vars); }