Пример #1
0
 /**
  * Removes a Background Image from a customised UserCSS
  *
  */
 function remove_usercss_background_image()
 {
     $this->registry->db->query_write("\n\t\t\tDELETE FROM " . TABLE_PREFIX . "usercss\n\t\t\tWHERE property = 'background_image'\n\t\t\t\tAND value LIKE '" . $this->fetch_field('albumid') . ",%'\n\t\t\t\tAND userid = " . intval($this->fetch_field('userid')) . "\n\t\t");
     if ($this->registry->db->affected_rows() and $this->fetch_field('userid')) {
         require_once DIR . '/includes/class_usercss.php';
         $usercss = new vB_UserCSS($this->registry, $this->fetch_field('userid'), false);
         $usercss->update_css_cache();
     }
 }
Пример #2
0
					}
				}
				else
				{
					//will print errors and die.
					$attachdm->has_errors(true);
				}
			}

			if (!empty($users))
			{
				require_once(DIR . '/includes/class_usercss.php');
				foreach(array_keys($users) AS $userid)
				{
					$usercss = new vB_UserCSS($vbulletin, $userid, false);
					$usercss->update_css_cache();
				}
			}

			print_next_page(1, $lastid);
		}
		else
		{
			echo $upgrade_phrases['upgrade_400a1.php']['update_albums_complete'];
		}
	}
	else
	{
		echo $upgrade_phrases['upgrade_400a1.php']['update_albums_complete'];
	}
}
Пример #3
0
/**
* Constructs the User's Custom CSS
*
* @param	array	An array of userinfo
* @param	bool	(Return) Whether to show the user css on/off switch to the user
*
* @return	string	HTML for the User's CSS
*/
function construct_usercss(&$userinfo, &$show_usercss_switch)
{
	global $vbulletin;

	// profile styling globally disabled
	if (!($vbulletin->options['socnet'] & $vbulletin->bf_misc_socnet['enable_profile_styling']))
	{
		$show_usercss_switch = false;
		return '';
	}

	// check if permissions have changed and we need to rebuild this user's css
	if ($userinfo['hascachedcss'] AND $userinfo['cssbuildpermissions'] != $userinfo['permissions']['usercsspermissions'])
	{
		require_once(DIR . '/includes/class_usercss.php');
		$usercss = new vB_UserCSS($vbulletin, $userinfo['userid'], false);
		$userinfo['cachedcss'] = $usercss->update_css_cache();
	}

	if (!($vbulletin->userinfo['options'] & $vbulletin->bf_misc_useroptions['showusercss']) AND $vbulletin->userinfo['userid'] != $userinfo['userid'])
	{
		// user has disabled viewing css; they can reenable
		$show_usercss_switch = (trim($userinfo['cachedcss']) != '');
		$usercss = '';
	}
	else if (trim($userinfo['cachedcss']))
	{
		$show_usercss_switch = true;
		$userinfo['cachedcss'] = str_replace('/*sessionurl*/', $vbulletin->session->vars['sessionurl_js'], $userinfo['cachedcss']);
		$templater = vB_Template::create('memberinfo_usercss');
			$templater->register('userinfo', $userinfo);
		$usercss = $templater->render();
	}
	else
	{
		$show_usercss_switch = false;
		$usercss = '';
	}

	return $usercss;
}
Пример #4
0
 /**
  * Step #89 - Convert Albums
  *
  * @param	array	contains id to startat processing at
  *
  * @return	mixed	Startat value for next go round
  */
 function step_89($data = null)
 {
     $startat = intval($data['startat']);
     $perpage = 25;
     $users = array();
     // Convert Albums
     $db_alter = new vB_Database_Alter_MySQL($this->db);
     if ($db_alter->fetch_table_info('albumpicture')) {
         $pictures = $this->db->query_read("\n\t\t\t\tSELECT\n\t\t\t\t\talbumpicture.albumid, albumpicture.dateline,\n\t\t\t\t\tpicture.*\n\t\t\t\tFROM " . TABLE_PREFIX . "albumpicture AS albumpicture\n\t\t\t\tINNER JOIN " . TABLE_PREFIX . "picture AS picture ON (albumpicture.pictureid = picture.pictureid)\n\t\t\t\tWHERE\n\t\t\t\t\talbumpicture.pictureid > {$startat}\n\t\t\t\t\t\tAND\n\t\t\t\t\talbumpicture.attachmentid = 0\n\t\t\t\tORDER BY albumpicture.pictureid ASC\n\t\t\t\t" . ($this->limitqueries ? "LIMIT 0, {$perpage}" : "") . "\n\t\t\t");
         if ($this->db->num_rows($pictures)) {
             $lastid = 0;
             while ($picture = $this->db->fetch_array($pictures)) {
                 $this->show_message(sprintf($this->phrase['version']['400a1']['convert_picture'], $picture['pictureid']), true);
                 $lastid = $picture['pictureid'];
                 if ($this->registry->options['album_dataloc'] == 'db') {
                     $thumbnail =& $picture['thumbnail'];
                     $filedata =& $picture['filedata'];
                 } else {
                     $attachpath = $this->registry->options['album_picpath'] . '/' . floor($picture['pictureid'] / 1000) . "/{$picture['pictureid']}.picture";
                     if ($this->registry->options['album_dataloc'] == 'fs_directthumb') {
                         $attachthumbpath = $this->registry->options['album_thumbpath'] . '/' . floor($picture['pictureid'] / 1000);
                     } else {
                         $attachthumbpath = $this->registry->options['album_picpath'] . '/' . floor($picture['pictureid'] / 1000);
                     }
                     $attachthumbpath .= "/{$picture['idhash']}_{$picture['pictureid']}.{$picture['extension']}";
                     $thumbnail = @file_get_contents($attachthumbpath);
                     $filedata = @file_get_contents($attachpath);
                     if ($filedata === false) {
                         $this->show_message(sprintf($this->phrase['version']['400a1']['could_not_find_file'], $attachpath));
                         continue;
                     }
                 }
                 $attachdm =& datamanager_init('AttachmentFiledata', $this->registry, ERRTYPE_CP, 'attachment');
                 $attachdm->set('contenttypeid', 8);
                 $attachdm->set('contentid', $picture['albumid']);
                 $attachdm->set('filename', $picture['pictureid'] . '.' . $picture['extension']);
                 $attachdm->set('width', $picture['width']);
                 $attachdm->set('height', $picture['height']);
                 $attachdm->set('state', $picture['state']);
                 $attachdm->set('reportthreadid', $picture['reportthreadid']);
                 $attachdm->set('userid', $picture['userid']);
                 $attachdm->set('caption', $picture['caption']);
                 $attachdm->set('dateline', $picture['dateline']);
                 $attachdm->set('thumbnail_dateline', $picture['thumbnail_dateline']);
                 $attachdm->setr('filedata', $filedata);
                 $attachdm->setr('thumbnail', $thumbnail);
                 if ($attachmentid = $attachdm->save()) {
                     $this->db->query_write("\n\t\t\t\t\t\t\tUPDATE " . TABLE_PREFIX . "albumpicture\n\t\t\t\t\t\t\tSET\n\t\t\t\t\t\t\t\tattachmentid = {$attachmentid}\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tpictureid = {$picture['pictureid']}\n\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\talbumid = {$picture['albumid']}\n\t\t\t\t\t\t");
                     $this->db->query_write("\n\t\t\t\t\t\t\tINSERT IGNORE INTO " . TABLE_PREFIX . "picturelegacy\n\t\t\t\t\t\t\t\t(type, primaryid, pictureid, attachmentid)\n\t\t\t\t\t\t\tVALUES\n\t\t\t\t\t\t\t\t('album', {$picture['albumid']}, {$picture['pictureid']}, {$attachmentid})\n\t\t\t\t\t\t");
                     $this->db->query_write("\n\t\t\t\t\t\t\tUPDATE " . TABLE_PREFIX . "picturecomment\n\t\t\t\t\t\t\tSET\n\t\t\t\t\t\t\t\tfiledataid = " . $attachdm->fetch_field('filedataid') . ",\n\t\t\t\t\t\t\t\tuserid = {$picture['userid']}\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tpictureid = {$picture['pictureid']}\n\t\t\t\t\t\t");
                     $this->db->query_write("\n\t\t\t\t\t\t\tUPDATE " . TABLE_PREFIX . "album\n\t\t\t\t\t\t\tSET coverattachmentid = {$attachmentid}\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tcoverattachmentid = {$picture['pictureid']}\n\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\talbumid = {$picture['albumid']}\n\t\t\t\t\t\t");
                     $oldvalue = "{$picture['albumid']},{$picture['userid']}";
                     $newvalue = "{$picture['albumid']},{$attachmentid}]";
                     $this->db->query_write("\n\t\t\t\t\t\t\tUPDATE " . TABLE_PREFIX . "usercss\n\t\t\t\t\t\t\tSET\n\t\t\t\t\t\t\t\tvalue = '" . $this->db->escape_string($newvalue) . "',\n\t\t\t\t\t\t\t\tconverted = 1\n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\tproperty = 'background_image'\n\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\tvalue = '" . $this->db->escape_string($oldvalue) . "'\n\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\tuserid = {$picture['userid']}\n\t\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\tconverted = 0\n\t\t\t\t\t\t");
                     if ($this->db->affected_rows()) {
                         $users["{$picture['userid']}"] = 1;
                     }
                 } else {
                     //will print errors and die.
                     $attachdm->has_errors(true);
                 }
             }
             if (!empty($users)) {
                 require_once DIR . '/includes/class_usercss.php';
                 foreach (array_keys($users) as $userid) {
                     $usercss = new vB_UserCSS($this->registry, $userid, false);
                     $usercss->update_css_cache();
                 }
             }
             return array('startat' => $lastid);
         } else {
             $this->show_message($this->phrase['version']['400a1']['update_albums_complete']);
         }
     } else {
         $this->show_message($this->phrase['version']['400a1']['update_albums_complete']);
     }
 }
