public static function generateFeedItem($f) { $fname = "FeedUsertalk:generateFeedItem"; $dbr = wfGetDB(DB_SLAVE); $msg = null; $u = User::newFromName($f->fo_target_name); if (rand(0, 1) == 0) { // user's recent edit $row = $dbr->selectRow('recentchanges', array('rc_title', 'rc_namespace', 'rc_timestamp'), array('rc_namespace' => NS_MAIN, 'rc_user' => $f->fo_target_id), $fname, array("ORDER BY" => "rc_id DESC")); if ($row) { $t = Title::makeTitle($row->rc_namespace, $row->rc_title); $msg = "<a href='{$u->getUserPage()->getFullURL()}'>{$u->getName()}</a> recently edited <a href='{$t->getFullURL()}'>{$t->getText()}</a> " . wfTimeAgo($row->rc_timestamp); } } else { // user's recent article creation $row = $dbr->selectRow(array('firstedit', 'page'), array('page_title', 'page_namespace', 'fe_timestamp'), array('page_namespace' => NS_MAIN, 'fe_user' => $f->fo_target_id, 'page_id=fe_page'), $fname, array("ORDER BY" => "page_id DESC")); if ($row) { $t = Title::makeTitle($row->page_namespace, $row->page_title); $msg = "<a href='{$u->getUserPage()->getFullURL()}'>{$u->getName()}</a> recently started the article <a href='{$t->getFullURL()}'>{$t->getText()}</a> " . wfTimeAgo($row->fe_timestamp); } } $html = ""; if ($msg) { $av = $av = Avatar::getAvatarRaw($u->getName()); $url = $av['url']; if (!preg_match("@fbcdn.net@", $url)) { $url = wfGetPad("/images/avatarOut/" . $av['url']); } if ($url) { $img = "<img src='{$url}' style='width:50px; margin-right: 5px;'/>"; } $html = "<div class='feeditem'>{$img}{$msg}\n <div class='actions'><a href='{$t->getFullURL()}'>Read</a> | " . "<a href='{$t->getFullURL()}?action=edit'>Edit</a> | <a href='{$t->getFullURL()}?action=watch'>Watch</a></div></div>"; } wfProfileOut($fname); return $html; }
/** * Return a new avatar img in a compact format for transmission */ protected function getUserPic(&$u) { $raw = Avatar::getAvatarRaw($u->getName()); return $raw['type'] . ':' . $raw['url']; }
$title = Title::newFromText($page['name'], $page['ns']); $deletion = false; if ($title && $title->exists() && $title->getNamespace() != NS_MAIN) { print 'Deleting article ' . $wgContLang->getNSText($row->pb_namespace) . ':' . $title->getText() . "\n"; $article = new Article($title); $article->doDelete('Bad page'); $deletion = true; } if ($page['ns'] == NS_USER) { $user = User::newFromName($page['name']); if ($user && $user->getID() > 0) { if (ProfileBox::removeUserData($user)) { print "Removed profilebox for " . $user->getName() . "\n"; $deletion = true; } $ra = Avatar::getAvatarRaw($user->getName()); if ($ra['url'] != '') { if (preg_match("@SUCCESS@", Avatar::removePicture($user->getID()))) { print "Remove avatar picture for " . $user->getName() . "\n"; $deletion = true; } } } } if ($deletion) { $deleted[] = array($page['name'], $page['ns']); $n++; } //Safety check to only delete a maximum of 100 articles if ($n > $max_deletes) { break;