/** * 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(); } }
} } 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']; } }
/** * 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; }
/** * 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']); } }
/** * 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(); } }