function emit_core() { $ae =& $this->submitted; /* $actions = array(); if($ae->expected_journo && $ae->article) { $actions[] = 'add_journo'; $actions[] = 'replace_journo'; } */ $struck = false; if ($ae->status == 'resolved' || $ae->status == 'rejected') { $struck = true; } ?> <?php if ($struck) { ?> <del> <?php } ?> <small>submitted <?php echo pretty_date(strtotime($ae->when_submitted)); ?> <?php if (!is_null($ae->submitted_by)) { ?> by <a href="/adm/useraccounts?person_id=<?php echo $ae->submitted_by->id; ?> "><?php echo $ae->submitted_by->email; ?> </a> (<?php echo $ae->submitted_by->name; ?> ) <?php } ?> </small> <br/> <a href="<?php echo $ae->url; ?> "><?php echo $ae->url; ?> </a><br/> problem: <?php echo $ae->status; ?> <br/> <?php if (!is_null($ae->article)) { ?> article in the database: <a href="<?php echo article_adm_url($ae->article->id); ?> "><?php echo $ae->article->title; ?> </a> <a class="button edit" href="/adm/editarticle?id36=<?php echo article_id_to_id36($ae->article->id); ?> ">edit</a><br/> <?php if (sizeof($ae->article->authors) > 0) { ?> attributed to: <?php foreach ($ae->article->authors as $author) { echo admJournoLink($author->ref); ?> <?php } } ?> <br/> raw byline: <?php echo $ae->article->byline; ?> <br/> <?php } ?> <?php if (!is_null($ae->expected_journo)) { ?> expected journo: <a class="journo-info" href="/adm/<?php echo $ae->expected_journo->ref; ?> "><?php echo $ae->expected_journo->ref; ?> </a><br/> <?php } ?> <?php if (!is_null($this->scraper_output)) { ?> <div> raw scraper output: <pre><code> <?php echo admMarkupPlainText($this->scraper_output); ?> </code></pre> </div> <?php } ?> <?php if ($struck) { ?> </del> <?php } ?> <?php foreach ($this->allowed_actions() as $action) { echo $this->action_link($action); } ?> <?php }
function emit_details($person_id) { // general $p = db_getRow("SELECT * FROM person WHERE id=?", $person_id); $subscribed_to_newsletter = false; if (db_getOne("SELECT person_id FROM person_receives_newsletter WHERE person_id=?", $person_id)) { $subscribed_to_newsletter = true; } ?> <h3>viewing user: '******'email']; ?> '</h3> [<a href="/adm/useraccounts?person_id=<?php echo $person_id; ?> &action=changeemail">Change email address</a>]<br/> <br/> id: <?php echo $p['id']; ?> <br/> name: <?php echo $p['name'] ? $p['name'] : "-blank-"; ?> <br/> <?php if ($p['password']) { ?> Password is set <?php } else { ?> No password set<?php } ?> <br/> Logged in <?php echo $p['numlogins']; ?> times<br/> <?php // show newsletter subscription ?> <h4>newsletter</h4> status: <?php if ($subscribed_to_newsletter) { ?> <em>Subscribed</em> <small>[<a href="/adm/useraccounts?person_id=<?php echo $person_id; ?> &action=newsletter_unsubscribe">unsubscribe</a>]</small> <?php } else { ?> <em>not subscribed</em> <small>[<a href="/adm/useraccounts?person_id=<?php echo $person_id; ?> &action=newsletter_subscribe">subscribe</a>]</small> <?php } // show alerts $sql = <<<EOT SELECT a.id,j.ref,j.prettyname,j.oneliner FROM ((alert a INNER JOIN person p ON a.person_id=p.id) INNER JOIN journo j ON a.journo_id=j.id) WHERE p.id=?; EOT; $alerts = db_getAll($sql, $person_id); ?> <h4>alerts</h4> <?php echo sizeof($alerts); ?> alerts set up: <ul> <?php foreach ($alerts as $a) { ?> <li><?php echo admJournoLink($a['ref'], $a['prettyname']); ?> (<?php echo $a['oneliner']; ?> ) <a class="button delete" href="/adm/useraccounts?person_id=<?php echo $person_id; ?> &action=removealert&alert_id=<?php echo $a['id']; ?> ">remove</a></a> </li> <?php } ?> </ul> <h4>Permissions</h4> <?php // show permissions $sql = <<<EOT SELECT p.id, p.permission, j.ref as journo_ref FROM (person_permission p LEFT JOIN journo j ON j.id=p.journo_id) WHERE person_id=? EOT; $perms = db_getAll($sql, $person_id); if ($perms) { ?> <ul> <?php foreach ($perms as $perm) { ?> <li> Can <em><?php echo $perm['permission']; ?> </em> <?php echo is_null($perm['journo_ref']) ? '' : admJournoLink($perm['journo_ref']); ?> <small>[<a href="/adm/useraccounts?person_id=<?php echo $person_id; ?> &action=removeperm&perm_id=<?php echo $perm['id']; ?> ">remove</a>]</small> </li> <?php } ?> </ul> <?php } else { ?> <p>No permissions assigned</p> <?php } emit_addperm_form($person_id); ?> <h4>Generate a login link</h4> <p>This creates a link to allow a user to log in directly</p> <form method="POST" action="/adm/useraccounts"> <input type="hidden" name="person_id" value="<?php echo $person_id; ?> " /> <label for="login_dest">Login destination:</label> <select id="login_dest" name="login_dest"> <option selected value="/profile">/profile</option> <option value="/alert">/alert</option> </select> <button name="action" value="generate_token">Generate</button> </form> <?php }
function template($vars) { header("Cache-Control: no-cache"); extract($vars); switch ($status) { case 'a': $pretty_status = 'Active'; break; case 'i': $pretty_status = 'Inactive'; break; case 'h': $pretty_status = 'Hidden'; break; default: $pretty_status = $status; break; } ?> <h4><?php echo admJournoLink($ref, $prettyname); ?> </h4> <?php if ($oneliner) { ?> <em><?php echo $oneliner; ?> </em><br/><?php } echo $pretty_status; ?> , <?php echo $num_arts; ?> articles<br/> <?php foreach ($linked_users as $user) { ?> Linked to <a href="/adm/useraccounts?person_id=<?php echo $user['id']; ?> "><?php echo $user['email']; ?> </a>: '<?php echo $user['permission']; ?> '<br/> <?php } ?> recent articles: <ul> <?php foreach ($arts as $art) { ?> <li> <a class="extlink" href="<?php echo $art['permalink']; ?> "><?php echo $art['title']; ?> </a> <?php echo $art['srcorgname']; ?> , <?php echo $art['pretty_pubdate']; ?> </li> <?php } ?> </ul> <?php }
function do_split($from_ref, $new_from_ref, $split_pubs, $to_ref) { $actions = array(); if ($new_from_ref != $from_ref) { // rename the source journo db_do("UPDATE journo SET ref=? WHERE ref=?", $new_from_ref, $from_ref); $actions[] = sprintf("Renamed journo %s -> %s", $from_ref, admJournoLink($new_from_ref)); $from_ref = $new_from_ref; } $fromj = db_getRow("SELECT id,ref,prettyname,lastname,firstname,status FROM journo WHERE ref=?", $from_ref); $toj = db_getRow("SELECT id,ref,prettyname,lastname,firstname,status FROM journo WHERE ref=?", $to_ref); if (!$toj) { // need to create new journo (just take a copy of 'from' journo) $toj = $fromj; unset($toj['id']); $toj['ref'] = $to_ref; journoCreate($toj); // TODO: copy journo_alias entries too... $actions[] = sprintf("Created new journo: %s", admJournoLink($to_ref)); } // move articles $orglist = implode(',', $split_pubs); if ($orglist) { $sql = <<<EOD UPDATE journo_attr SET journo_id=? WHERE journo_id=? AND article_id IN ( SELECT a.id FROM (article a INNER JOIN journo_attr attr ON a.id=attr.article_id) WHERE journo_id=? AND a.srcorg IN ({$orglist}) ) EOD; $rows_affected = db_do($sql, $toj['id'], $fromj['id'], $fromj['id']); $actions[] = sprintf("reassigned %d articles from %s to %s", $rows_affected, $from_ref, $to_ref); } // leave all other data attached to from_ journo (links, email etc) // Clear the htmlcache for the to and from journos db_do("DELETE FROM htmlcache WHERE name=?", 'j' . $fromj['id']); db_do("DELETE FROM htmlcache WHERE name=?", 'j' . $toj['id']); db_commit(); return $actions; }
function JournoOverview($ref) { $journo = db_getRow("SELECT id,ref,prettyname FROM journo WHERE ref=?", $ref); $r = db_query("SELECT a.srcorg as orgid, COUNT(*) as numarticles " . "FROM (article a INNER JOIN journo_attr attr ON a.id=attr.article_id) " . "WHERE attr.journo_id=? " . "GROUP BY a.srcorg", $journo['id']); $orgs = get_org_names(); ?> <?php echo admJournoLink($journo['ref']); ?> <table border=1> <tr><th>publication</th><th>num articles</th></tr> <?php while ($row = db_fetch_array($r)) { $orgid = $row['orgid']; ?> <tr><td><?php echo $orgs[$orgid]; ?> </td><td><?php echo $row['numarticles']; ?> </td></tr> <?php } ?> </table> <?php }