file_put_contents($filePath, $data); } } $instance->done($outputPath); umask($oldMask); //delete the api services xml schema file if ($fromXml && file_exists($tmpXmlFileName)) { unlink($tmpXmlFileName); } if (count($files) == 0) { //something went wrong in this generator? KalturaLog::info("No output files created [{$name}]"); } else { //tar gzip the client library if (!$shouldNotPackage) { createPackage($outputPath, $name, $generatedDate, $schemaGenDateOverride); } } KalturaLog::info("{$name} generated successfully"); } //write the summary file (will be used by the generator UI) file_put_contents($outputPathBase . "/" . $summaryFileName, serialize($generatedClients)); exit(0); /** * Build a packaged tarball for the client library. * @param $outputPath The path the client library files are located at. * @param $generatorName The name of the client library. */ function createPackage($outputPath, $generatorName, $generatedDate, $overrideGenDate = null) { KalturaLog::info("Trying to package");
<?php if (isset($_GET['detail']) && $_GET['detail'] == 'create') { if (isset($_POST['package_name'], $_POST['package_price'], $_POST['package_discount'], $_POST['package_size'], $_POST['package_description'], $_POST['package_lifetime']) && !empty($_POST['package_name']) && !empty($_POST['package_price']) && !empty($_POST['package_discount']) && !empty($_POST['package_size']) && !empty($_POST['package_description']) && !empty($_POST['package_lifetime'])) { $msg = createPackage($_POST['package_name'], $_POST['package_price'], $_POST['package_discount'], $_POST['package_size'], $_POST['package_description'], $_POST['package_lifetime'], $db); if ($msg) { $response[] = 'Paket erfolgreich angelegt'; } else { $response[] = 'Paket konnte nicht angelegt werden!'; } } elseif (empty($_POST['package_name'])) { $response[] = 'Paketname!'; } elseif (empty($_POST['package_price'])) { $response[] = 'Paketpreis!'; } elseif (empty($_POST['package_discount'])) { $response[] = 'Paketrabatt!'; } elseif (empty($_POST['package_size'])) { $response[] = 'Paketgröße!'; } elseif (empty($_POST['package_description'])) { $response[] = 'Paketbeschreibung!'; } } if (isset($_GET['detail']) && $_GET['detail'] == 'edit') { $msg = updatePackages($_POST, $db); if ($msg) { header('Location:/dashboard/packages'); } else { } } // Paket als bezahlt markieren (einzeln) $isPaid = filter_input(INPUT_POST, 'isPaid', FILTER_SANITIZE_STRING);
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); } }