Example #1
0
function sql_addAlphaToWhereClause(&$clauses, $column)
{
    $alpha = httpVar('alpha');
    if ($alpha && $alpha != 'All') {
        sql_addToWhereClause($clauses, $clauses ? 'AND' : 'WHERE', $column, '~*', "^[" . addslashes($alpha) . "]");
    }
}
Example #2
0
function i18n_setLanguage($lang)
{
    global $common_language;
    if ($lang == 'C') {
        setcookie('synchrotronLanguage', '', 0, $auth_path);
        unset($GLOBALS['common_language']);
        unset($common_language);
        unset($_COOKIE['synchrotronLanguage']);
        return;
    }
    $db = db_connection();
    sql_addToWhereClause($where, 'WHERE', 'code', '=', $lang);
    $query = db_query($db, "select id from languages {$where};");
    if (db_numRows($query) > 0) {
        list($common_language) = db_row($query, 0);
        $common_language = intval($common_language);
    }
}
Example #3
0
function processProviderAssets($assets, $packageBasePath, $provider, $providerId, $config)
{
    global $verbose;
    $metadataPath = $config['metadata'];
    if (empty($metadataPath)) {
        $metadataPath = 'metadata.desktop';
    }
    $recreateCategoriesFile = false;
    $categories = array();
    $db = db_connection('write');
    foreach ($assets as $asset => $path) {
        if ($verbose) {
            print "Processing {$providerId} {$asset} at {$path}\n";
        }
        if (!is_file("{$path}/{$metadataPath}")) {
            if ($verbose) {
                print "No such thing as {$path}/{$metadataPath}, perhaps it was deleted?\n";
            }
            deleteAsset($providerId, $asset);
            continue;
        }
        $metadata = new INIFile("{$path}/{$metadataPath}");
        $plugin = $metadata->getValue('X-KDE-PluginInfo-Name', 'Desktop Entry');
        if (empty($plugin)) {
            print "No X-KDE-PluginInfo-Name entry in {$path}/{$metadataPath}\n";
            continue;
        }
        $packageFile = $metadata->getValue('X-Synchrotron-ContentUrl', 'Desktop Entry');
        $externalPackage = !empty($packageFile);
        if (!$externalPackage) {
            $packageFile = createPackage($plugin, $path, $packageBasePath, $config);
        }
        if (!$packageFile) {
            deleteAsset($providerId, $asset);
            continue;
        }
        $category = $metadata->getValue('X-KDE-PluginInfo-Category', 'Desktop Entry');
        if (empty($category)) {
            $category = 'Miscelaneous';
        }
        if (isset($categories[$category])) {
            $categoryId = $categories[$category];
        } else {
            unset($where);
            sql_addToWhereClause($where, '', 'provider', '=', $providerId);
            global $db_type;
            if ($db_type == 'postgres') {
                sql_addToWhereClause($where, 'and', 'name', 'ILIKE', $category);
            } else {
                sql_addToWhereClause($where, 'and', 'name', 'LIKE', $category);
            }
            $query = db_query($db, "SELECT id FROM categories WHERE {$where}");
            if (db_numRows($query) < 1) {
                unset($fields, $values);
                sql_addIntToInsert($fields, $values, 'provider', $providerId);
                sql_addScalarToInsert($fields, $values, 'name', $category);
                db_insert($db, 'categories', $fields, $values);
                $query = db_query($db, "SELECT id FROM categories WHERE {$where}");
                $recreateCategoriesFile = true;
            }
            list($categoryId) = db_row($query, 0);
            $categories[$category] = $categoryId;
        }
        unset($where);
        sql_addToWhereClause($where, '', 'provider', '=', $providerId);
        sql_addToWhereClause($where, 'and', 'id', '=', $plugin);
        $query = db_query($db, "select * from content where {$where};");
        if (db_numRows($query) > 0) {
            // just update the field
            unset($fields);
            sql_addScalarToUpdate($fields, 'version', $metadata->getValue('X-KDE-PluginInfo-Version', 'Desktop Entry'));
            sql_addScalarToUpdate($fields, 'author', $metadata->getValue('X-KDE-PluginInfo-Author', 'Desktop Entry'));
            sql_addScalarToUpdate($fields, 'homepage', $metadata->getValue('X-KDE-PluginInfo-Website', 'Desktop Entry'));
            //FIXME: get preview image from asset dir! sql_addScalarToUpdate($fields, 'preview', <image path>);
            sql_addScalarToUpdate($fields, 'name', $metadata->getValue('Name', 'Desktop Entry'));
            // FIXME: i18n
            sql_addScalarToUpdate($fields, 'description', $metadata->getValue('Comment', 'Desktop Entry'));
            sql_addIntToUpdate($fields, 'category', $categoryId);
            sql_addRawToUpdate($fields, 'updated', 'current_timestamp');
            sql_addScalarToUpdate($fields, 'package', $packageFile);
            sql_addBoolToUpdate($fields, 'externalPackage', $externalPackage);
            db_update($db, 'content', $fields, $where);
        } else {
            // new asset!
            unset($fields, $values);
            sql_addIntToInsert($fields, $values, 'provider', $providerId);
            sql_addScalarToInsert($fields, $values, 'id', $plugin);
            sql_addScalarToInsert($fields, $values, 'version', $metadata->getValue('X-KDE-PluginInfo-Version', 'Desktop Entry'));
            sql_addScalarToInsert($fields, $values, 'author', $metadata->getValue('X-KDE-PluginInfo-Author', 'Desktop Entry'));
            sql_addScalarToInsert($fields, $values, 'homepage', $metadata->getValue('X-KDE-PluginInfo-Website', 'Desktop Entry'));
            //FIXME: get preview image from asset dir! sql_addScalarToInsert($fields, $values, 'preview', <image path>);
            sql_addScalarToInsert($fields, $values, 'name', $metadata->getValue('Name', 'Desktop Entry'));
            // FIXME: i18n
            sql_addScalarToInsert($fields, $values, 'description', $metadata->getValue('Comment', 'Desktop Entry'));
            sql_addIntToInsert($fields, $values, 'category', $categoryId);
            sql_addScalarToInsert($fields, $values, 'package', $packageFile);
            sql_addBoolToInsert($fields, $values, 'externalPackage', $externalPackage);
            db_insert($db, 'content', $fields, $values);
        }
    }
    if ($recreateCategoriesFile) {
        createCategoriesFile($provider);
    }
}
Example #4
0
    printHeader(0, $pagesize);
    printFooter();
    exit;
}
$categories = $_GET['categories'];
if (!empty($categories)) {
    $categories = explode('x', $categories);
    $catsIn = array();
    foreach ($categories as $category) {
        $category = intval($category);
        if ($category > 0) {
            array_push($catsIn, $category);
        }
    }
    if (!empty($catsIn)) {
        sql_addToWhereClause($where, 'and', 'category', 'in', '(' . implode(', ', $catsIn) . ')', false, false);
    }
}
unset($limit);
if ($pagesize > 0) {
    $limit = "LIMIT {$pagesize}";
}
unset($offset);
if ($page > 0) {
    $offset = 'OFFSET ' . $page * $pagesize;
}
unset($orderBy);
if (empty($sortMode) || $sortMode == 'new') {
    $orderBy = 'ORDER BY c.updated DESC';
} else {
    if ($sortMode == 'alpha') {
Example #5
0
$contentId = $_GET['contentid'];
if (empty($contentId)) {
    printHeader(101, _("Content ID not provided"));
    printFooter();
    exit;
}
// we don't care about the item id, really, because we only ever have one
// //$itemId = $_GET['itemid'];
$db = db_connection();
unset($where);
sql_addToWhereClause($where, '', 'p.name', '=', $provider);
sql_addToWhereClause($where, 'and', 'c.id', '=', $contentId);
$items = db_query($db, "SELECT c.package, c.externalPackage FROM content c LEFT JOIN providers p ON (c.provider = p.id) WHERE {$where};");
if (db_numrows($items) < 1) {
    printHeader(101, _("Content ID '{$contentId}' not fond"));
    printFooter();
    exit;
}
printHeader(100);
list($package, $external) = db_row($items, 0);
if (db_boolean($external)) {
    $url = $package;
} else {
    $url = "{$common_baseURL}/{$provider}/files/{$package}";
}
print "    <content details=\"download\"><downloadlink>{$url}</downloadlink></content>\n";
printFooter();
// record the request as a download
unset($where);
sql_addToWhereClause($where, '', 'id', '=', $contentId);
db_query($db, "UPDATE content SET downloads = downloads + 1 WHERE {$where};");
Example #6
0
if (!canAccessApi($_SERVER['REMOTE_ADDR'])) {
    printHeader(200, _("Too many requests from {$_SERVER['REMOTE_ADDR']}"));
    printFooter();
    exit;
}
$provider = $_GET['provider'];
if (empty($provider)) {
    printHeader(200, _("Invalid provider"));
    printFooter();
    exit;
}
$contentId = $_GET['contentid'];
if (empty($contentId)) {
    printHeader(200, _("Content ID not provided"));
    printFooter();
    exit;
}
$db = db_connection();
unset($where);
sql_addToWhereClause($where, '', 'p.name', '=', $provider);
sql_addToWhereClause($where, 'and', 'c.id', '=', $contentId);
$items = db_query($db, "SELECT c.id, c.name, c.version, c.description, c.updated, c.created, c.author, c.homepage, c.downloads, c.preview FROM content c LEFT JOIN providers p ON (c.provider = p.id) WHERE {$where};");
if (db_numrows($items) < 1) {
    printHeader(200, _("Content ID '{$contentId}' not fond"));
    printFooter();
    exit;
}
printHeader(100);
list($id, $name, $version, $description, $updated, $created, $author, $homepage, $downloads, $preview) = db_row($items, 0);
printItem($id, $name, $version, $description, $updated, $created, '', $author, $homepage, $downloads, $preview);
printFooter();