require_once 'includes/cp-global.php'; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $DB = GetDB(); $tables = GetDBTables(); $reset = true; $settings = array('cookie_path' => '/', 'dec_point' => '.', 'thousands_sep' => ',', 'timezone' => 'America/Chicago', 'template' => 'Default-Blue-Rewrite', 'language' => 'en_US', 'video_extensions' => 'avi,mpg,mpeg,flv,f4v,rm,asf,wmv,mov,mp4,ts,m2t', 'video_size' => '512x384', 'video_bitrate' => '26', 'audio_bitrate' => '128', 'thumb_size' => '120x90', 'thumb_quality' => '90', 'thumb_amount' => '15', 'max_upload_size' => '50MB', 'max_upload_duration' => '00:20:00', 'flag_mod_rewrite' => '1', 'mailer' => 'mail', 'flag_user_confirm_email' => '0', 'date_format' => 'm-d-Y', 'time_format' => 'h:i:s', 'avatar_dimensions' => '200x200', 'avatar_filesize' => '100KB', 'avatar_extensions' => 'jpg,gif,png', 'flag_user_strip_tags' => '1', 'video_format' => '0', 'flag_allow_uploads' => '1', 'flag_upload_reject_duplicates' => '1', 'flag_upload_allow_private' => '1', 'flag_upload_convert' => '', 'flag_upload_review' => '', 'upload_extensions' => 'avi,mpg,mpeg,flv,f4v,rm,asf,wmv,mov,mp4,ts,m2t', 'title_min_length' => '10', 'title_max_length' => '100', 'description_min_length' => '10', 'description_max_length' => '500', 'tags_min' => '1', 'tags_max' => '10', 'flag_video_strip_tags' => '1', 'comment_max_length' => '500', 'comment_throttle_period' => '120', 'flag_comment_strip_tags' => '1', 'captcha_min_length' => '4', 'captcha_max_length' => '6', 'flag_captcha_words' => '1', 'flag_captcha_on_signup' => '1', 'flag_captcha_on_upload' => '0', 'flag_captcha_on_comment' => '1', 'cache_main' => '3600', 'cache_search' => '3600', 'cache_categories' => '3600', 'cache_browse' => '3600', 'cache_video' => '3600', 'cache_profile' => '3600', 'cache_comments' => '3600', 'cache_custom' => '3600'); // Reset Config.php file Config::Save($settings, true); // Reset database.xml file $schema = GetDBSchema(); $custom_tables = array(array('name' => 'tbx_user_custom', 'field' => 'username'), array('name' => 'tbx_video_custom', 'field' => 'video_id'), array('name' => 'tbx_category_custom', 'field' => 'category_id'), array('name' => 'tbx_sponsor_custom', 'field' => 'sponsor_id')); foreach ($custom_tables as $table) { $xtable = $schema->el('//table[name="' . $table['name'] . '"]'); foreach ($xtable->xpath('./columns/column') as $xcolumn) { if ($xcolumn->name->val() != $table['field']) { XML_Schema::DeleteColumn($table['name'], $xcolumn->name->val()); } } } // Remove all database tables foreach ($tables as $table) { $DB->Update('DROP TABLE IF EXISTS #', array($table)); } // Clear out directories $dirs = array('temp', 'uploads', 'videos', 'templates/_cache'); foreach ($dirs as $dir) { $dir = BASE_DIR . '/' . $dir; // Remove sub-directories and their contents $removals = Dir::ReadDirectories($dir, '~^[^.]~'); foreach ($removals as $removal) { Dir::Remove($dir . '/' . $removal);
// Setup <column> $xcolumn = $xcolumns->addChild('column'); $xcolumn->addChild('name', 'flag_thumb'); $xcolumn->addChild('label', 'Queue for thumbnail generation'); $xcolumn->addChild('definition', 'TINYINT UNSIGNED NOT NULL'); $xcolumn->addChild('description', 'Queue videos imported from this feed for thumbnail generation'); $xcolumn->addChild('default', '0'); $xcolumn->addChild('autocomplete', '#Yes,No'); // Setup <admin> $xadmin = $xcolumn->addChild('admin'); $xadmin->addChild('search', 'false'); $xadmin->addChild('sort', 'false'); $xadmin->addChild('create', 'true'); $xadmin->addChild('edit', 'true'); $xadmin->addChild('bulkEdit', 'SET'); XML_Schema::WriteXml($schema); } $database_xml = file_get_contents(INCLUDES_DIR . '/database.xml'); // Point to correct documentation locations $database_xml = str_replace('custom.html<', 'custom-field.html<', $database_xml); // Add next_status to tbx_video if (strpos($database_xml, 'next_status') === false) { $database_xml = str_replace("<column>\n <name>duration</name>", "<column>\n" . " <name>next_status</name>\n" . " <definition>ENUM('Pending','Queued','Scheduled','Active','Disabled')</definition>\n" . " <default>null</default>\n" . " <user>\n" . " <create>false</create>\n" . " <edit>false</edit>\n" . " </user>\n" . " <admin>\n" . " <search>false</search>\n" . " <sort>false</sort>\n" . " <create>false</create>\n" . " <edit>false</edit>\n" . " </admin>\n" . " </column>\n" . " <column>\n" . " <name>duration</name>", $database_xml); } // Add convert and thumbnail toolbar icons if (strpos($database_xml, 'conversion-queue-32x32.png') === false) { $database_xml = str_replace("<function>tbxGenericAction(video,unfeature)</function>\n </icon>", "<function>tbxGenericAction(video,unfeature)</function>\n" . " </icon>\n" . " <icon>\n" . " <type>action</type>\n" . " <img>conversion-queue-32x32.png</img>\n" . " <title>Convert</title>\n" . " <function>tbxGenericAction(video,convert)</function>\n" . " </icon>\n" . " <icon>\n" . " <type>action</type>\n" . " <img>thumb-queue-32x32.png</img>\n" . " <title>Thumbnail</title>\n" . " <function>tbxGenericAction(video,thumbnail)</function>\n" . " </icon>", $database_xml); } // Add tbx_imported table definition if (strpos($database_xml, 'tbx_imported') === false) { $database_xml = str_replace('</database>', "\n\n\n<!-- START tbx_imported -->\n" . " <table>\n" . " <name>tbx_imported</name>\n" . " <naming>\n" . " <type>imported</type>\n" . " </naming>\n" . " <columns>\n" . " <column>\n" . " <name>video_url</name>\n" . " <definition>TEXT</definition>\n" . " </column>\n" . " <index>\n" . " <column>video_url(255)</column>\n" . " </index>\n" . " </columns>\n" . " </table>\n" . "<!-- END tbx_imported -->\n" . "</database>", $database_xml);
function tbxGenericCustomFieldDelete($item, $custom_table) { // Delete column from XML schema XML_Schema::DeleteColumn($custom_table, $item['name']); // Remove column from the database $DB = GetDB(); $DB->Update('DELETE FROM # WHERE `name`=?', array($custom_table . '_schema', $item['name'])); $DB->Update('ALTER TABLE # DROP COLUMN #', array($custom_table, $item['name'])); }