Merge remote-tracking branch 'gitorious/1.0.x' into 1.0.x
This commit is contained in:
		@@ -124,6 +124,7 @@ class BlankAdPlugin extends UAPPlugin
 | 
			
		||||
                            'author' => 'Evan Prodromou',
 | 
			
		||||
                            'homepage' => 'http://status.net/wiki/Plugin:BlankAdPlugin',
 | 
			
		||||
                            'rawdescription' =>
 | 
			
		||||
                            // TRANS: Plugin description.
 | 
			
		||||
                            _m('Plugin for testing ad layout.'));
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -82,13 +82,19 @@ class BlogspamNetPlugin extends Plugin
 | 
			
		||||
        } else {
 | 
			
		||||
            common_debug("Blogspamnet results = " . $response);
 | 
			
		||||
            if (preg_match('/^ERROR(:(.*))?$/', $response, $match)) {
 | 
			
		||||
                throw new ServerException(sprintf(_m("Error from %1$s: %2$s"), $this->baseUrl, $match[2]), 500);
 | 
			
		||||
                // TRANS: Server exception thrown when blogspam.net returns error status.
 | 
			
		||||
                // TRANS: %1$s is the base URL, %2$s is the error (unknown contents; no period).
 | 
			
		||||
                throw new ServerException(sprintf(_m('Error from %1$s: %2$s'), $this->baseUrl, $match[2]), 500);
 | 
			
		||||
            } else if (preg_match('/^SPAM(:(.*))?$/', $response, $match)) {
 | 
			
		||||
                throw new ClientException(sprintf(_m("Spam checker results: %s"), $match[2]), 400);
 | 
			
		||||
                // TRANS: Server exception thrown when blogspam.net returns spam status.
 | 
			
		||||
                // TRANS: Does not end with period because of unknown contents for %s (spam match).
 | 
			
		||||
                throw new ClientException(sprintf(_m('Spam checker results: %s'), $match[2]), 400);
 | 
			
		||||
            } else if (preg_match('/^OK$/', $response)) {
 | 
			
		||||
                // don't do anything
 | 
			
		||||
            } else {
 | 
			
		||||
                throw new ServerException(sprintf(_m("Unexpected response from %1$s: %2$s"), $this->baseUrl, $response), 500);
 | 
			
		||||
                // TRANS: Server exception thrown when blogspam.net returns an unexpected status.
 | 
			
		||||
                // TRANS: %1$s is the base URL, %2$s is the response (unknown contents; no period).
 | 
			
		||||
                throw new ServerException(sprintf(_m('Unexpected response from %1$s: %2$s'), $this->baseUrl, $response), 500);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
@@ -149,6 +155,7 @@ class BlogspamNetPlugin extends Plugin
 | 
			
		||||
                            'author' => 'Evan Prodromou, Brion Vibber',
 | 
			
		||||
                            'homepage' => 'http://status.net/wiki/Plugin:BlogspamNet',
 | 
			
		||||
                            'rawdescription' =>
 | 
			
		||||
                            // TRANS: Plugin description.
 | 
			
		||||
                            _m('Plugin to check submitted notices with blogspam.net.'));
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,6 @@ if (!defined('STATUSNET')) {
 | 
			
		||||
 *
 | 
			
		||||
 * @see      DB_DataObject
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class Bookmark extends Memcached_DataObject
 | 
			
		||||
{
 | 
			
		||||
    public $__table = 'bookmark'; // table name
 | 
			
		||||
@@ -65,7 +64,6 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     * @return User_greeting_count object found, or null for no hits
 | 
			
		||||
     *
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function staticGet($k, $v=null)
 | 
			
		||||
    {
 | 
			
		||||
        return Memcached_DataObject::staticGet('Bookmark', $k, $v);
 | 
			
		||||
@@ -83,7 +81,6 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     * @return Bookmark object found, or null for no hits
 | 
			
		||||
     *
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function pkeyGet($kv)
 | 
			
		||||
    {
 | 
			
		||||
        return Memcached_DataObject::pkeyGet('Bookmark', $kv);
 | 
			
		||||
@@ -97,7 +94,6 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     *
 | 
			
		||||
     * @return array array of column definitions
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function table()
 | 
			
		||||
    {
 | 
			
		||||
        return array('id' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL,
 | 
			
		||||
@@ -115,7 +111,6 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     *
 | 
			
		||||
     * @return array list of key field names
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function keys()
 | 
			
		||||
    {
 | 
			
		||||
        return array_keys($this->keyTypes());
 | 
			
		||||
@@ -126,7 +121,6 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     *
 | 
			
		||||
     * @return array associative array of key definitions
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function keyTypes()
 | 
			
		||||
    {
 | 
			
		||||
        return array('id' => 'K',
 | 
			
		||||
@@ -138,7 +132,6 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     *
 | 
			
		||||
     * @return array magic three-false array that stops auto-incrementing.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function sequenceKey()
 | 
			
		||||
    {
 | 
			
		||||
        return array(false, false, false);
 | 
			
		||||
@@ -151,7 +144,6 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     *
 | 
			
		||||
     * @return Bookmark found bookmark or null
 | 
			
		||||
     */
 | 
			
		||||
    
 | 
			
		||||
    function getByNotice($notice)
 | 
			
		||||
    {
 | 
			
		||||
        return self::staticGet('uri', $notice->uri);
 | 
			
		||||
@@ -165,7 +157,6 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     *
 | 
			
		||||
     * @return Bookmark bookmark found or null
 | 
			
		||||
     */
 | 
			
		||||
     
 | 
			
		||||
    static function getByURL($profile, $url)
 | 
			
		||||
    {
 | 
			
		||||
        $nb = new Bookmark();
 | 
			
		||||
@@ -192,13 +183,13 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
     *
 | 
			
		||||
     * @return Notice saved notice
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    static function saveNew($profile, $title, $url, $rawtags, $description,
 | 
			
		||||
                            $options=null)
 | 
			
		||||
    {
 | 
			
		||||
        $nb = self::getByURL($profile, $url);
 | 
			
		||||
 | 
			
		||||
        if (!empty($nb)) {
 | 
			
		||||
            // TRANS: Client exception thrown when trying to save a new bookmark that already exists.
 | 
			
		||||
            throw new ClientException(_m('Bookmark already exists.'));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -209,6 +200,7 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
        if (array_key_exists('uri', $options)) {
 | 
			
		||||
            $other = Bookmark::staticGet('uri', $options['uri']);
 | 
			
		||||
            if (!empty($other)) {
 | 
			
		||||
                // TRANS: Client exception thrown when trying to save a new bookmark that already exists.
 | 
			
		||||
                throw new ClientException(_m('Bookmark already exists.'));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -288,8 +280,8 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
            $shortUrl = $url;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // @todo FIXME: i18n documentation.
 | 
			
		||||
        // TRANS: %1$s is a title, %2$s is a short URL, %3$s is a description,
 | 
			
		||||
        // TRANS: Bookmark content.
 | 
			
		||||
        // TRANS: %1$s is a title, %2$s is a short URL, %3$s is the bookmark description,
 | 
			
		||||
	// TRANS: %4$s is space separated list of hash tags.
 | 
			
		||||
        $content = sprintf(_m('"%1$s" %2$s %3$s %4$s'),
 | 
			
		||||
                           $title,
 | 
			
		||||
@@ -297,6 +289,9 @@ class Bookmark extends Memcached_DataObject
 | 
			
		||||
                           $description,
 | 
			
		||||
                           implode(' ', $hashtags));
 | 
			
		||||
 | 
			
		||||
        // TRANS: Rendered bookmark content.
 | 
			
		||||
        // TRANS: %1$s is a URL, %2$s the bookmark title, %3$s is the bookmark description,
 | 
			
		||||
	// TRANS: %4$s is space separated list of hash tags.
 | 
			
		||||
        $rendered = sprintf(_m('<span class="xfolkentry">'.
 | 
			
		||||
                              '<a class="taggedlink" href="%1$s">%2$s</a> '.
 | 
			
		||||
                              '<span class="description">%3$s</span> '.
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,6 @@ if (!defined('STATUSNET')) {
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
{
 | 
			
		||||
    const VERSION         = '0.1';
 | 
			
		||||
@@ -60,7 +59,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onUserRightsCheck($profile, $right, &$result)
 | 
			
		||||
    {
 | 
			
		||||
        if ($right == self::IMPORTDELICIOUS) {
 | 
			
		||||
@@ -78,7 +76,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value; true means continue processing, false means stop.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onCheckSchema()
 | 
			
		||||
    {
 | 
			
		||||
        $schema = Schema::get();
 | 
			
		||||
@@ -127,7 +124,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onEndShowStyles($action)
 | 
			
		||||
    {
 | 
			
		||||
        $action->cssLink($this->path('bookmark.css'));
 | 
			
		||||
@@ -141,7 +137,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value; true means continue processing, false means stop.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onAutoload($cls)
 | 
			
		||||
    {
 | 
			
		||||
        $dir = dirname(__FILE__);
 | 
			
		||||
@@ -175,7 +170,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value; true means continue processing, false means stop.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onRouterInitialized($m)
 | 
			
		||||
    {
 | 
			
		||||
        $m->connect('main/bookmark/new',
 | 
			
		||||
@@ -207,7 +201,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onEndInitializeQueueManager($qm)
 | 
			
		||||
    {
 | 
			
		||||
        $qm->connect('dlcsback', 'DeliciousBackupImporter');
 | 
			
		||||
@@ -222,7 +215,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onPluginVersion(&$versions)
 | 
			
		||||
    {
 | 
			
		||||
        $versions[] = array('name' => 'Sample',
 | 
			
		||||
@@ -230,6 +222,7 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
                            'author' => 'Evan Prodromou',
 | 
			
		||||
                            'homepage' => 'http://status.net/wiki/Plugin:Bookmark',
 | 
			
		||||
                            'rawdescription' =>
 | 
			
		||||
                            // TRANS: Plugin description.
 | 
			
		||||
                            _m('Simple extension for supporting bookmarks.'));
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
@@ -242,7 +235,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onStartLoadDoc(&$title, &$output)
 | 
			
		||||
    {
 | 
			
		||||
        if ($title == 'bookmarklet') {
 | 
			
		||||
@@ -256,8 +248,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Show a link to our delicious import page on profile settings form
 | 
			
		||||
     *
 | 
			
		||||
@@ -265,7 +255,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onEndProfileSettingsActions($action)
 | 
			
		||||
    {
 | 
			
		||||
        $user = common_current_user();
 | 
			
		||||
@@ -274,6 +263,7 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
            $action->elementStart('li');
 | 
			
		||||
            $action->element('a',
 | 
			
		||||
                             array('href' => common_local_url('importdelicious')),
 | 
			
		||||
                             // TRANS: Link text in proile leading to import form.
 | 
			
		||||
                             _m('Import del.icio.us bookmarks'));
 | 
			
		||||
            $action->elementEnd('li');
 | 
			
		||||
        }
 | 
			
		||||
@@ -314,7 +304,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return Notice resulting notice.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    static private function _postRemoteBookmark(Ostatus_profile $author,
 | 
			
		||||
                                                Activity $activity)
 | 
			
		||||
    {
 | 
			
		||||
@@ -335,7 +324,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return true if it's a Post of a Bookmark, else false
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    static private function _isPostBookmark($activity)
 | 
			
		||||
    {
 | 
			
		||||
        return ($activity->verb == ActivityVerb::POST &&
 | 
			
		||||
@@ -354,7 +342,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function deleteRelated($notice)
 | 
			
		||||
    {
 | 
			
		||||
        $nb = Bookmark::getByNotice($notice);
 | 
			
		||||
@@ -375,7 +362,6 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
     *
 | 
			
		||||
     * @return Notice resulting notice
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function saveNoticeFromActivity($activity, $profile, $options=array())
 | 
			
		||||
    {
 | 
			
		||||
        $bookmark = $activity->objects[0];
 | 
			
		||||
@@ -383,6 +369,7 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
        $relLinkEls = ActivityUtils::getLinks($bookmark->element, 'related');
 | 
			
		||||
 | 
			
		||||
        if (count($relLinkEls) < 1) {
 | 
			
		||||
            // TRANS: Client exception thrown when a bookmark is formatted incorrectly.
 | 
			
		||||
            throw new ClientException(_m('Expected exactly 1 link '.
 | 
			
		||||
                                        'rel=related in a Bookmark.'));
 | 
			
		||||
        }
 | 
			
		||||
@@ -476,6 +463,7 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
        $attachments = $notice->attachments();
 | 
			
		||||
 | 
			
		||||
        if (count($attachments) != 1) {
 | 
			
		||||
            // TRANS: Server exception thrown when a bookmark has multiple attachments.
 | 
			
		||||
            throw new ServerException(_m('Bookmark notice with the '.
 | 
			
		||||
                                        'wrong number of attachments.'));
 | 
			
		||||
        }
 | 
			
		||||
@@ -530,7 +518,8 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
 | 
			
		||||
        if (count($atts) < 1) {
 | 
			
		||||
            // Something wrong; let default code deal with it.
 | 
			
		||||
            throw new Exception("That can't be right.");
 | 
			
		||||
            // TRANS: Exception thrown when a bookmark has no attachments.
 | 
			
		||||
            throw new Exception(_m('Bookmark has no attachments.'));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $att = $atts[0];
 | 
			
		||||
@@ -644,6 +633,7 @@ class BookmarkPlugin extends MicroAppPlugin
 | 
			
		||||
 | 
			
		||||
    function appTitle()
 | 
			
		||||
    {
 | 
			
		||||
        return _m('Bookmark');
 | 
			
		||||
        // TRANS: Application title.
 | 
			
		||||
        return _m('TITLE','Bookmark');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class BookmarkForm extends Form
 | 
			
		||||
{
 | 
			
		||||
    private $_title       = null;
 | 
			
		||||
@@ -63,7 +62,6 @@ class BookmarkForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function __construct($out=null, $title=null, $url=null, $tags=null,
 | 
			
		||||
                         $description=null)
 | 
			
		||||
    {
 | 
			
		||||
@@ -80,7 +78,6 @@ class BookmarkForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return int ID of the form
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function id()
 | 
			
		||||
    {
 | 
			
		||||
        return 'form_new_bookmark';
 | 
			
		||||
@@ -91,7 +88,6 @@ class BookmarkForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return string class of the form
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function formClass()
 | 
			
		||||
    {
 | 
			
		||||
        return 'form_settings ajax-notice';
 | 
			
		||||
@@ -102,7 +98,6 @@ class BookmarkForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return string URL of the action
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function action()
 | 
			
		||||
    {
 | 
			
		||||
        return common_local_url('newbookmark');
 | 
			
		||||
@@ -113,7 +108,6 @@ class BookmarkForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function formData()
 | 
			
		||||
    {
 | 
			
		||||
        $this->out->elementStart('fieldset', array('id' => 'new_bookmark_data'));
 | 
			
		||||
@@ -121,30 +115,38 @@ class BookmarkForm extends Form
 | 
			
		||||
 | 
			
		||||
        $this->li();
 | 
			
		||||
        $this->out->input('title',
 | 
			
		||||
                          // TRANS: Field label on form for adding a new bookmark.
 | 
			
		||||
                          _m('LABEL','Title'),
 | 
			
		||||
                          $this->_title,
 | 
			
		||||
                          _m('Title of the bookmark'));
 | 
			
		||||
                          // TRANS: Field title on form for adding a new bookmark.
 | 
			
		||||
                          _m('Title of the bookmark.'));
 | 
			
		||||
        $this->unli();
 | 
			
		||||
 | 
			
		||||
        $this->li();
 | 
			
		||||
        $this->out->input('url',
 | 
			
		||||
                          // TRANS: Field label on form for adding a new bookmark.
 | 
			
		||||
                          _m('LABEL','URL'),
 | 
			
		||||
                          $this->_url,
 | 
			
		||||
                          _m('URL to bookmark'));
 | 
			
		||||
                          // TRANS: Field title on form for adding a new bookmark.
 | 
			
		||||
                          _m('URL to bookmark.'));
 | 
			
		||||
        $this->unli();
 | 
			
		||||
 | 
			
		||||
        $this->li();
 | 
			
		||||
        $this->out->input('tags',
 | 
			
		||||
                          // TRANS: Field label on form for adding a new bookmark.
 | 
			
		||||
                          _m('LABEL','Tags'),
 | 
			
		||||
                          $this->_tags,
 | 
			
		||||
                          _m('Comma- or space-separated list of tags'));
 | 
			
		||||
                          // TRANS: Field title on form for adding a new bookmark.
 | 
			
		||||
                          _m('Comma- or space-separated list of tags.'));
 | 
			
		||||
        $this->unli();
 | 
			
		||||
 | 
			
		||||
        $this->li();
 | 
			
		||||
        $this->out->input('description',
 | 
			
		||||
                          // TRANS: Field label on form for adding a new bookmark.
 | 
			
		||||
                          _m('LABEL','Description'),
 | 
			
		||||
                          $this->_description,
 | 
			
		||||
                          _m('Description of the URL'));
 | 
			
		||||
                          // TRANS: Field title on form for adding a new bookmark.
 | 
			
		||||
                          _m('Description of the URL.'));
 | 
			
		||||
        $this->unli();
 | 
			
		||||
 | 
			
		||||
        $this->out->elementEnd('ul');
 | 
			
		||||
@@ -165,6 +167,7 @@ class BookmarkForm extends Form
 | 
			
		||||
 | 
			
		||||
    function formActions()
 | 
			
		||||
    {
 | 
			
		||||
        // TRANS: Button text for action to save a new bookmark.
 | 
			
		||||
        $this->out->submit('submit', _m('BUTTON', 'Save'));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -49,12 +49,11 @@ class BookmarkpopupAction extends NewbookmarkAction
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function showTitle()
 | 
			
		||||
    {
 | 
			
		||||
        $this->element('title',
 | 
			
		||||
                       // TRANS: Title for mini-posting window loaded from bookmarklet.
 | 
			
		||||
                       // TRANS: %s is the StatusNet site name.
 | 
			
		||||
        $this->element('title', 
 | 
			
		||||
                       null, sprintf(_m('Bookmark on %s'),
 | 
			
		||||
                                     common_config('site', 'name')));
 | 
			
		||||
    }
 | 
			
		||||
@@ -66,7 +65,6 @@ class BookmarkpopupAction extends NewbookmarkAction
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function showHeader()
 | 
			
		||||
    {
 | 
			
		||||
        $this->elementStart('div', array('id' => 'header'));
 | 
			
		||||
@@ -89,7 +87,6 @@ class BookmarkpopupAction extends NewbookmarkAction
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function showCore()
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
@@ -99,7 +96,6 @@ class BookmarkpopupAction extends NewbookmarkAction
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function showFooter()
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class DeliciousBackupImporter extends QueueHandler
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
@@ -52,7 +51,6 @@ class DeliciousBackupImporter extends QueueHandler
 | 
			
		||||
     *
 | 
			
		||||
     * @return string transport string
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function transport()
 | 
			
		||||
    {
 | 
			
		||||
        return 'dlcsback';
 | 
			
		||||
@@ -72,7 +70,6 @@ class DeliciousBackupImporter extends QueueHandler
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean success value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function handle($data)
 | 
			
		||||
    {
 | 
			
		||||
        list($user, $body) = $data;
 | 
			
		||||
@@ -82,7 +79,8 @@ class DeliciousBackupImporter extends QueueHandler
 | 
			
		||||
        $dls = $doc->getElementsByTagName('dl');
 | 
			
		||||
 | 
			
		||||
        if ($dls->length != 1) {
 | 
			
		||||
            throw new ClientException(_m("Bad import file."));
 | 
			
		||||
            // TRANS: Client exception thrown when a file upload is incorrect.
 | 
			
		||||
            throw new ClientException(_m('Bad import file.'));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $dl = $dls->item(0);
 | 
			
		||||
@@ -159,12 +157,12 @@ class DeliciousBackupImporter extends QueueHandler
 | 
			
		||||
     *
 | 
			
		||||
     * @return Notice imported notice
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function importBookmark($user, $dt, $dd = null)
 | 
			
		||||
    {
 | 
			
		||||
        $as = $dt->getElementsByTagName('a');
 | 
			
		||||
 | 
			
		||||
        if ($as->length == 0) {
 | 
			
		||||
            // TRANS: Client exception thrown when a bookmark in an import file is incorrectly formatted.
 | 
			
		||||
            throw new ClientException(_m("No <A> tag in a <DT>."));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -173,6 +171,7 @@ class DeliciousBackupImporter extends QueueHandler
 | 
			
		||||
        $private = $a->getAttribute('private');
 | 
			
		||||
 | 
			
		||||
        if ($private != 0) {
 | 
			
		||||
            // TRANS: Client exception thrown when a bookmark in an import file is private.
 | 
			
		||||
            throw new ClientException(_m('Skipping private bookmark.'));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -306,5 +305,4 @@ class DeliciousBackupImporter extends QueueHandler
 | 
			
		||||
            $this->fixListItem($node);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class DeliciousBookmarkImporter extends QueueHandler
 | 
			
		||||
{
 | 
			
		||||
    /**
 | 
			
		||||
@@ -52,7 +51,6 @@ class DeliciousBookmarkImporter extends QueueHandler
 | 
			
		||||
     *
 | 
			
		||||
     * @return string 'dlcsbkmk'
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function transport()
 | 
			
		||||
    {
 | 
			
		||||
        return 'dlcsbkmk';
 | 
			
		||||
@@ -65,7 +63,6 @@ class DeliciousBookmarkImporter extends QueueHandler
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean success value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function handle($data)
 | 
			
		||||
    {
 | 
			
		||||
        $profile = Profile::staticGet('id', $data['profile_id']);
 | 
			
		||||
 
 | 
			
		||||
@@ -63,19 +63,25 @@ function getBookmarksFile()
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!file_exists($filename)) {
 | 
			
		||||
        throw new Exception("No such file '$filename'.");
 | 
			
		||||
        // TRANS: Exception thrown when a file upload cannot be found.
 | 
			
		||||
        // TRANS: %s is the file that could not be found.
 | 
			
		||||
        throw new Exception(sprintf(_m('No such file "%s".'),$filename));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!is_file($filename)) {
 | 
			
		||||
        throw new Exception("Not a regular file: '$filename'.");
 | 
			
		||||
        // TRANS: Exception thrown when a file upload is incorrect.
 | 
			
		||||
        // TRANS: %s is the irregular file.
 | 
			
		||||
        throw new Exception(sprintf(_m('Not a regular file: "%s".'),$filename));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!is_readable($filename)) {
 | 
			
		||||
        throw new Exception("File '$filename' not readable.");
 | 
			
		||||
        // TRANS: Exception thrown when a file upload is not readable.
 | 
			
		||||
        // TRANS: %s is the file that could not be read.
 | 
			
		||||
        throw new Exception(sprintf(_m('File "%s" not readable.'),$filename));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // TRANS: %s is the filename that contains a backup for a user.
 | 
			
		||||
    printfv(_m("Getting backup from file \"%s\".")."\n", $filename);
 | 
			
		||||
    printfv(_m('Getting backup from file "%s".')."\n", $filename);
 | 
			
		||||
 | 
			
		||||
    $html = file_get_contents($filename);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class ImportdeliciousAction extends Action
 | 
			
		||||
{
 | 
			
		||||
    protected $success = false;
 | 
			
		||||
@@ -55,9 +54,9 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return string page title
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function title()
 | 
			
		||||
    {
 | 
			
		||||
        // TRANS: Title for page to import del.icio.us bookmark backups on.
 | 
			
		||||
        return _m("Import del.icio.us bookmarks");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -68,7 +67,6 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean true
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function prepare($argarray)
 | 
			
		||||
    {
 | 
			
		||||
        parent::prepare($argarray);
 | 
			
		||||
@@ -76,12 +74,14 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
        $cur = common_current_user();
 | 
			
		||||
 | 
			
		||||
        if (empty($cur)) {
 | 
			
		||||
            // TRANS: Client exception thrown when trying to import bookmarks without being logged in.
 | 
			
		||||
            throw new ClientException(_m('Only logged-in users can '.
 | 
			
		||||
                                        'import del.icio.us backups.'),
 | 
			
		||||
                                      403);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (!$cur->hasRight(BookmarkPlugin::IMPORTDELICIOUS)) {
 | 
			
		||||
            // TRANS: Client exception thrown when trying to import bookmarks without having the rights to do so.
 | 
			
		||||
            throw new ClientException(_m('You may not restore your account.'), 403);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -95,7 +95,6 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function handle($argarray=null)
 | 
			
		||||
    {
 | 
			
		||||
        parent::handle($argarray);
 | 
			
		||||
@@ -115,12 +114,12 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function importDelicious()
 | 
			
		||||
    {
 | 
			
		||||
        $this->checkSessionToken();
 | 
			
		||||
 | 
			
		||||
        if (!isset($_FILES[ImportDeliciousForm::FILEINPUT]['error'])) {
 | 
			
		||||
            // TRANS: Client exception thrown when trying to import bookmarks and upload fails.
 | 
			
		||||
            throw new ClientException(_m('No uploaded file.'));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -134,36 +133,37 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
            return;
 | 
			
		||||
        case UPLOAD_ERR_FORM_SIZE:
 | 
			
		||||
            throw new ClientException(
 | 
			
		||||
                // TRANS: Client exception.
 | 
			
		||||
            // TRANS: Client exception thrown when an uploaded file is too large.
 | 
			
		||||
                _m('The uploaded file exceeds the MAX_FILE_SIZE directive' .
 | 
			
		||||
                ' that was specified in the HTML form.'));
 | 
			
		||||
            return;
 | 
			
		||||
        case UPLOAD_ERR_PARTIAL:
 | 
			
		||||
            @unlink($_FILES[ImportDeliciousForm::FILEINPUT]['tmp_name']);
 | 
			
		||||
            // TRANS: Client exception.
 | 
			
		||||
            // TRANS: Client exception thrown when a file was only partially uploaded.
 | 
			
		||||
            throw new ClientException(_m('The uploaded file was only' .
 | 
			
		||||
                ' partially uploaded.'));
 | 
			
		||||
            return;
 | 
			
		||||
        case UPLOAD_ERR_NO_FILE:
 | 
			
		||||
            // No file; probably just a non-AJAX submission.
 | 
			
		||||
            // TRANS: Client exception thrown when a file upload has failed.
 | 
			
		||||
            throw new ClientException(_m('No uploaded file.'));
 | 
			
		||||
            return;
 | 
			
		||||
        case UPLOAD_ERR_NO_TMP_DIR:
 | 
			
		||||
            // TRANS: Client exception thrown when a temporary folder is not present
 | 
			
		||||
            // TRANS: Client exception thrown when a temporary folder is not present.
 | 
			
		||||
            throw new ClientException(_m('Missing a temporary folder.'));
 | 
			
		||||
            return;
 | 
			
		||||
        case UPLOAD_ERR_CANT_WRITE:
 | 
			
		||||
            // TRANS: Client exception thrown when writing to disk is not possible
 | 
			
		||||
            // TRANS: Client exception thrown when writing to disk is not possible.
 | 
			
		||||
            throw new ClientException(_m('Failed to write file to disk.'));
 | 
			
		||||
            return;
 | 
			
		||||
        case UPLOAD_ERR_EXTENSION:
 | 
			
		||||
            // TRANS: Client exception thrown when a file upload has been stopped
 | 
			
		||||
            // TRANS: Client exception thrown when a file upload has been stopped.
 | 
			
		||||
            throw new ClientException(_m('File upload stopped by extension.'));
 | 
			
		||||
            return;
 | 
			
		||||
        default:
 | 
			
		||||
            common_log(LOG_ERR, __METHOD__ . ": Unknown upload error " .
 | 
			
		||||
                $_FILES[ImportDeliciousForm::FILEINPUT]['error']);
 | 
			
		||||
            // TRANS: Client exception thrown when a file upload operation has failed
 | 
			
		||||
            // TRANS: Client exception thrown when a file upload operation has failed.
 | 
			
		||||
            throw new ClientException(_m('System error uploading file.'));
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
@@ -172,18 +172,24 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            if (!file_exists($filename)) {
 | 
			
		||||
                throw new ServerException("No such file '$filename'.");
 | 
			
		||||
                // TRANS: Server exception thrown when a file upload cannot be found.
 | 
			
		||||
                // TRANS: %s is the file that could not be found.
 | 
			
		||||
                throw new ServerException(sprintf(_m('No such file "%s".'),$filename));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (!is_file($filename)) {
 | 
			
		||||
                throw new ServerException("Not a regular file: '$filename'.");
 | 
			
		||||
                // TRANS: Server exception thrown when a file upload is incorrect.
 | 
			
		||||
                // TRANS: %s is the irregular file.
 | 
			
		||||
                throw new ServerException(sprintf(_m('Not a regular file: "%s".'),$filename));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (!is_readable($filename)) {
 | 
			
		||||
                throw new ServerException("File '$filename' not readable.");
 | 
			
		||||
                // TRANS: Server exception thrown when a file upload is not readable.
 | 
			
		||||
                // TRANS: %s is the file that could not be read.
 | 
			
		||||
                throw new ServerException(sprintf(_m('File "%s" not readable.'),$filename));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            common_debug(sprintf(_m("Getting backup from file '%s'."), $filename));
 | 
			
		||||
            common_debug(sprintf("Getting backup from file '%s'.", $filename));
 | 
			
		||||
 | 
			
		||||
            $html = file_get_contents($filename);
 | 
			
		||||
 | 
			
		||||
@@ -214,14 +220,15 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function showContent()
 | 
			
		||||
    {
 | 
			
		||||
        if ($this->success) {
 | 
			
		||||
            $this->element('p', null,
 | 
			
		||||
                           // TRANS: Success message after importing bookmarks.
 | 
			
		||||
                           _m('Bookmarks have been imported. Your bookmarks should now appear in search and your profile page.'));
 | 
			
		||||
        } else if ($this->inprogress) {
 | 
			
		||||
            $this->element('p', null,
 | 
			
		||||
                           // TRANS: Busy message for importing bookmarks.
 | 
			
		||||
                           _m('Bookmarks are being imported. Please wait a few minutes for results.'));
 | 
			
		||||
        } else {
 | 
			
		||||
            $form = new ImportDeliciousForm($this);
 | 
			
		||||
@@ -238,7 +245,6 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean is read only action?
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function isReadOnly($args)
 | 
			
		||||
    {
 | 
			
		||||
        return !$this->isPost();
 | 
			
		||||
@@ -255,7 +261,6 @@ class ImportdeliciousAction extends Action
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class ImportDeliciousForm extends Form
 | 
			
		||||
{
 | 
			
		||||
    const FILEINPUT = 'deliciousbackupfile';
 | 
			
		||||
@@ -269,7 +274,6 @@ class ImportDeliciousForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return ImportDeliciousForm this
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function __construct($out=null)
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct($out);
 | 
			
		||||
@@ -281,7 +285,6 @@ class ImportDeliciousForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return string the form's class
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function formClass()
 | 
			
		||||
    {
 | 
			
		||||
        return 'form_import_delicious';
 | 
			
		||||
@@ -292,7 +295,6 @@ class ImportDeliciousForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return string the form's action URL
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function action()
 | 
			
		||||
    {
 | 
			
		||||
        return common_local_url('importdelicious');
 | 
			
		||||
@@ -305,11 +307,11 @@ class ImportDeliciousForm extends Form
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function formData()
 | 
			
		||||
    {
 | 
			
		||||
        $this->out->elementStart('p', 'instructions');
 | 
			
		||||
 | 
			
		||||
        // TRANS: Form instructions for importing bookmarks.
 | 
			
		||||
        $this->out->raw(_m('You can upload a backed-up '.
 | 
			
		||||
                          'delicious.com bookmarks file.'));
 | 
			
		||||
 | 
			
		||||
@@ -337,9 +339,11 @@ class ImportDeliciousForm extends Form
 | 
			
		||||
    function formActions()
 | 
			
		||||
    {
 | 
			
		||||
        $this->out->submit('submit',
 | 
			
		||||
                           // TRANS: Button text on form to import bookmarks.
 | 
			
		||||
                           _m('BUTTON', 'Upload'),
 | 
			
		||||
                           'submit',
 | 
			
		||||
                           null,
 | 
			
		||||
                           _m('Upload the file'));
 | 
			
		||||
                           // TRANS: Button title on form to import bookmarks.
 | 
			
		||||
                           _m('Upload the file.'));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,6 @@ if (!defined('STATUSNET')) {
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class NewbookmarkAction extends Action
 | 
			
		||||
{
 | 
			
		||||
    protected $user        = null;
 | 
			
		||||
@@ -59,9 +58,9 @@ class NewbookmarkAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return string Action title
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function title()
 | 
			
		||||
    {
 | 
			
		||||
        // TRANS: Title for action to create a new bookmark.
 | 
			
		||||
        return _m('New bookmark');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -72,7 +71,6 @@ class NewbookmarkAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean true
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function prepare($argarray)
 | 
			
		||||
    {
 | 
			
		||||
        parent::prepare($argarray);
 | 
			
		||||
@@ -80,7 +78,8 @@ class NewbookmarkAction extends Action
 | 
			
		||||
        $this->user = common_current_user();
 | 
			
		||||
 | 
			
		||||
        if (empty($this->user)) {
 | 
			
		||||
            throw new ClientException(_m("Must be logged in to post a bookmark."),
 | 
			
		||||
            // TRANS: Client exception thrown when trying to create a new bookmark while not logged in.
 | 
			
		||||
            throw new ClientException(_m('Must be logged in to post a bookmark.'),
 | 
			
		||||
                                      403);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -103,7 +102,6 @@ class NewbookmarkAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function handle($argarray=null)
 | 
			
		||||
    {
 | 
			
		||||
        parent::handle($argarray);
 | 
			
		||||
@@ -122,7 +120,6 @@ class NewbookmarkAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function newBookmark()
 | 
			
		||||
    {
 | 
			
		||||
        if ($this->boolean('ajax')) {
 | 
			
		||||
@@ -130,10 +127,12 @@ class NewbookmarkAction extends Action
 | 
			
		||||
        }
 | 
			
		||||
        try {
 | 
			
		||||
            if (empty($this->title)) {
 | 
			
		||||
                // TRANS: Client exception thrown when trying to create a new bookmark without a title.
 | 
			
		||||
                throw new ClientException(_m('Bookmark must have a title.'));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (empty($this->url)) {
 | 
			
		||||
                // TRANS: Client exception thrown when trying to create a new bookmark without a URL.
 | 
			
		||||
                throw new ClientException(_m('Bookmark must have an URL.'));
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@@ -159,8 +158,8 @@ class NewbookmarkAction extends Action
 | 
			
		||||
            $this->xw->startDocument('1.0', 'UTF-8');
 | 
			
		||||
            $this->elementStart('html');
 | 
			
		||||
            $this->elementStart('head');
 | 
			
		||||
            // TRANS: Page title after sending a notice.
 | 
			
		||||
            $this->element('title', null, _m('Notice posted'));
 | 
			
		||||
            // TRANS: Page title after posting a bookmark.
 | 
			
		||||
            $this->element('title', null, _m('Bookmark posted'));
 | 
			
		||||
            $this->elementEnd('head');
 | 
			
		||||
            $this->elementStart('body');
 | 
			
		||||
            $this->showNotice($saved);
 | 
			
		||||
@@ -192,7 +191,6 @@ class NewbookmarkAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function showContent()
 | 
			
		||||
    {
 | 
			
		||||
        if (!empty($this->error)) {
 | 
			
		||||
@@ -219,7 +217,6 @@ class NewbookmarkAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean is read only action?
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function isReadOnly($args)
 | 
			
		||||
    {
 | 
			
		||||
        if ($_SERVER['REQUEST_METHOD'] == 'GET' ||
 | 
			
		||||
@@ -230,4 +227,3 @@ class NewbookmarkAction extends Action
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -44,7 +44,6 @@ if (!defined('STATUSNET')) {
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class NoticebyurlAction extends Action
 | 
			
		||||
{
 | 
			
		||||
    protected $url     = null;
 | 
			
		||||
@@ -59,7 +58,6 @@ class NoticebyurlAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean true
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function prepare($argarray)
 | 
			
		||||
    {
 | 
			
		||||
        parent::prepare($argarray);
 | 
			
		||||
@@ -67,7 +65,8 @@ class NoticebyurlAction extends Action
 | 
			
		||||
        $this->file = File::staticGet('id', $this->trimmed('id'));
 | 
			
		||||
 | 
			
		||||
        if (empty($this->file)) {
 | 
			
		||||
            throw new ClientException(_m('Unknown URL'));
 | 
			
		||||
            // TRANS: Client exception thrown when an unknown URL is provided.
 | 
			
		||||
            throw new ClientException(_m('Unknown URL.'));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $pageArg = $this->trimmed('page');
 | 
			
		||||
@@ -85,13 +84,16 @@ class NoticebyurlAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return string page title
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function title()
 | 
			
		||||
    {
 | 
			
		||||
        if ($this->page == 1) {
 | 
			
		||||
            return sprintf(_m("Notices linking to %s"), $this->file->url);
 | 
			
		||||
            // TRANS: Title of notice stream of notices with a given attachment (first page).
 | 
			
		||||
            // TRANS: %s is the URL.
 | 
			
		||||
            return sprintf(_m('Notices linking to %s'), $this->file->url);
 | 
			
		||||
        } else {
 | 
			
		||||
            return sprintf(_m("Notices linking to %1$s, page %2$d"),
 | 
			
		||||
            // TRANS: Title of notice stream of notices with a given attachment (all but first page).
 | 
			
		||||
            // TRANS: %1$s is the URL, %2$s is the page number.
 | 
			
		||||
            return sprintf(_m('Notices linking to %1$s, page %2$d'),
 | 
			
		||||
                           $this->file->url,
 | 
			
		||||
                           $this->page);
 | 
			
		||||
        }
 | 
			
		||||
@@ -104,7 +106,6 @@ class NoticebyurlAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function handle($argarray=null)
 | 
			
		||||
    {
 | 
			
		||||
        $this->showPage();
 | 
			
		||||
@@ -117,7 +118,6 @@ class NoticebyurlAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function showContent()
 | 
			
		||||
    {
 | 
			
		||||
        $nl = new NoticeList($this->notices, $this);
 | 
			
		||||
@@ -142,7 +142,6 @@ class NoticebyurlAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean is read only action?
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function isReadOnly($args)
 | 
			
		||||
    {
 | 
			
		||||
        return true;
 | 
			
		||||
@@ -169,7 +168,6 @@ class NoticebyurlAction extends Action
 | 
			
		||||
     *
 | 
			
		||||
     * @return string etag http header
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function etag()
 | 
			
		||||
    {
 | 
			
		||||
        return null;
 | 
			
		||||
 
 | 
			
		||||
@@ -50,7 +50,6 @@ class ShowbookmarkAction extends ShownoticeAction
 | 
			
		||||
 | 
			
		||||
    function getNotice()
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        $this->id = $this->trimmed('id');
 | 
			
		||||
 | 
			
		||||
        $this->bookmark = Bookmark::staticGet('id', $this->id);
 | 
			
		||||
 
 | 
			
		||||
@@ -205,7 +205,7 @@ class QnAPlugin extends MicroAppPlugin
 | 
			
		||||
 | 
			
		||||
        $questionObj = $activity->objects[0];
 | 
			
		||||
 | 
			
		||||
        if ($questinoObj->type != QnA_Question::OBJECT_TYPE) {
 | 
			
		||||
        if ($questionObj->type != QnA_Question::OBJECT_TYPE) {
 | 
			
		||||
            throw new Exception('Wrong type for object.');
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user