post-twitter.php
146 lines
| 4.7 KiB
| text/x-php
|
PhpLexer
| r1 | <?php | |||
| require_once('include/admin.inc.php'); | ||||
| auth_redirect(); // Require logged in user to access this page. | ||||
| if('post_twitter' == $_REQUEST['action']) | ||||
| { | ||||
| check_nonce('new-twitter'); | ||||
| r5 | ||||
| r1 | $postmessage = ''; | |||
| if(!empty($_REQUEST['stdmessage']) ) $postmessage = trim($_REQUEST['stdmessage']); | ||||
| if( strlen($_REQUEST['message']) ) $postmessage = trim($_REQUEST['message']); | ||||
| #string replacement macros | ||||
| r33 | $next_strip_id = $dbConnection->fetchColumn('SELECT MAX(id) FROM strip'); | |||
| r1 | $next_strip_id += 1; | |||
| $postmessage = str_replace("#nextcomic", $next_strip_id, $postmessage); | ||||
| if('' == $postmessage) _redirect( ADMIN_PATH . '/post-twitter.php?tweet=missing'); | ||||
| $username = sanitize_username($_REQUEST['twitter_user']); | ||||
| r33 | $postasuser = $dbConnection->fetchColumn('SELECT username FROM twitter_user WHERE username = ?', array($username)); | |||
| r1 | ||||
| if( in_array('twitter', $_REQUEST['service']) ) | ||||
| $rc = twitterpost( numeric_entities(utfentities($postmessage)), $postasuser ); | ||||
| if( in_array('rss', $_REQUEST['service']) ) | ||||
| $rc = rsspost( numeric_entities(utfentities($postmessage)), SITE_HOST.SITE_PATH ); | ||||
| r5 | ||||
| r1 | if($rc) _redirect( ADMIN_PATH . '/post-twitter.php?tweet=success'); | |||
| _redirect( ADMIN_PATH . '/post-twitter.php?tweet=fail'); | ||||
| // Shall not pass, all routes lead to redirect. | ||||
| } | ||||
| if( isset($_REQUEST['tweet']) && 'success' == $_REQUEST['tweet'] ) | ||||
| $info.='Status successfully posted to Twitter.'; | ||||
| if( isset($_REQUEST['tweet']) && 'fail' == $_REQUEST['tweet'] ) | ||||
| $info.='Status could not be posted to Twitter. Is it up?'; | ||||
| if( isset($_REQUEST['tweet']) && 'missing' == $_REQUEST['tweet'] ) | ||||
| $error.='Oops~ Looks like you forgot to enter a message.'; | ||||
| r5 | ||||
| r1 | ||||
| r33 | $statuses = $dbConnection->fetchAll('SELECT id, position, message FROM twitter_status ORDER BY position, id'); | |||
| $twitter_users = $dbConnection->fetchAll('SELECT id, username, oauth_token, oauth_token_secret, oauth_access_token FROM twitter_user ORDER BY username'); | ||||
| r1 | ||||
| adminhead('Update Twitter'); | ||||
| adminmenu(); | ||||
| ?> | ||||
| <h2>Update Twitter</h2> | ||||
| <form name="statusform" method="post" action="post-twitter.php"> | ||||
| <?php nonce_field('new-twitter'); ?> | ||||
| <input type="hidden" name="action" value="post_twitter" /> | ||||
| <script type="text/javascript" src="<?php echo SITE_HOST.SITE_PATH; ?>/resources.js"></script> | ||||
| </ul> | ||||
| <p>Post As: <select name="twitter_user"> | ||||
| <?php foreach($twitter_users as $k=>$v) { | ||||
| printf( '<option %s value="%s">%s</option>', ($v->username == TWITTER_USER ? 'selected="selected"' : '') , htmlentities($v->username), htmlentities($v->username) ); | ||||
| } | ||||
| ?> | ||||
| </select> | ||||
| <a href="manage-twitter-users.php">Edit</a> | ||||
| </p> | ||||
| <p>Message Preset: <select name="stdmessage" onChange="copyPreset()"> | ||||
| <option value=""></option> | ||||
| <!-- TODO: Javascript to copy the preset downward, so it can be edited. --> | ||||
| <?php foreach($statuses as $k=>$v) { | ||||
| printf( '<option value="%s">%s</option>', htmlentities($v->message), htmlentities($v->message) ); | ||||
| } ?> | ||||
| </select> | ||||
| <a href="manage-twitter-presets.php">Edit</a> | ||||
| </p> | ||||
| <p><textarea cols="70" rows="2" id="statusmessage" name="message" maxlength="140" size="140" onKeyDown="charCounter();" onKeyUp="charCounter();"></textarea> <input type="submit" value="Send" /></p> | ||||
| <p style="padding-bottom:1em;">Characters remaining: <span id="charactersremaining">140</span> | ||||
| <p> | ||||
| Post to: | ||||
| <label><input type="checkbox" name="service[]" value="twitter" selected="selected" checked="checked" /> Twitter</label> | ||||
| <label><input type="checkbox" name="service[]" value="rss" /> RSS</label> | ||||
| </p> | ||||
| </form> | ||||
| <script type="text/javascript"> | ||||
| function copyPreset() { | ||||
| var preset = document.statusform.stdmessage; | ||||
| var status = document.statusform.message | ||||
| status.value = preset.options[preset.selectedIndex].value | ||||
| charCounter() | ||||
| } | ||||
| function charCounter() { | ||||
| var status = document.statusform.message | ||||
| var charactersremaining = document.getElementById('charactersremaining'); | ||||
| charactersremaining.innerHTML = 140 - status.value.length | ||||
| } | ||||
| </script> | ||||
| <?php /*?> | ||||
| <script type="text/javascript" src="http://twitter.com/statuses/user_timeline/<?php echo TWITTER_USER; ?>.json?callback=mtCallback&count=3"></script> */ ?> | ||||
| <hr/> | ||||
| <script src="http://widgets.twimg.com/j/2/widget.js"></script> | ||||
| <table border="0"><tr> | ||||
| <?php foreach($twitter_users as $k=>$v) { ?> | ||||
| <td> | ||||
| <script> | ||||
| new TWTR.Widget({ | ||||
| version: 2, | ||||
| type: 'profile', | ||||
| rpp: 4, | ||||
| interval: 6000, | ||||
| width: 250, | ||||
| height: 300, | ||||
| theme: { | ||||
| shell: { | ||||
| background: '#ffffff', | ||||
| color: '#000000' | ||||
| }, | ||||
| tweets: { | ||||
| background: '#f9fcfc', | ||||
| color: '#000000', | ||||
| links: '#0000ff' | ||||
| } | ||||
| }, | ||||
| features: { | ||||
| scrollbar: false, | ||||
| loop: false, | ||||
| live: false, | ||||
| hashtags: true, | ||||
| timestamp: true, | ||||
| avatars: false, | ||||
| behavior: 'all' | ||||
| } | ||||
| }).render().setUser('<?php echo $v->username; ?>').start(); | ||||
| </script> | ||||
| </td> | ||||
| <?php } ?> | ||||
| </tr></table> | ||||
| <?php | ||||
| adminfooter(); | ||||
| ?> | ||||
