Exemplo n.º 1
0
 static function getNameParts($id, $name = null)
 {
     if (!$name) {
         $name = EntityTable::getName($id);
     }
     //get base parts of org name to filter donations
     $parts = preg_split('#[ \\\\/]#', OrgTable::stripNamePunctuation($name));
     $parts = self::filterNameParts($parts);
     if (count($parts) == 0 || count($parts) == 1 && $parts[0] == strtoupper($parts[0])) {
         $moreParts = array();
         $aliases = AliasTable::getByEntityId($id, false);
         foreach ($aliases as $alias) {
             $aliasParts = preg_split('#[ \\-\\\\/]#', OrgTable::stripNamePunctuation($alias));
             $aliasParts = self::filterNameParts($aliasParts);
             foreach ($aliasParts as $aliasPart) {
                 $moreParts[] = $aliasPart;
                 if (count($moreParts) > 1) {
                     break 2;
                 }
             }
         }
         // trick for finding unique values of merged $parts + $moreParts without changing the order:
         $parts = array_keys(array_count_values(array_merge($parts, $moreParts)));
     }
     $parts = count($parts) ? array_slice($parts, 0, 2) : array($name);
     return $parts;
 }