예제 #1
0
function generateClass($package, $class, $language = 'PHP')
{
    $languageClass = 'PHOS_' . $language;
    $language = new $languageClass();
    //make sure class exists
    $classDir = fileName(PACKAGEDIR, $package, CLASSDIR, $class);
    if (!file_exists($classDir)) {
        throw new Exception("{$classDir} does not appear to exist");
    }
    $definition = array('extend' => false, 'implement' => false, 'mixin' => false);
    foreach ($definition as $dname => $val) {
        $dfile = fileName($classDir, $dname);
        if (file_exists($dfile)) {
            $definition[$dname] = array_map('trim', explode(',', trim(file_get_contents($dfile))));
        }
    }
    //get the properties, based on type build constructor
    $properties = loadProperties($classDir);
    //get the methods
    $methods = loadMethods($classDir);
    //start the file
    $file = $language->startClass($class, $definition);
    if ($definition['mixin']) {
        //load mixin methods and properties
        foreach ($definition['mixin'] as $module) {
            $moduleDir = fileName(PACKAGEDIR, $package, MODULEDIR, $module);
            $properties = array_merge($properties, loadProperties($moduleDir));
            $methods = array_merge($methods, loadMethods($moduleDir));
        }
    }
    //build the construct method based on the private propeties
    $constructor = '';
    foreach ($properties as $property) {
        $file .= $language->addProperty($property);
        $constructor .= $language->selfAssign($property, $language->newObject($property->type, $property->default));
    }
    $file .= "\n";
    $methods[$language->constructorName] = (object) array('name' => $language->constructorName, 'scope' => 'public', 'args' => '()', 'body' => $constructor);
    foreach ($methods as $method) {
        $file .= $language->method($method);
    }
    //write file
    file_put_contents(fileName(GENERATEDIR, "class.{$class}.php"), $file . '}');
}
$store = mapi_openmsgstore($session, $storeEntryid);
$root = mapi_msgstore_openentry($store, null);
$rootProps = mapi_getprops($root, array(PR_IPM_CONTACT_ENTRYID));
$folder = mapi_msgstore_openentry($store, $rootProps[PR_IPM_CONTACT_ENTRYID]);
isUnicodeStore($store);
// open the csv file and start reading
$fh = fopen($csv_file, "r");
if (!$fh) {
    trigger_error("Can't open CSV file \"" . $csv_file . "\"", E_USER_ERROR);
}
// empty folder if needed
if (EMPTY_FOLDER) {
    mapi_folder_emptyfolder($folder, DEL_ASSOCIATED);
}
$properties = array();
loadProperties($properties);
$properties = getPropIdsFromStrings($store, $properties);
//composed properties which require more work
$special_properties = array("email_address_1", "email_address_2", "email_address_3");
$i = 1;
while (!feof($fh)) {
    $line = fgetcsv($fh, CSV_MAX_LENGTH, CSV_DELIMITER, CSV_ENCLOSURE);
    if (!$line) {
        continue;
    }
    if ($i == 1 && defined('FIELD_NAMES') && FIELD_NAMES) {
        $i++;
        continue;
    }
    $props = array();
    //set "simple" properties
    } else {
        $suffix = 0;
    }
    $start = strpos($buffer, $start);
    if ($strrpos) {
        $_end = strrpos($buffer, $end);
    } else {
        $_end = strpos($buffer, $end, $start);
    }
    if ($start !== FALSE) {
        return substr($buffer, $start + $prefix, $_end - ($start + $prefix) + $suffix);
    } else {
        return '';
    }
}
function loadProperties($buildPropertiesFilename)
{
    $return = array();
    $buildProperties = parse_ini_file($buildPropertiesFilename);
    $return['longName'] = $buildProperties['docbook.longName'];
    $editions = explode(',', $buildProperties['docbook.editions']);
    foreach ($editions as $edition) {
        $parts = explode('-', $edition);
        $version = $parts[0];
        $lang = $parts[1];
        $return['editions'][$lang][] = $version;
    }
    return $return;
}
$properties = loadProperties($argv[1]);
webifyDirectory($properties, $argv[2], $argv[3]);
예제 #4
0
<?php

require 'bc-fourstore-php/FourStore/FourStore_StorePlus.php';
require 'bc-fourstore-php/FourStore/Namespace.php';
require 'shakespeare_utilities.php';
$userID = getUserID();
$propertyList = loadProperties();
FourStore_Namespace::addW3CNamespace();
FourStore_Namespace::add('omb', 'http://purl.org/ontomedia/ext/common/being#');
FourStore_Namespace::add('omt', 'http://purl.org/ontomedia/ext/common/trait#');
FourStore_Namespace::add('ome', 'http://purl.org/ontomedia/core/expression#');
FourStore_Namespace::add('foaf', 'http://xmlns.com/foaf/0.1/');
$query = FourStore_Namespace::to_sparql();
$graphAuto = 'http://contextus.net/resource/midsum_night_dream/auto/';
$graphUser = '******' . $userID . '/';
$graphMeta = 'http://contextus.net/resource/meta/';
$queryAuto = $query . "\nSELECT ?s ?p ?o\nFROM <" . $graphAuto . ">\n" . 'WHERE { ?s a omb:Character ; ?p ?o . FILTER (?p = foaf:name || ?p = ome:is-shadow-of || ?p = rdf:type || ?p = ome:is) }' . "\n";
$queryUser = $query . "\nSELECT ?s ?p ?o\nFROM <" . $graphUser . ">\n" . 'WHERE { ?s a omb:Character ; ?p ?o . FILTER (?p = foaf:name || ?p = ome:is-shadow-of || ?p = rdf:type || ?p = ome:is) }' . "\n";
//$stateQuery = $query . "\nSELECT DISTINCT ?s ?label\nFROM <" .  $graphMeta . ">\n" . 'WHERE { ?s a omt:; rdfs:label ?label }' . "\n";
$stateQuery = $query . "\n" . 'SELECT DISTINCT ?id WHERE { { GRAPH ?g {?id a omt:State-Of-Being}} {GRAPH <' . $graphMeta . '> { ?id ?p ?o } } } ORDER BY ?id' . "\n";
//print($stateQuery);
$s = new FourStore_StorePlus('http://contextus.net:7000/sparql/');
$graph = array();
$autoCharsToBeIgnored = array();
$rUser = $s->query($queryUser);
foreach ($rUser['result']['rows'] as $result) {
    addTripleToGraph($graph, makeTriple($result['s'], $result['p'], $result['o']));
    if ($result['p'] == 'http://purl.org/ontomedia/core/expression#is-shadow-of') {
        $autoCharsToBeIgnored[] = $result['o'];
    }
}