Пример #5
0
/**
	* Operations following a save
	*
	* @return
	*/
	public function post_save($attachdm)
	{
		$attachmentid = $attachdm->fetch_field('attachmentid');
		if (!$attachdm->condition AND !empty($attachdm->info['albums']))
		{
			$dateline = (!$attachdm->info['dateline'] ? TIMENOW : $$attachdm->info['dateline']);
			$albumids = array();
			foreach ($attachdm->info['albums'] AS $album)
			{
				$albumids[] = intval($album['albumid']);
			}

			$this->registry->db->query_write("
				UPDATE " . TABLE_PREFIX . "album
				SET " . ($attachdm->fetch_field('state') == 'visible'
						?	"visible = visible + 1, lastpicturedate = IF($dateline > lastpicturedate, $dateline, lastpicturedate)"
						: "moderation = moderation + 1") . "
				WHERE albumid IN (" . implode(',', $albumids) . ")
			");
		}

		if (
			$attachdm->condition
				AND
			$attachdm->fetch_field('contentid') != $attachdm->existing('contentid')
				AND
			$attachdm->info['albuminfo']['userid'] == $this->registry->userinfo['userid']
		)
		{
			if (
				$attachdm->info['albuminfo']['state'] == 'private'
					AND
				$attachdm->info['destination']
					AND
				$attachdm->info['destination']['state'] != 'private'
			)
			{
				if ($attachdm->fetch_field('state') != 'private' AND $attachdm->existing['state'] == 'private')
				{
					$this->registry->db->query_write("
						DELETE FROM " . TABLE_PREFIX . "usercss
						WHERE
							property = 'background_image'
								AND
							value = '{$attachdm->info['albuminfo']['albumid']},$attachmentid'
								AND
							userid = {$attachdm->info['albuminfo']['userid']}
					");
				}
				else
				{
					$oldvalue = "{$attachdm->info['albuminfo']['albumid']},$attachmentid";
					$newvalue = "{$attachdm->info['destination']['albumid']},$attachmentid";
					$this->registry->db->query_write("
						UPDATE " . TABLE_PREFIX . "usercss
						SET
							value = '" . $this->registry->db->escape_string($newvalue) . "'
						WHERE
							property = 'background_image'
								AND
							value = '" . $this->registry->db->escape_string($oldvalue) . "'
								AND
							userid = {$attachdm->albuminfo['userid']}
					");
				}
			}

			require_once(DIR . '/includes/class_usercss.php');
			$usercss = new vB_UserCSS($vbulletin, $this->info['albuminfo']['userid'], false);
			$usercss->update_css_cache();
		}
	}