Changeset 22 for base.php


Ignore:
Timestamp:
Oct 22, 2008, 11:44:32 AM (16 years ago)
Author:
george
Message:
  • Upraveno: Optimalizace načítání obslužných tříd typů "na požádání".
  • Upraveno: Načítání znakových převodních tabulek "na požádání".
File:
1 edited

Legend:

Unmodified
Added
Removed
  • base.php

    r21 r22  
    477477function GetTypeDefinition($Id)
    478478{
    479   global $Database, $Types;
     479  global $Database, $Types, $TypeDefinitionList;
    480480
    481481  if(!array_key_exists($Id, $Types))
     
    499499        $DbRow['BaseType'] = $ParentType['Name'];
    500500      }
     501      if(!array_key_exists($DbRow['BaseType'], $TypeDefinitionList))
     502      {
     503        $ClassName = 'Type'.$DbRow['BaseType'];
     504        $TypeDefinitionList[$DbRow['BaseType']] = new $ClassName;
     505      }
     506      $DbRow['Class'] = &$TypeDefinitionList[$DbRow['BaseType']];
    501507      $Types[$DbRow['ItemId']] = $DbRow;
    502508    } else $Types[$DbRow['ItemId']] = NULL;
     
    514520function ExecuteTypeEvent($Type, $Event, $Parameters)
    515521{
    516   global $TypeDefinitionList;
    517 
    518522  $TypeDefinition = GetTypeDefinition($Type);
    519   $TypeObject = $TypeDefinitionList[$TypeDefinition['BaseType']];
     523  $TypeObject = $TypeDefinition['Class'];
    520524  if(is_callable(array($TypeObject, $Event))) return($TypeObject->$Event($Parameters));
    521525    else return($TypeDefinition['BaseType'].'->'.$Event.'('.$Type.')');
Note: See TracChangeset for help on using the changeset viewer.