Exemple #1
0
             require_once './includes/adminfunctions_help.php';
             if (!($xml = file_read('./install/vbulletin-adminhelp.xml'))) {
                 echo '<p>Uh oh, ./install/vbulletin-adminhelp.xml doesn\'t appear to exist! Upload it and refresh the page.</p>';
                 print_cp_footer();
             }
             echo '<p>Importing vbulletin-adminhelp.xml';
             xml_import_help_topics($xml);
             echo "<br /><span class=\"smallfont\"><b>Okay</b></span></p>";
             break;
     }
     define('SCRIPT_REDIRECT', true);
 } else {
     if ($_REQUEST['do'] == 'templatemerge') {
         $vbulletin->input->clean_array_gpc('r', array('startat' => TYPE_UINT));
         require_once DIR . '/includes/class_template_merge.php';
         $merge_data = new vB_Template_Merge_Data($vbulletin);
         $merge_data->start_offset = $vbulletin->GPC['startat'];
         $merge_data->add_condition("tnewmaster.product IN ('', 'vbulletin')");
         $merge = new vB_Template_Merge($vbulletin);
         $merge->time_limit = 5;
         $completed = $merge->merge_templates($merge_data);
         if ($completed) {
             // completed
             $vbphrase['style'] = 'Style';
             $vbphrase['please_wait'] = 'Please Wait';
             build_all_styles();
             define('SCRIPT_REDIRECT', true);
         } else {
             // more templates to merge
             print_cp_redirect('tools.php?do=templatemerge&startat=' . ($merge_data->start_offset + $merge->fetch_processed_count()));
         }
Exemple #2
0
if ($_REQUEST['do'] == 'massmerge')
{
	$vbulletin->input->clean_array_gpc('r', array(
		'startat'  => TYPE_UINT,
		'product'  => TYPE_STR,
		'redirect' => TYPE_STR,
	));

	verify_cp_sessionhash();

	require_once(DIR . '/includes/class_template_merge.php');

	$merge = new vB_Template_Merge($vbulletin);
	$merge->time_limit = 5;

	$merge_data = new vB_Template_Merge_Data($vbulletin);
	$merge_data->start_offset = $vbulletin->GPC['startat'];

	if ($vbulletin->GPC['product'] == 'vbulletin' OR !$vbulletin->GPC['product'])
	{
		$merge_data->add_condition("tnewmaster.product IN ('', 'vbulletin')");
	}
	else
	{
		$merge_data->add_condition("tnewmaster.product = '" . $db->escape_string($vbulletin->GPC['product']) . "'");

		$merge->merge_version = $full_product_info[$vbulletin->GPC['product']]['version'];
	}

	$completed = $merge->merge_templates($merge_data);
	/**
	* Actively merge the set of templates matched by the data object.
	* May be paginated by setting members correctly. Does not error;
	* return value indicates whether more data needs to be processed.
	*
	* @param	vB_Template_Merge_Data	Potential merge candidates
	*
	* @return	bool					True when all templates are processed, false when more remain
	*/
	public function merge_templates(vB_Template_Merge_Data $data)
	{
		$candidates = $data->fetch_merge_candidates();

		$this->merge_start();

		$this->processed_count = 0;

		while ($template = $this->registry->db->fetch_array($candidates))
		{
			$this->processed_count++;

			if (!$data->can_merge_template($template))
			{
				continue;
			}

			$merge = new vB_Text_Merge_Threeway(
				$template['oldmastertext'],
				$template['newmastertext'],
				$template['customtext'],
				$this->show_output
			);
			$merged_text = $merge->get_merged();

			if ($merged_text)
			{
				$this->merge_success($merged_text, $template);
			}
			else
			{
				$this->merge_conflict($template);
			}

			if ($this->break_merge_early())
			{
				return false;
			}
		}

		return true;
	}
Exemple #4
0
	print_submit_row($upgrade_phrases['finalupgrade.php']['install'], "");
}

// #############################################################################
if ($vbulletin->GPC['step'] == (should_install_suite() ? 7 : 5))
{
	require_once(DIR . '/includes/class_template_merge.php');

	$products = array("''", "'vbulletin'");

	if (should_install_suite())
	{
		$products = array_merge($products, array("'vbblog'", "'vbcms'"));
 	}

	$merge_data = new vB_Template_Merge_Data($vbulletin);
	$merge_data->start_offset = $vbulletin->GPC['startat'];
	$merge_data->add_condition($c = "tnewmaster.product IN (" . implode(', ', $products) . ")");

	$merge = new vB_Template_Merge($vbulletin);
	$merge->time_limit = 4;
	$completed = $merge->merge_templates($merge_data);

	if ($completed)
	{
		// completed
		build_all_styles();
	}
	else
	{
		// more templates to merge
 /**
  * Massive merge templates
  *
  * @param string $product Product string ID.
  * @param integer $startat Start offset of the merge.
  *
  * @return integer New startat value. -1 if no more to do.
  */
 public function massMerge($product = 'vbulletin', $startat = 0)
 {
     $this->checkHasAdminPermission('canadmintemplates');
     require_once DIR . '/includes/adminfunctions.php';
     // TODO: Product API
     $full_product_info = fetch_product_list(true);
     $vbulletin =& vB::get_registry();
     require_once DIR . '/includes/class_template_merge.php';
     require_once DIR . '/includes/adminfunctions_template.php';
     $merge = new vB_Template_Merge($vbulletin);
     $merge->time_limit = 5;
     $merge_data = new vB_Template_Merge_Data($vbulletin);
     $merge_data->start_offset = $startat;
     if ($product == 'vbulletin' or !$product) {
         $merge_data->add_condition("tnewmaster.product IN ('', 'vbulletin')");
     } else {
         $merge_data->add_condition("tnewmaster.product = '" . mysql_escape_string($product) . "'");
         $merge->merge_version = $full_product_info[$product]['version'];
     }
     $completed = $merge->merge_templates($merge_data, $output);
     if ($completed) {
         // completed
         build_all_styles();
         vB_Library::instance('Style')->setCssDate();
         return -1;
     } else {
         return $merge_data->start_offset + $merge->fetch_processed_count();
     }
 }
 /**
  * Actively merge the set of templates matched by the data object.
  * May be paginated by setting members correctly. Does not error;
  * return value indicates whether more data needs to be processed.
  *
  * @param	vB_Template_Merge_Data	Potential merge candidates
  * @param	array										Output data, in array form
  *
  * @return	bool					True when all templates are processed, false when more remain
  */
 public function merge_templates(vB_Template_Merge_Data $data, &$output)
 {
     $candidates = $data->fetch_merge_candidates();
     $this->merge_start();
     $this->processed_count = 0;
     while ($template = $this->registry->db->fetch_array($candidates)) {
         $this->processed_count++;
         if (!$data->can_merge_template($template)) {
             continue;
         }
         $merge = new vB_Text_Merge_Threeway($template['oldmastertext'], $template['newmastertext'], $template['customtext'], $this->show_output);
         $merged_text = $merge->get_merged();
         if ($merged_text) {
             if ($result = $this->merge_success($merged_text, $template)) {
                 $output[] = $result;
             }
         } else {
             if ($result = $this->merge_conflict($template)) {
                 $output[] = $result;
             }
         }
         if ($this->break_merge_early()) {
             return false;
         }
     }
     // Do we have any template merges remaining?
     $data->start_offset += $this->processed_count;
     $data->batch_size = 1;
     $candidates = $data->fetch_merge_candidates();
     if ($template = $this->registry->db->fetch_array($candidates)) {
         return false;
     }
     return true;
 }
 /**
  * Template Merge
  *
  * @param	array	contains start info
  * @param	int		Master styleid
  *
  */
 function merge_templates($data, $mastertype)
 {
     if ($data['options']['skiptemplatemerge']) {
         $this->skip_message();
         return;
     }
     if ($data['response'] == 'timeout') {
         $this->show_message($this->phrase['final']['step_timed_out']);
         return;
     }
     $this->show_message($this->phrase['final']['merge_template_changes']);
     $startat = intval($data['startat']);
     require_once DIR . '/includes/class_template_merge.php';
     $products = array("''", "'vbulletin'", "'skimlinks'", "'forumrunner'", "'postrelease'");
     if (should_install_suite()) {
         $products = array_merge($products, array("'vbblog'", "'vbcms'"));
     }
     $merge_data = new vB_Template_Merge_Data($this->registry);
     $merge_data->start_offset = $startat;
     $merge_data->add_condition($c = "tnewmaster.product IN (" . implode(', ', $products) . ")");
     $merge = new vB_Template_Merge($this->registry);
     $merge->time_limit = 4;
     $output = array();
     $completed = $merge->merge_templates($merge_data, $output, $mastertype == 'standard' ? -1 : -2);
     if ($output) {
         foreach ($output as $message) {
             $this->show_message($message);
         }
     }
     if ($completed) {
         $this->set_option('upgrade_from', 'version', '', 'string', '');
         if ($error = build_all_styles(0, 0, '', true, $mastertype)) {
             $this->add_error($error, self::PHP_TRIGGER_ERROR, true);
             return false;
         }
     } else {
         return array('startat' => $startat + $merge->fetch_processed_count());
     }
 }