60 $this->Cache =
get_package(
'cache' ,
'last' , __FILE__ );
61 $this->CachedMultyFS =
get_package(
'cached_multy_fs' ,
'last' , __FILE__ );
63 'page::page_markup::page_markup_utilities' ,
'last' , __FILE__
66 $this->String =
get_package(
'string' ,
'last' , __FILE__ );
67 $this->Trace =
get_package(
'trace' ,
'last' , __FILE__ );
99 $ClassName = $p[
'fetched_package' ] !==
false ? get_class( $p[
'fetched_package' ] ) :
'false';
101 $PackageFullName = $p[
'package' ].
'.'.$p[
'package_version' ];
105 'Function "'.$FunctionName.
'" was not found in class "'.$ClassName.
106 '" from package '.$PackageFullName
143 if( $this->CachedMultyFS->file_exists(
"$PackageDirectory/conf/cf_global_settings" ) )
145 return( $this->CachedMultyFS->file_get_contents(
"$PackageDirectory/conf/cf_global_settings" ) );
152 catch( Exception $e )
188 $Package =
get_package( $PackageName , $PackageVersion , __FILE__ );
190 if( $Package ===
false )
194 $PackageName , $PackageVersion ).
'/unexisting_controller.php'
200 catch( Exception $e )
232 function get_view( $PackageName , $PackageVersion )
236 $Package =
get_package( $PackageName , $PackageVersion , __FILE__ );
237 if( $Package ===
false )
246 catch( Exception $e )
282 private function get_predefined_packages( $PageOptions )
286 $this->Settings->load_settings( $PageOptions );
287 $PredefinedPackages = array();
288 if( $this->Settings->get_setting(
'predefined_packages' ,
false ) )
290 $Raw = $this->CachedMultyFS->file_get_contents(
291 dirname( __FILE__ ).
'/conf/cf_predefined_packages' ,
'exploded'
293 foreach( $Raw as $Value )
295 $Tmp = explode(
'#' , $Value );
296 $PredefinedPackages [] = array(
297 'package' => $Tmp[ 0 ] ,
'package_version' => $Tmp[ 1 ] ,
298 'options' => $Tmp[ 2 ] ,
'placeholder' => $Tmp[ 3 ]
302 return( $PredefinedPackages );
304 catch( Exception $e )
344 $PagePackages = $Page->get_package_appliance( $PageName );
345 $PredefinedPackages = $this->get_predefined_packages( $PageOptions );
347 return( array_merge( $PredefinedPackages , $PagePackages ) );
349 catch( Exception $e )
381 $Package[
'settings' ] =
get_package_object(
'settings::settings' ,
'last' , __FILE__ );
384 $Package[
'package' ] , $Package[
'package_version' ]
387 $Package[
'settings' ]->load_settings( $GlobalSettings );
388 $Package[
'settings' ]->append_settings( $Package[
'options' ] );
390 $PlaceHolderParameters = $Template->get_placeholder_parameters( $Package[
'placeholder' ] );
392 if( $PlaceHolderParameters !==
false )
394 $Package[
'settings' ]->append_settings( $PlaceHolderParameters );
397 catch( Exception $e )
421 private function get_package_for_description( &$p )
425 if( $p[
'settings' ]->get_setting(
'controller' ,
false ) ==
'1' )
427 $p[
'fetched_package' ] = $this->
get_controller( $p[
'package' ] , $p[
'package_version' ] );
429 elseif( $p[
'settings' ]->get_setting(
'view' ,
false ) ==
'1' )
431 $p[
'fetched_package' ] = $this->
get_view( $p[
'package' ] , $p[
'package_version' ] );
435 $p[
'fetched_package' ] =
get_package( $p[
'package' ] , $p[
'package_version' ] , __FILE__ );
438 catch( Exception $e )
470 foreach( $Packages as $i => $p )
474 if( $Packages[ $i ][
'settings' ]->get_setting(
'meta' ,
false ) !==
false )
477 $MetaFileName = $Packages[ $i ][
'settings' ]->get_setting(
'meta' );
478 $MetaSettings = $this->CachedMultyFS->file_get_contents(
"$PackagePath/meta/$MetaFileName" );
479 $Packages[ $i ][
'settings' ]->append_settings( $MetaSettings );
482 $this->get_package_for_description( $Packages[ $i ] );
485 catch( Exception $e )
521 $this->Trace->start_group( $Type );
524 $Template->add_stylesheets();
527 foreach( $Packages as $i => $p )
529 if( $p[
'settings' ]->get_setting( $Type ,
false ) )
531 if( method_exists( $p[
'fetched_package' ] , $Type ) )
533 $Caller = array( $p[
'fetched_package' ] , $Type );
541 $this->Trace->end_group();
543 catch( Exception $e )
567 private function run_single_controller( &$p )
571 $ClassName = get_class( $p[
'fetched_package' ] );
573 $this->Trace->start_group(
"controller : $ClassName" );
575 $p[
'fetched_package' ]->controller( $p[
'settings' ] );
577 $this->Trace->end_group();
579 catch( Exception $e )
607 $this->Trace->start_group(
"controllers" );
609 foreach( $Packages as $i => $p )
611 if( $p[
'settings' ]->get_setting(
'controller' ,
false ) )
613 if( method_exists( $p[
'fetched_package' ] ,
'controller' ) )
615 $this->run_single_controller( $p );
624 $this->Trace->end_group();
626 catch( Exception $e )
654 private function run_single_view( &$p , &$Template )
658 if( $p[
'settings' ]->get_setting(
'cached' ,
false ) == 1 &&
659 $this->Cache->data_exists( $p[
'options' ] ) )
661 $View = $this->Cache->get_data( $p[
'options' ] );
665 $this->Trace->start_group(
"view : ".get_class( $p[
'fetched_package' ] ) );
667 $View = $p[
'fetched_package' ]->view( $p[
'settings' ] );
669 $View = $this->PageMarkupUtilities->wrap_control_view(
670 $p[
'settings' ] , $View
673 $this->Cache->add_data( $p[
'options' ] , $View );
675 $this->Trace->end_group();
678 $Template->parse( $p[
'placeholder' ] , $View );
680 catch( Exception $e )
712 $this->Trace->start_group(
"views" );
714 foreach( $Packages as $i => $p )
716 if( $p[
'placeholder' ] !=
'' )
718 if( $p[
'settings' ]->get_setting(
'view' ,
false ) )
720 if( $p[
'fetched_package' ] !==
false && method_exists( $p[
'fetched_package' ] ,
'view' ) )
722 $this->run_single_view( $p , $Template );
732 $this->Trace->end_group();
734 catch( Exception $e )