Plugin Directory

Changeset 3417562


Ignore:
Timestamp:
12/11/2025 03:58:10 PM (2 days ago)
Author:
boonebgorges
Message:

Creating tag 5.9.4.

Location:
pressforward
Files:
30 edited
1 copied

Legend:

Unmodified
Added
Removed
  • pressforward/tags/5.9.4/Core/Bookmarklet/NominateThisCore.php

    r3356897 r3417562  
    4848            ),
    4949            array(
    50                 'hook'   => 'admin_menu',
    51                 'method' => 'register_nomination_success_panel',
     50                'hook'     => 'admin_menu',
     51                'method'   => 'register_nomination_success_panel',
     52                'priority' => 20,
     53            ),
     54            array(
     55                'hook'   => 'admin_head',
     56                'method' => 'remove_nomination_add_new_menu_item',
    5257            ),
    5358        );
     
    223228        if ( $internal ) {
    224229            if ( ! current_user_can( get_option( 'pf_menu_nominate_this_access', pressforward( 'controller.users' )->pf_get_defining_capability_by_role( 'contributor' ) ) ) ) {
    225                 wp_die( esc_html_e( 'You do not have access to the Nominate This bookmarklet.', 'pressforward' ) );
     230                wp_die( esc_html__( 'You do not have access to the Nominate This bookmarklet.', 'pressforward' ) );
    226231            }
    227232        }
     
    710715            [ $this, 'nomination_success_panel' ]
    711716        );
     717
     718        /*
     719         * We also take this opportunity to add the 'Add New Nomination' panel.
     720         * We need to add it because otherwise cap checks will fail when
     721         * loading the bookmarklet URL in certain cases. And the 'Add New' panel
     722         * doesn't appear natively because we use a different parent when registering
     723         * the post type (show_in_menu). The menu item is removed before rendering.
     724         */
     725        $pt = get_post_type_object( 'nomination' );
     726        if ( $pt && is_string( $pt->show_in_menu ) ) {
     727            add_submenu_page(
     728                $pt->show_in_menu,
     729                $pt->labels->add_new_item,
     730                $pt->labels->add_new_item,
     731                $pt->cap->create_posts,
     732                "post-new.php?post_type={$pt->name}"
     733            );
     734        }
     735    }
     736
     737    /**
     738     * Removes the 'Add New Nomination' menu item from the admin menu.
     739     *
     740     * This is hooked to 'admin_head', which runs after the menu is built but before
     741     * the page is rendered.
     742     *
     743     * @since 5.6.0
     744     *
     745     * @return void
     746     */
     747    public function remove_nomination_add_new_menu_item() {
     748        remove_submenu_page( 'pf-menu', 'post-new.php?post_type=nomination' );
    712749    }
    713750
  • pressforward/tags/5.9.4/Core/Schema/Feeds.php

    r3356897 r3417562  
    7070                'method'   => 'register_feed_post_type',
    7171                'priority' => 10,
     72            ),
     73            array(
     74                'hook'     => 'init',
     75                'method'   => 'check_feed_retrieval_cron_jobs',
     76                'priority' => 20,
    7277            ),
    7378            array(
     
    423428
    424429    /**
     430     * Incrementally checks and schedules retrieval cron jobs for feeds.
     431     *
     432     * This method runs on 'init' and checks a batch of feeds to ensure they have
     433     * retrieval cron jobs scheduled. It uses a timestamp and counter system to
     434     * process feeds incrementally, avoiding overload on sites with many feeds.
     435     *
     436     * The check runs once per hour and processes up to 100 feeds per run. When
     437     * all feeds have been checked, the counter resets and the cycle starts again.
     438     *
     439     * @since 5.9.4
     440     *
     441     * @return void
     442     */
     443    public function check_feed_retrieval_cron_jobs() {
     444        // Get the last check timestamp and counter.
     445        $last_check_time = get_option( 'pf_feed_cron_check_timestamp', 0 );
     446        $current_time    = time();
     447
     448        // Only run the check once per hour.
     449        if ( ( $current_time - $last_check_time ) < HOUR_IN_SECONDS ) {
     450            return;
     451        }
     452
     453        // Get the current position in the feed list.
     454        $offset = (int) get_option( 'pf_feed_cron_check_offset', 0 );
     455
     456        // Query for a batch of feeds.
     457        $batch_size = apply_filters( 'pf_feed_cron_check_batch_size', 100 );
     458        $args       = array(
     459            'post_type'      => $this->post_type,
     460            'post_status'    => 'publish',
     461            'posts_per_page' => $batch_size,
     462            'offset'         => $offset,
     463            'orderby'        => 'ID',
     464            'order'          => 'ASC',
     465            'fields'         => 'ids',
     466        );
     467
     468        $feed_ids = get_posts( $args );
     469
     470        // If no feeds found, reset the counter and exit.
     471        if ( empty( $feed_ids ) ) {
     472            update_option( 'pf_feed_cron_check_offset', 0 );
     473            return;
     474        }
     475
     476        // Check each feed and schedule retrieval if needed.
     477        foreach ( $feed_ids as $feed_id ) {
     478            $feed = Feed::get_instance_by_id( $feed_id );
     479            if ( ! $feed ) {
     480                continue;
     481            }
     482
     483            // Check if the retrieval is already scheduled.
     484            $next_scheduled = $feed->get_next_scheduled_retrieval();
     485            if ( ! $next_scheduled ) {
     486                // Schedule retrieval for this feed.
     487                $feed->schedule_retrieval();
     488            }
     489        }
     490
     491        // Calculate the next offset position.
     492        $calculated_offset = $offset + count( $feed_ids );
     493
     494        // Check if we've reached the end of the feed list.
     495        if ( count( $feed_ids ) < $batch_size ) {
     496            // Reset to start from the beginning in the next cycle.
     497            update_option( 'pf_feed_cron_check_offset', 0 );
     498        } else {
     499            // Continue from where we left off.
     500            update_option( 'pf_feed_cron_check_offset', $calculated_offset );
     501        }
     502
     503        // Update the timestamp after successful completion to prevent multiple checks.
     504        update_option( 'pf_feed_cron_check_timestamp', $current_time );
     505    }
     506
     507    /**
    425508     * Handles submitbox actions on save.
    426509     *
  • pressforward/tags/5.9.4/Core/Schema/Nominations.php

    r3356899 r3417562  
    135135
    136136        // We must 'show_in_menu' but we also want to remove the 'Nominations' item from the admin menu.
    137         add_action( 'admin_menu', function() {
    138             remove_submenu_page( PF_MENU_SLUG, 'edit.php?post_type=nomination' );
    139         }, 999 );
     137        add_action(
     138            'admin_menu',
     139            function () {
     140                remove_submenu_page( PF_MENU_SLUG, 'edit.php?post_type=nomination' );
     141            },
     142            999
     143        );
    140144    }
    141145
  • pressforward/tags/5.9.4/Core/Utility/Forward_Tools.php

    r3207176 r3417562  
    8383    public function get_nomination_nominator_array( $nomination_id ) {
    8484        $nominators = $this->metas->get_post_pf_meta( $nomination_id, 'nominator_array' );
     85
     86        if ( is_string( $nominators ) ) {
     87            $nominators = wp_parse_id_list( $nominators );
     88        }
     89
    8590        if ( ! $nominators ) {
    8691            $nominators = [];
  • pressforward/tags/5.9.4/constants.php

    r3356897 r3417562  
    1414define( 'PF_FILE_PATH', PF_ROOT . '/pressforward.php' );
    1515define( 'PF_URL', plugins_url( '/', __FILE__ ) );
    16 define( 'PF_VERSION', '5.9.3' );
     16define( 'PF_VERSION', '5.9.4' );
  • pressforward/tags/5.9.4/includes/functions.php

    r3330426 r3417562  
    966966}
    967967add_filter( 'the_author', 'pf_replace_author_presentation' );
     968add_filter( 'get_the_author_display_name', 'pf_replace_author_presentation' );
    968969
    969970/**
  • pressforward/tags/5.9.4/includes/module-base.php

    r3330426 r3417562  
    187187
    188188                <td>
    189                     <select id="<?php esc_attr( PF_SLUG . '_' . $module_id . '_enable' ); ?>" name="<?php echo esc_attr( PF_SLUG . '_' . $module_id . '_enable' ); ?>">
     189                    <select id="<?php echo esc_attr( PF_SLUG . '_' . $module_id . '_enable' ); ?>" name="<?php echo esc_attr( PF_SLUG . '_' . $module_id . '_enable' ); ?>">
    190190                        <option value="yes" <?php selected( $enabled, 'yes' ); ?>><?php esc_html_e( 'Yes', 'pressforward' ); ?></option>
    191191                        <option value="no" <?php selected( $enabled, 'no' ); ?>><?php esc_html_e( 'No', 'pressforward' ); ?></option>
  • pressforward/tags/5.9.4/languages/pressforward.pot

    r3356897 r3417562  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-09-05T15:46:19-05:00\n"
     12"POT-Creation-Date: 2025-12-11T09:49:08-06:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
     
    242242
    243243#: Controllers/Metas.php:597
    244 #: Core/Bookmarklet/NominateThisCore.php:92
     244#: Core/Bookmarklet/NominateThisCore.php:97
    245245msgid "Tags"
    246246msgstr ""
     
    297297#: Core/Admin/Menu.php:189
    298298#: Core/Schema/Nominations.php:78
    299 #: Core/Schema/Nominations.php:202
     299#: Core/Schema/Nominations.php:211
    300300#: parts/welcome/nominations.php:29
    301301msgid "Nominations"
     
    360360#: Controllers/Metas.php:687
    361361#: Core/Admin/AddFeeds.php:136
    362 #: modules/rss-import/rss-import.php:465
     362#: modules/rss-import/rss-import.php:482
    363363#: assets/src/nominate-this-block-editor/nominate-this-block-editor.js:63
    364364#: assets/src/nominate-this-block-editor/nominate-this-block-editor.js:69
     
    471471#: Controllers/Metas.php:837
    472472#: Core/Admin/SubscribedFeeds.php:536
    473 #: modules/rss-import/rss-import.php:455
     473#: modules/rss-import/rss-import.php:472
    474474#: assets/src/block-editor-feeds/block-editor-feeds.js:53
    475475#: build/block-editor-feeds.js:1
     
    914914
    915915#: Core/Admin/AddFeeds.php:141
    916 #: modules/rss-import/rss-import.php:421
     916#: modules/rss-import/rss-import.php:438
    917917msgid "Import OPML"
    918918msgstr ""
     
    995995
    996996#: Core/Admin/Menu.php:198
    997 #: Core/Schema/Feeds.php:205
     997#: Core/Schema/Feeds.php:210
    998998#: parts/welcome/feeds.php:27
    999999msgid "Feeds"
     
    10151015
    10161016#: Core/Admin/Menu.php:335
    1017 #: Core/Bookmarklet/NominateThisCore.php:76
     1017#: Core/Bookmarklet/NominateThisCore.php:81
    10181018#: includes/nomthis/nominate-this-core.php:77
    10191019#: parts/nominate-this-buttons.tpl.php:17
     
    10991099
    11001100#: Core/Admin/Nominated.php:742
    1101 #: Core/Schema/Nominations.php:205
     1101#: Core/Schema/Nominations.php:214
    11021102#: assets/src/blocks/blocks.js:225
    11031103#: build/blocks.js:1
     
    12741274#: Core/Admin/PFTemplater.php:435
    12751275#: modules/opml-subscribe/opml-subscribe.php:316
    1276 #: modules/rss-import/rss-import.php:461
     1276#: modules/rss-import/rss-import.php:478
    12771277#: parts/settings/settings-page.tpl.php:80
    12781278#: assets/src/add-feeds/add-feeds.js:66
     
    15031503
    15041504#: Core/Admin/PFTemplater.php:1131
    1505 #: Core/Bookmarklet/NominateThisCore.php:124
     1505#: Core/Bookmarklet/NominateThisCore.php:129
    15061506#: Core/Schema/Nominations.php:80
    15071507#: assets/src/reader/util.js:284
     
    15121512
    15131513#: Core/Admin/PFTemplater.php:1154
    1514 #: Core/Bookmarklet/NominateThisCore.php:132
     1514#: Core/Bookmarklet/NominateThisCore.php:137
    15151515msgid "Send to "
    15161516msgstr ""
     
    18051805msgstr ""
    18061806
    1807 #: Core/Bookmarklet/NominateThisCore.php:84
     1807#: Core/Bookmarklet/NominateThisCore.php:89
    18081808msgid "Categories"
    18091809msgstr ""
    18101810
    1811 #: Core/Bookmarklet/NominateThisCore.php:126
     1811#: Core/Bookmarklet/NominateThisCore.php:131
    18121812msgid "You do not have the ability to create nominations."
    18131813msgstr ""
    18141814
    1815 #: Core/Bookmarklet/NominateThisCore.php:143
     1815#: Core/Bookmarklet/NominateThisCore.php:148
    18161816msgid "Enter Authors"
    18171817msgstr ""
    18181818
    1819 #: Core/Bookmarklet/NominateThisCore.php:147
     1819#: Core/Bookmarklet/NominateThisCore.php:152
    18201820msgid "Nominate feed associated with item."
    18211821msgstr ""
    18221822
    1823 #: Core/Bookmarklet/NominateThisCore.php:169
     1823#: Core/Bookmarklet/NominateThisCore.php:174
    18241824msgid "Enter Tags"
    18251825msgstr ""
    18261826
    1827 #: Core/Bookmarklet/NominateThisCore.php:225
     1827#: Core/Bookmarklet/NominateThisCore.php:230
    18281828msgid "You do not have access to the Nominate This bookmarklet."
    18291829msgstr ""
    18301830
    1831 #: Core/Bookmarklet/NominateThisCore.php:264
    1832 #: Core/Bookmarklet/NominateThisCore.php:532
     1831#: Core/Bookmarklet/NominateThisCore.php:269
     1832#: Core/Bookmarklet/NominateThisCore.php:537
    18331833msgid "Attempting to nominate a feed with the result of:"
    18341834msgstr ""
    18351835
    18361836#. translators: feed ID.
    1837 #: Core/Bookmarklet/NominateThisCore.php:271
    1838 #: Core/Bookmarklet/NominateThisCore.php:539
    1839 #, php-format
    1840 msgid "Feed created with ID: %s"
    1841 msgstr ""
    1842 
    1843 #: Core/Bookmarklet/NominateThisCore.php:272
    1844 #: Core/Bookmarklet/NominateThisCore.php:540
    1845 msgid "The feed has been nominated successfully."
    1846 msgstr ""
    1847 
    1848 #. translators: Error text.
    18491837#: Core/Bookmarklet/NominateThisCore.php:276
    18501838#: Core/Bookmarklet/NominateThisCore.php:544
    18511839#, php-format
    1852 msgid "But the following error occured: %s"
     1840msgid "Feed created with ID: %s"
    18531841msgstr ""
    18541842
    18551843#: Core/Bookmarklet/NominateThisCore.php:277
    18561844#: Core/Bookmarklet/NominateThisCore.php:545
    1857 msgid "There is a problem with the feed associated with this post. The feed could not be verified."
     1845msgid "The feed has been nominated successfully."
     1846msgstr ""
     1847
     1848#. translators: Error text.
     1849#: Core/Bookmarklet/NominateThisCore.php:281
     1850#: Core/Bookmarklet/NominateThisCore.php:549
     1851#, php-format
     1852msgid "But the following error occured: %s"
    18581853msgstr ""
    18591854
    18601855#: Core/Bookmarklet/NominateThisCore.php:282
    18611856#: Core/Bookmarklet/NominateThisCore.php:550
     1857msgid "There is a problem with the feed associated with this post. The feed could not be verified."
     1858msgstr ""
     1859
     1860#: Core/Bookmarklet/NominateThisCore.php:287
     1861#: Core/Bookmarklet/NominateThisCore.php:555
    18621862msgid "PressForward was unable to identify a feed associated with this site. Please contact the site administrator or add the feed manually in the 'Add Feeds' panel."
    18631863msgstr ""
    18641864
    1865 #: Core/Bookmarklet/NominateThisCore.php:283
    1866 #: Core/Bookmarklet/NominateThisCore.php:551
     1865#: Core/Bookmarklet/NominateThisCore.php:288
     1866#: Core/Bookmarklet/NominateThisCore.php:556
    18671867msgid "An error occured when adding the feed: "
    18681868msgstr ""
    18691869
    1870 #: Core/Bookmarklet/NominateThisCore.php:294
    1871 #: Core/Bookmarklet/NominateThisCore.php:562
     1870#: Core/Bookmarklet/NominateThisCore.php:299
     1871#: Core/Bookmarklet/NominateThisCore.php:567
    18721872msgid "User doesn't have permission to create feeds."
    18731873msgstr ""
    18741874
    1875 #: Core/Bookmarklet/NominateThisCore.php:306
    1876 #: Core/Bookmarklet/NominateThisCore.php:574
     1875#: Core/Bookmarklet/NominateThisCore.php:311
     1876#: Core/Bookmarklet/NominateThisCore.php:579
    18771877msgid "No feed was nominated."
    18781878msgstr ""
    18791879
    1880 #: Core/Bookmarklet/NominateThisCore.php:307
    1881 #: Core/Bookmarklet/NominateThisCore.php:575
     1880#: Core/Bookmarklet/NominateThisCore.php:312
     1881#: Core/Bookmarklet/NominateThisCore.php:580
    18821882msgid "User hasn't nominated a feed."
    18831883msgstr ""
    18841884
    1885 #: Core/Bookmarklet/NominateThisCore.php:324
     1885#: Core/Bookmarklet/NominateThisCore.php:329
    18861886msgid "Last Step"
    18871887msgstr ""
    18881888
    18891889#. translators: Name of the site.
    1890 #: Core/Bookmarklet/NominateThisCore.php:391
     1890#: Core/Bookmarklet/NominateThisCore.php:396
    18911891#, php-format
    18921892msgid "[%s] You have successfully nominated an item"
     
    18941894
    18951895#. translators: 1. Name of the site; 2. URL of the site.
    1896 #: Core/Bookmarklet/NominateThisCore.php:397
     1896#: Core/Bookmarklet/NominateThisCore.php:402
    18971897#, php-format
    18981898msgid "You have successfully nominated an item on %1$s (%2$s)."
     
    19001900
    19011901#. translators: 1. Title of the source item. 2. URL of the nomination source item.
    1902 #: Core/Bookmarklet/NominateThisCore.php:406
     1902#: Core/Bookmarklet/NominateThisCore.php:411
    19031903#, php-format
    19041904msgid "Source item: %1$s (%2$s)"
     
    19061906
    19071907#. translators: URL of the Nominations panel.
    1908 #: Core/Bookmarklet/NominateThisCore.php:418
     1908#: Core/Bookmarklet/NominateThisCore.php:423
    19091909#, php-format
    19101910msgid "Manage nominations: %s"
    19111911msgstr ""
    19121912
    1913 #: Core/Bookmarklet/NominateThisCore.php:706
    1914 #: Core/Bookmarklet/NominateThisCore.php:707
     1913#: Core/Bookmarklet/NominateThisCore.php:711
     1914#: Core/Bookmarklet/NominateThisCore.php:712
    19151915msgid "Nomination Success"
    19161916msgstr ""
    19171917
    1918 #: Core/Bookmarklet/NominateThisCore.php:726
     1918#: Core/Bookmarklet/NominateThisCore.php:763
    19191919#: includes/nomthis/nominate-this-core.php:165
    19201920msgid "Your nomination has been saved."
    19211921msgstr ""
    19221922
    1923 #: Core/Bookmarklet/NominateThisCore.php:727
     1923#: Core/Bookmarklet/NominateThisCore.php:764
    19241924#: includes/nomthis/nominate-this-core.php:166
    19251925msgid "See all nominations"
    19261926msgstr ""
    19271927
    1928 #: Core/Bookmarklet/NominateThisCore.php:728
     1928#: Core/Bookmarklet/NominateThisCore.php:765
    19291929#: includes/nomthis/nominate-this-core.php:167
    19301930#: includes/nomthis/nominate-this-core.php:177
     
    19391939msgstr ""
    19401940
    1941 #: Core/Schema/Feeds.php:187
     1941#: Core/Schema/Feeds.php:192
    19421942#: parts/welcome/feeds.php:78
    19431943msgid "Subscribed Feeds"
    19441944msgstr ""
    19451945
    1946 #: Core/Schema/Feeds.php:188
     1946#: Core/Schema/Feeds.php:193
    19471947msgid "Feed"
    19481948msgstr ""
    19491949
    1950 #: Core/Schema/Feeds.php:190
     1950#: Core/Schema/Feeds.php:195
    19511951msgid "All Feeds"
    19521952msgstr ""
    19531953
    1954 #: Core/Schema/Feeds.php:191
     1954#: Core/Schema/Feeds.php:196
    19551955#: parts/welcome/feeds.php:105
    19561956msgid "Add New Feed"
    19571957msgstr ""
    19581958
    1959 #: Core/Schema/Feeds.php:192
     1959#: Core/Schema/Feeds.php:197
    19601960#: includes/nomthis/nominate-this-core.php:204
    19611961msgid "Edit Feed"
    19621962msgstr ""
    19631963
    1964 #: Core/Schema/Feeds.php:193
     1964#: Core/Schema/Feeds.php:198
    19651965msgid "New Feed"
    19661966msgstr ""
    19671967
    1968 #: Core/Schema/Feeds.php:194
     1968#: Core/Schema/Feeds.php:199
    19691969msgid "View Feed"
    19701970msgstr ""
    19711971
    1972 #: Core/Schema/Feeds.php:195
     1972#: Core/Schema/Feeds.php:200
    19731973msgid "Search Feeds"
    19741974msgstr ""
    19751975
    1976 #: Core/Schema/Feeds.php:196
     1976#: Core/Schema/Feeds.php:201
    19771977msgid "No feeds found"
    19781978msgstr ""
    19791979
    1980 #: Core/Schema/Feeds.php:197
     1980#: Core/Schema/Feeds.php:202
    19811981msgid "No feeds found in trash"
    19821982msgstr ""
    19831983
    1984 #: Core/Schema/Feeds.php:207
     1984#: Core/Schema/Feeds.php:212
    19851985msgid "Feeds imported by PressForward&#8217;s Feed Importer"
    19861986msgstr ""
    19871987
    1988 #: Core/Schema/Feeds.php:347
     1988#: Core/Schema/Feeds.php:352
    19891989msgctxt "pf"
    19901990msgid "Under Review"
     
    19921992
    19931993#. Translators: Under Review feed count.
    1994 #: Core/Schema/Feeds.php:354
     1994#: Core/Schema/Feeds.php:359
    19951995#, php-format
    19961996msgid "Under Review <span class=\"count\">(%s)</span>"
     
    19991999msgstr[1] ""
    20002000
    2001 #: Core/Schema/Feeds.php:379
     2001#: Core/Schema/Feeds.php:384
    20022002msgid "No alerts, never let feed go inactive."
    20032003msgstr ""
    20042004
    2005 #: Core/Schema/Feeds.php:455
     2005#: Core/Schema/Feeds.php:538
    20062006msgid "Added by"
    20072007msgstr ""
    20082008
    2009 #: Core/Schema/Feeds.php:456
     2009#: Core/Schema/Feeds.php:539
    20102010msgid "Items"
    20112011msgstr ""
    20122012
    2013 #: Core/Schema/Feeds.php:457
     2013#: Core/Schema/Feeds.php:540
    20142014msgid "Date Added"
    20152015msgstr ""
    20162016
    2017 #: Core/Schema/Feeds.php:608
     2017#: Core/Schema/Feeds.php:691
    20182018msgid "Refresh this feed"
    20192019msgstr ""
    20202020
    2021 #: Core/Schema/Feeds.php:608
     2021#: Core/Schema/Feeds.php:691
    20222022msgid "Refresh Feed Items"
    20232023msgstr ""
    20242024
    2025 #: Core/Schema/Feeds.php:660
     2025#: Core/Schema/Feeds.php:743
    20262026msgid "Not a valid feed URL."
    20272027msgstr ""
    20282028
    2029 #: Core/Schema/Feeds.php:677
     2029#: Core/Schema/Feeds.php:760
    20302030msgid "You are already subscribed to this feed."
    20312031msgstr ""
    20322032
    20332033#. translators: 1: URL provided, 2: Validated feed URL.
    2034 #: Core/Schema/Feeds.php:684
     2034#: Core/Schema/Feeds.php:767
    20352035#, php-format
    20362036msgid "You provided the URL %1$s, which is not a valid feed URL. We detected a related feed URL at %2$s."
    20372037msgstr ""
    20382038
    2039 #: Core/Schema/Feeds.php:728
     2039#: Core/Schema/Feeds.php:811
    20402040msgid "Not a valid URL."
    20412041msgstr ""
    20422042
    2043 #: Core/Schema/Feeds.php:741
     2043#: Core/Schema/Feeds.php:824
    20442044msgid "The URL returned an error."
    20452045msgstr ""
    20462046
    2047 #: Core/Schema/Feeds.php:745
     2047#: Core/Schema/Feeds.php:828
    20482048msgid "Google Scholar author feed detected."
    20492049msgstr ""
    20502050
    2051 #: Core/Schema/Feeds.php:745
     2051#: Core/Schema/Feeds.php:828
    20522052msgid "Google Scholar keyword feed detected."
    20532053msgstr ""
    20542054
    2055 #: Core/Schema/Feeds.php:884
     2055#: Core/Schema/Feeds.php:967
    20562056msgctxt "pf"
    20572057msgid "Removed Feed"
    20582058msgstr ""
    20592059
    2060 #: Core/Schema/Feeds.php:1367
     2060#: Core/Schema/Feeds.php:1450
    20612061msgid "The feed fails verification."
    20622062msgstr ""
    20632063
    2064 #: Core/Schema/Feeds.php:1518
    2065 #: Core/Schema/Feeds.php:1521
     2064#: Core/Schema/Feeds.php:1601
     2065#: Core/Schema/Feeds.php:1604
    20662066msgid "Feed updated."
    20672067msgstr ""
    20682068
    2069 #: Core/Schema/Feeds.php:1519
     2069#: Core/Schema/Feeds.php:1602
    20702070msgid "Custom field updated."
    20712071msgstr ""
    20722072
    2073 #: Core/Schema/Feeds.php:1520
     2073#: Core/Schema/Feeds.php:1603
    20742074msgid "Custom field deleted."
    20752075msgstr ""
    20762076
    20772077#. translators: %s: date and time of the revision
    2078 #: Core/Schema/Feeds.php:1523
     2078#: Core/Schema/Feeds.php:1606
    20792079#, php-format
    20802080msgid "Feed restored to revision from %s"
    20812081msgstr ""
    20822082
    2083 #: Core/Schema/Feeds.php:1524
     2083#: Core/Schema/Feeds.php:1607
    20842084msgid "The feed was made successfully active."
    20852085msgstr ""
    20862086
    2087 #: Core/Schema/Feeds.php:1525
     2087#: Core/Schema/Feeds.php:1608
    20882088msgid "The feed was saved successfully."
    20892089msgstr ""
    20902090
    2091 #: Core/Schema/Feeds.php:1526
     2091#: Core/Schema/Feeds.php:1609
    20922092msgid "Feed submitted."
    20932093msgstr ""
    20942094
    20952095#. translators: Publish box date format, see http://php.net/date.
    2096 #: Core/Schema/Feeds.php:1529
     2096#: Core/Schema/Feeds.php:1612
    20972097#, php-format
    20982098msgid "Feed scheduled for: <strong>%1$s</strong>."
    20992099msgstr ""
    21002100
    2101 #: Core/Schema/Feeds.php:1530
     2101#: Core/Schema/Feeds.php:1613
    21022102msgid "M j, Y @ G:i"
    21032103msgstr ""
    21042104
    2105 #: Core/Schema/Feeds.php:1532
     2105#: Core/Schema/Feeds.php:1615
    21062106msgid "Feed draft updated."
    21072107msgstr ""
     
    22602260msgstr ""
    22612261
    2262 #: Core/Schema/Nominations.php:181
     2262#: Core/Schema/Nominations.php:190
    22632263msgid "Nomination Data"
    22642264msgstr ""
    22652265
    2266 #: Core/Schema/Nominations.php:200
     2266#: Core/Schema/Nominations.php:209
    22672267msgid "Title"
    22682268msgstr ""
    22692269
    2270 #: Core/Schema/Nominations.php:201
     2270#: Core/Schema/Nominations.php:210
    22712271msgid "Last Modified"
    22722272msgstr ""
    22732273
    2274 #: Core/Schema/Nominations.php:203
     2274#: Core/Schema/Nominations.php:212
    22752275msgid "Nominated By"
    22762276msgstr ""
    22772277
    2278 #: Core/Schema/Nominations.php:204
     2278#: Core/Schema/Nominations.php:213
    22792279msgid "Original Author"
    22802280msgstr ""
    22812281
    22822282#. translators: Name of the site.
    2283 #: Core/Schema/Nominations.php:271
     2283#: Core/Schema/Nominations.php:280
    22842284#, php-format
    22852285msgid "An item you nominated on %s has been published"
     
    22872287
    22882288#. translators: Title of the post.
    2289 #: Core/Schema/Nominations.php:279
     2289#: Core/Schema/Nominations.php:288
    22902290#, php-format
    22912291msgid "Title: %s"
     
    22932293
    22942294#. translators: URL of the post.
    2295 #: Core/Schema/Nominations.php:287
     2295#: Core/Schema/Nominations.php:296
    22962296#, php-format
    22972297msgid "URL: %s"
    22982298msgstr ""
    22992299
    2300 #: Core/Utility/Forward_Tools.php:596
     2300#: Core/Utility/Forward_Tools.php:601
    23012301msgid "External User"
    23022302msgstr ""
     
    23172317
    23182318#. translators: Day count.
    2319 #: includes/functions.php:1340
     2319#: includes/functions.php:1341
    23202320#, php-format
    23212321msgid "Day: %s"
     
    23232323
    23242324#. translators: Week count.
    2325 #: includes/functions.php:1342
     2325#: includes/functions.php:1343
    23262326#, php-format
    23272327msgid "Week: %s"
     
    23292329
    23302330#. translators: Month count.
    2331 #: includes/functions.php:1344
     2331#: includes/functions.php:1345
    23322332#, php-format
    23332333msgid "Month: %s"
    23342334msgstr ""
    23352335
    2336 #: includes/functions.php:1384
     2336#: includes/functions.php:1385
    23372337msgid "Post Not Found."
    23382338msgstr ""
    23392339
    2340 #: includes/functions.php:1396
     2340#: includes/functions.php:1397
    23412341msgid "Post Type Not Matched"
    23422342msgstr ""
    23432343
    2344 #: includes/functions.php:1406
     2344#: includes/functions.php:1407
    23452345msgid "Post Type Already Queued"
    23462346msgstr ""
     
    26692669
    26702670#: modules/opml-subscribe/opml-subscribe.php:356
    2671 #: modules/rss-import/rss-import.php:576
     2671#: modules/rss-import/rss-import.php:593
    26722672msgid "Edit."
    26732673msgstr ""
     
    26912691msgstr ""
    26922692
    2693 #: modules/rss-import/rss-import.php:87
    2694 #: modules/rss-import/rss-import.php:727
     2693#: modules/rss-import/rss-import.php:104
     2694#: modules/rss-import/rss-import.php:744
    26952695msgid "Broken RSS feed."
    26962696msgstr ""
    26972697
    2698 #: modules/rss-import/rss-import.php:271
    2699 #: modules/rss-import/rss-import.php:295
    2700 #: modules/rss-import/rss-import.php:397
     2698#: modules/rss-import/rss-import.php:288
     2699#: modules/rss-import/rss-import.php:312
     2700#: modules/rss-import/rss-import.php:414
    27012701msgid "No author."
    27022702msgstr ""
    27032703
    2704 #: modules/rss-import/rss-import.php:416
     2704#: modules/rss-import/rss-import.php:433
    27052705msgid "Subscribe to Feeds"
    27062706msgstr ""
    27072707
    2708 #: modules/rss-import/rss-import.php:440
     2708#: modules/rss-import/rss-import.php:457
    27092709msgid "Enter the URL of a feed. PressForward will watch the feed for updates, and will automatically import newly published items into the Feed Items area."
    27102710msgstr ""
    27112711
    2712 #: modules/rss-import/rss-import.php:444
     2712#: modules/rss-import/rss-import.php:461
    27132713msgid "RSS Feed URLs can be often be found by looking for an orange icon with the letters \"RSS\", \"XML\", or \"Atom\". If you aren't sure how to find the feed URL, enter a content URL (such as an article page) and PressForward will try to identify the feed for you. <a href=\"https://en.wikipedia.org/wiki/RSS\">Learn more about RSS</a>."
    27142714msgstr ""
    27152715
    2716 #: modules/rss-import/rss-import.php:448
     2716#: modules/rss-import/rss-import.php:465
    27172717msgid "You can also enter the URL of a Google Scholar author profile or search results page to subscribe to new publications by that author or on that topic."
    27182718msgstr ""
    27192719
    2720 #: modules/rss-import/rss-import.php:498
     2720#: modules/rss-import/rss-import.php:515
    27212721msgid "You have provided an invalid OPML file."
    27222722msgstr ""
    27232723
    27242724#. translators: %s is the name of feed that failed to add.
    2725 #: modules/rss-import/rss-import.php:587
     2725#: modules/rss-import/rss-import.php:604
    27262726#, php-format
    27272727msgid "An error occurred while trying to add %s"
    27282728msgstr ""
    27292729
    2730 #: modules/rss-import/rss-import.php:599
     2730#: modules/rss-import/rss-import.php:616
    27312731msgid "You have submitted "
    27322732msgstr ""
  • pressforward/tags/5.9.4/modules/rss-import/rss-import.php

    r3330426 r3417562  
    6262    public function return_cachetime( $seconds ) {
    6363        return 1800;
     64    }
     65
     66    /**
     67     * Used to return a timeout value in seconds for HTTP requests when fetching feeds.
     68     *
     69     * Filters to 'http_request_timeout'.
     70     *
     71     * @param int $timeout Timeout in seconds.
     72     * @return int
     73     */
     74    public function return_feed_timeout( $timeout ) {
     75        /**
     76         * Filter the feed fetch timeout.
     77         *
     78         * @param int $timeout Timeout in seconds. Default is 60.
     79         */
     80        return apply_filters( 'pf_feed_fetch_timeout', 60 );
    6481    }
    6582
     
    107124
    108125        add_filter( 'wp_feed_cache_transient_lifetime', array( $this, 'return_cachetime' ) );
     126        add_filter( 'http_request_timeout', array( $this, 'return_feed_timeout' ) );
    109127        $simplepie_feed = pf_fetch_feed( $url );
     128        remove_filter( 'http_request_timeout', array( $this, 'return_feed_timeout' ) );
    110129        remove_filter( 'wp_feed_cache_transient_lifetime', array( $this, 'return_cachetime' ) );
    111130
     
    113132            return new WP_Error( 'feed_error', 'Could not fetch feed.', $simplepie_feed );
    114133        }
    115 
    116         $simplepie_feed->set_timeout( 60 );
    117134
    118135        return $this->process_feed_items( $simplepie_feed, $feed );
  • pressforward/tags/5.9.4/package.json

    r3356897 r3417562  
    11{
    22    "name": "pressforward",
    3     "version": "5.9.3",
     3    "version": "5.9.4",
    44    "description": "PressForward is a free plugin that provides an editorial workflow for content aggregation and curation within the WordPress dashboard. It is designed for bloggers and editorial teams who wish to collect, discuss, and share content from a variety of sources on the open web. ",
    55    "main": "assets/js/pf.js",
  • pressforward/tags/5.9.4/pressforward.php

    r3356897 r3417562  
    44 * Plugin URI: http://pressforward.org/
    55 * Description: The PressForward Plugin is a tool by the Roy Rosenzweig Center for History and New Media for aggregating and curating web-based content within the WordPress dashboard.
    6  * Version: 5.9.3
     6 * Version: 5.9.4
    77 * GitHub Plugin URI: https://github.com/PressForward/pressforward
    88 * Author: Boone Gorges, Aram Zucker-Scharff, Jeremy Boggs
  • pressforward/tags/5.9.4/readme.md

    r3207176 r3417562  
    22- Plugin URI: http://pressforward.org/
    33- Description: PressForward is a WordPress plugin built to process feeds as a feed reader, allow groups to share and discuss the items that come in and then blog about them as an integrated editorial process.
    4 - Version: 5.6
     4- Version: 5.8
    55- Author: Boone B Gorges, Aram Zucker-Scharff, Jeremy Boggs
    66- Author URI: http://pressforward.org/
     
    99
    1010
    11   Funded and Maintained by Digital Scholar. Initially developed for the Roy Rosenzweig Center for History and New Media at George Mason University, with funding from the Alfred P. Sloan Foundation.
     11  Funded and maintained by Digital Scholar. Initially developed for the Roy Rosenzweig Center for History and New Media at George Mason University, with funding from the Alfred P. Sloan Foundation.
    1212
    1313## Building this plugin
  • pressforward/tags/5.9.4/readme.txt

    r3356900 r3417562  
    44Tags: aggregate, aggregation, aggregator, atom, attribution, circulate, collect, community, content curation, curate, curation, curation tool, discuss, distribute, editorial, feed, network, news, opml, OPML, read, reader, reblog, reblogging, republish, review, RSS, rss, share, syndicate, syndication, workflow
    55Requires at least: 5.7
    6 Tested up to: 6.8
     6Tested up to: 6.9
    77Stable tag: 5.9.3
    88License: AGPLv3
     
    8282
    8383== Changelog ==
     84
     85= 5.9.4 =
     86* Added resiliency check to ensure that RSS feeds have corresponding fetch cron jobs set.
     87* Fixed bug that prevented Subscribers from having full access to the Nominate This tools (when the site admin had allowed Subscribers to have access to Nominate This).
     88* Fixed bug that caused fatal errors on certain version of PHP when fetching RSS feeds.
     89* Improved filtering of author names so that PF items on the front end show as being written by the "Author on Source" in widgets and other common contexts.
     90* Some fixes to internationalization and escaping.
    8491
    8592= 5.9.3 =
  • pressforward/tags/5.9.4/vendor/composer/autoload_static.php

    r2911375 r3417562  
    88{
    99    public static $prefixLengthsPsr4 = array (
    10         'm' => 
     10        'm' =>
    1111        array (
    1212            'mattwright\\' => 11,
    1313        ),
    14         'f' => 
     14        'f' =>
    1515        array (
    1616            'fivefilters\\Readability\\' => 24,
    1717        ),
    18         'P' => 
     18        'P' =>
    1919        array (
    2020            'Psr\\Log\\' => 8,
    2121            'Psr\\Http\\Message\\' => 17,
    2222        ),
    23         'M' => 
     23        'M' =>
    2424        array (
    2525            'Masterminds\\' => 12,
    2626        ),
    27         'L' => 
     27        'L' =>
    2828        array (
    2929            'League\\Uri\\' => 11,
    3030        ),
    31         'F' => 
     31        'F' =>
    3232        array (
    3333            'Firebase\\JWT\\' => 13,
     
    3636
    3737    public static $prefixDirsPsr4 = array (
    38         'mattwright\\' => 
     38        'mattwright\\' =>
    3939        array (
    4040            0 => __DIR__ . '/..' . '/mattwright/urlresolver',
    4141        ),
    42         'fivefilters\\Readability\\' => 
     42        'fivefilters\\Readability\\' =>
    4343        array (
    4444            0 => __DIR__ . '/..' . '/fivefilters/readability.php/src',
    4545        ),
    46         'Psr\\Log\\' => 
     46        'Psr\\Log\\' =>
    4747        array (
    4848            0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
    4949        ),
    50         'Psr\\Http\\Message\\' => 
     50        'Psr\\Http\\Message\\' =>
    5151        array (
    5252            0 => __DIR__ . '/..' . '/psr/http-message/src',
    5353        ),
    54         'Masterminds\\' => 
     54        'Masterminds\\' =>
    5555        array (
    5656            0 => __DIR__ . '/..' . '/masterminds/html5/src',
    5757        ),
    58         'League\\Uri\\' => 
     58        'League\\Uri\\' =>
    5959        array (
    6060            0 => __DIR__ . '/..' . '/league/uri/src',
    6161            1 => __DIR__ . '/..' . '/league/uri-interfaces/src',
    6262        ),
    63         'Firebase\\JWT\\' => 
     63        'Firebase\\JWT\\' =>
    6464        array (
    6565            0 => __DIR__ . '/..' . '/firebase/php-jwt/src',
     
    6868
    6969    public static $prefixesPsr0 = array (
    70         'D' => 
     70        'D' =>
    7171        array (
    72             'DaveChild\\TextStatistics' => 
     72            'DaveChild\\TextStatistics' =>
    7373            array (
    7474                0 => __DIR__ . '/..' . '/davechild/textstatistics/src',
  • pressforward/tags/5.9.4/vendor/composer/installed.php

    r3356897 r3417562  
    44        'pretty_version' => '5.9.x-dev',
    55        'version' => '5.9.9999999.9999999-dev',
    6         'reference' => '3ad16ff9f581a411eb5e17fe52e371b7f69a91e2',
     6        'reference' => 'de7ebecf3e09a06ef6deae03ce01510990d10e16',
    77        'type' => 'project',
    88        'install_path' => __DIR__ . '/../../',
     
    8686            'pretty_version' => '5.9.x-dev',
    8787            'version' => '5.9.9999999.9999999-dev',
    88             'reference' => '3ad16ff9f581a411eb5e17fe52e371b7f69a91e2',
     88            'reference' => 'de7ebecf3e09a06ef6deae03ce01510990d10e16',
    8989            'type' => 'project',
    9090            'install_path' => __DIR__ . '/../../',
  • pressforward/trunk/Core/Bookmarklet/NominateThisCore.php

    r3356897 r3417562  
    4848            ),
    4949            array(
    50                 'hook'   => 'admin_menu',
    51                 'method' => 'register_nomination_success_panel',
     50                'hook'     => 'admin_menu',
     51                'method'   => 'register_nomination_success_panel',
     52                'priority' => 20,
     53            ),
     54            array(
     55                'hook'   => 'admin_head',
     56                'method' => 'remove_nomination_add_new_menu_item',
    5257            ),
    5358        );
     
    223228        if ( $internal ) {
    224229            if ( ! current_user_can( get_option( 'pf_menu_nominate_this_access', pressforward( 'controller.users' )->pf_get_defining_capability_by_role( 'contributor' ) ) ) ) {
    225                 wp_die( esc_html_e( 'You do not have access to the Nominate This bookmarklet.', 'pressforward' ) );
     230                wp_die( esc_html__( 'You do not have access to the Nominate This bookmarklet.', 'pressforward' ) );
    226231            }
    227232        }
     
    710715            [ $this, 'nomination_success_panel' ]
    711716        );
     717
     718        /*
     719         * We also take this opportunity to add the 'Add New Nomination' panel.
     720         * We need to add it because otherwise cap checks will fail when
     721         * loading the bookmarklet URL in certain cases. And the 'Add New' panel
     722         * doesn't appear natively because we use a different parent when registering
     723         * the post type (show_in_menu). The menu item is removed before rendering.
     724         */
     725        $pt = get_post_type_object( 'nomination' );
     726        if ( $pt && is_string( $pt->show_in_menu ) ) {
     727            add_submenu_page(
     728                $pt->show_in_menu,
     729                $pt->labels->add_new_item,
     730                $pt->labels->add_new_item,
     731                $pt->cap->create_posts,
     732                "post-new.php?post_type={$pt->name}"
     733            );
     734        }
     735    }
     736
     737    /**
     738     * Removes the 'Add New Nomination' menu item from the admin menu.
     739     *
     740     * This is hooked to 'admin_head', which runs after the menu is built but before
     741     * the page is rendered.
     742     *
     743     * @since 5.6.0
     744     *
     745     * @return void
     746     */
     747    public function remove_nomination_add_new_menu_item() {
     748        remove_submenu_page( 'pf-menu', 'post-new.php?post_type=nomination' );
    712749    }
    713750
  • pressforward/trunk/Core/Schema/Feeds.php

    r3356897 r3417562  
    7070                'method'   => 'register_feed_post_type',
    7171                'priority' => 10,
     72            ),
     73            array(
     74                'hook'     => 'init',
     75                'method'   => 'check_feed_retrieval_cron_jobs',
     76                'priority' => 20,
    7277            ),
    7378            array(
     
    423428
    424429    /**
     430     * Incrementally checks and schedules retrieval cron jobs for feeds.
     431     *
     432     * This method runs on 'init' and checks a batch of feeds to ensure they have
     433     * retrieval cron jobs scheduled. It uses a timestamp and counter system to
     434     * process feeds incrementally, avoiding overload on sites with many feeds.
     435     *
     436     * The check runs once per hour and processes up to 100 feeds per run. When
     437     * all feeds have been checked, the counter resets and the cycle starts again.
     438     *
     439     * @since 5.9.4
     440     *
     441     * @return void
     442     */
     443    public function check_feed_retrieval_cron_jobs() {
     444        // Get the last check timestamp and counter.
     445        $last_check_time = get_option( 'pf_feed_cron_check_timestamp', 0 );
     446        $current_time    = time();
     447
     448        // Only run the check once per hour.
     449        if ( ( $current_time - $last_check_time ) < HOUR_IN_SECONDS ) {
     450            return;
     451        }
     452
     453        // Get the current position in the feed list.
     454        $offset = (int) get_option( 'pf_feed_cron_check_offset', 0 );
     455
     456        // Query for a batch of feeds.
     457        $batch_size = apply_filters( 'pf_feed_cron_check_batch_size', 100 );
     458        $args       = array(
     459            'post_type'      => $this->post_type,
     460            'post_status'    => 'publish',
     461            'posts_per_page' => $batch_size,
     462            'offset'         => $offset,
     463            'orderby'        => 'ID',
     464            'order'          => 'ASC',
     465            'fields'         => 'ids',
     466        );
     467
     468        $feed_ids = get_posts( $args );
     469
     470        // If no feeds found, reset the counter and exit.
     471        if ( empty( $feed_ids ) ) {
     472            update_option( 'pf_feed_cron_check_offset', 0 );
     473            return;
     474        }
     475
     476        // Check each feed and schedule retrieval if needed.
     477        foreach ( $feed_ids as $feed_id ) {
     478            $feed = Feed::get_instance_by_id( $feed_id );
     479            if ( ! $feed ) {
     480                continue;
     481            }
     482
     483            // Check if the retrieval is already scheduled.
     484            $next_scheduled = $feed->get_next_scheduled_retrieval();
     485            if ( ! $next_scheduled ) {
     486                // Schedule retrieval for this feed.
     487                $feed->schedule_retrieval();
     488            }
     489        }
     490
     491        // Calculate the next offset position.
     492        $calculated_offset = $offset + count( $feed_ids );
     493
     494        // Check if we've reached the end of the feed list.
     495        if ( count( $feed_ids ) < $batch_size ) {
     496            // Reset to start from the beginning in the next cycle.
     497            update_option( 'pf_feed_cron_check_offset', 0 );
     498        } else {
     499            // Continue from where we left off.
     500            update_option( 'pf_feed_cron_check_offset', $calculated_offset );
     501        }
     502
     503        // Update the timestamp after successful completion to prevent multiple checks.
     504        update_option( 'pf_feed_cron_check_timestamp', $current_time );
     505    }
     506
     507    /**
    425508     * Handles submitbox actions on save.
    426509     *
  • pressforward/trunk/Core/Schema/Nominations.php

    r3356899 r3417562  
    135135
    136136        // We must 'show_in_menu' but we also want to remove the 'Nominations' item from the admin menu.
    137         add_action( 'admin_menu', function() {
    138             remove_submenu_page( PF_MENU_SLUG, 'edit.php?post_type=nomination' );
    139         }, 999 );
     137        add_action(
     138            'admin_menu',
     139            function () {
     140                remove_submenu_page( PF_MENU_SLUG, 'edit.php?post_type=nomination' );
     141            },
     142            999
     143        );
    140144    }
    141145
  • pressforward/trunk/Core/Utility/Forward_Tools.php

    r3207176 r3417562  
    8383    public function get_nomination_nominator_array( $nomination_id ) {
    8484        $nominators = $this->metas->get_post_pf_meta( $nomination_id, 'nominator_array' );
     85
     86        if ( is_string( $nominators ) ) {
     87            $nominators = wp_parse_id_list( $nominators );
     88        }
     89
    8590        if ( ! $nominators ) {
    8691            $nominators = [];
  • pressforward/trunk/constants.php

    r3356897 r3417562  
    1414define( 'PF_FILE_PATH', PF_ROOT . '/pressforward.php' );
    1515define( 'PF_URL', plugins_url( '/', __FILE__ ) );
    16 define( 'PF_VERSION', '5.9.3' );
     16define( 'PF_VERSION', '5.9.4' );
  • pressforward/trunk/includes/functions.php

    r3330426 r3417562  
    966966}
    967967add_filter( 'the_author', 'pf_replace_author_presentation' );
     968add_filter( 'get_the_author_display_name', 'pf_replace_author_presentation' );
    968969
    969970/**
  • pressforward/trunk/includes/module-base.php

    r3330426 r3417562  
    187187
    188188                <td>
    189                     <select id="<?php esc_attr( PF_SLUG . '_' . $module_id . '_enable' ); ?>" name="<?php echo esc_attr( PF_SLUG . '_' . $module_id . '_enable' ); ?>">
     189                    <select id="<?php echo esc_attr( PF_SLUG . '_' . $module_id . '_enable' ); ?>" name="<?php echo esc_attr( PF_SLUG . '_' . $module_id . '_enable' ); ?>">
    190190                        <option value="yes" <?php selected( $enabled, 'yes' ); ?>><?php esc_html_e( 'Yes', 'pressforward' ); ?></option>
    191191                        <option value="no" <?php selected( $enabled, 'no' ); ?>><?php esc_html_e( 'No', 'pressforward' ); ?></option>
  • pressforward/trunk/languages/pressforward.pot

    r3356897 r3417562  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-09-05T15:46:19-05:00\n"
     12"POT-Creation-Date: 2025-12-11T09:49:08-06:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
     
    242242
    243243#: Controllers/Metas.php:597
    244 #: Core/Bookmarklet/NominateThisCore.php:92
     244#: Core/Bookmarklet/NominateThisCore.php:97
    245245msgid "Tags"
    246246msgstr ""
     
    297297#: Core/Admin/Menu.php:189
    298298#: Core/Schema/Nominations.php:78
    299 #: Core/Schema/Nominations.php:202
     299#: Core/Schema/Nominations.php:211
    300300#: parts/welcome/nominations.php:29
    301301msgid "Nominations"
     
    360360#: Controllers/Metas.php:687
    361361#: Core/Admin/AddFeeds.php:136
    362 #: modules/rss-import/rss-import.php:465
     362#: modules/rss-import/rss-import.php:482
    363363#: assets/src/nominate-this-block-editor/nominate-this-block-editor.js:63
    364364#: assets/src/nominate-this-block-editor/nominate-this-block-editor.js:69
     
    471471#: Controllers/Metas.php:837
    472472#: Core/Admin/SubscribedFeeds.php:536
    473 #: modules/rss-import/rss-import.php:455
     473#: modules/rss-import/rss-import.php:472
    474474#: assets/src/block-editor-feeds/block-editor-feeds.js:53
    475475#: build/block-editor-feeds.js:1
     
    914914
    915915#: Core/Admin/AddFeeds.php:141
    916 #: modules/rss-import/rss-import.php:421
     916#: modules/rss-import/rss-import.php:438
    917917msgid "Import OPML"
    918918msgstr ""
     
    995995
    996996#: Core/Admin/Menu.php:198
    997 #: Core/Schema/Feeds.php:205
     997#: Core/Schema/Feeds.php:210
    998998#: parts/welcome/feeds.php:27
    999999msgid "Feeds"
     
    10151015
    10161016#: Core/Admin/Menu.php:335
    1017 #: Core/Bookmarklet/NominateThisCore.php:76
     1017#: Core/Bookmarklet/NominateThisCore.php:81
    10181018#: includes/nomthis/nominate-this-core.php:77
    10191019#: parts/nominate-this-buttons.tpl.php:17
     
    10991099
    11001100#: Core/Admin/Nominated.php:742
    1101 #: Core/Schema/Nominations.php:205
     1101#: Core/Schema/Nominations.php:214
    11021102#: assets/src/blocks/blocks.js:225
    11031103#: build/blocks.js:1
     
    12741274#: Core/Admin/PFTemplater.php:435
    12751275#: modules/opml-subscribe/opml-subscribe.php:316
    1276 #: modules/rss-import/rss-import.php:461
     1276#: modules/rss-import/rss-import.php:478
    12771277#: parts/settings/settings-page.tpl.php:80
    12781278#: assets/src/add-feeds/add-feeds.js:66
     
    15031503
    15041504#: Core/Admin/PFTemplater.php:1131
    1505 #: Core/Bookmarklet/NominateThisCore.php:124
     1505#: Core/Bookmarklet/NominateThisCore.php:129
    15061506#: Core/Schema/Nominations.php:80
    15071507#: assets/src/reader/util.js:284
     
    15121512
    15131513#: Core/Admin/PFTemplater.php:1154
    1514 #: Core/Bookmarklet/NominateThisCore.php:132
     1514#: Core/Bookmarklet/NominateThisCore.php:137
    15151515msgid "Send to "
    15161516msgstr ""
     
    18051805msgstr ""
    18061806
    1807 #: Core/Bookmarklet/NominateThisCore.php:84
     1807#: Core/Bookmarklet/NominateThisCore.php:89
    18081808msgid "Categories"
    18091809msgstr ""
    18101810
    1811 #: Core/Bookmarklet/NominateThisCore.php:126
     1811#: Core/Bookmarklet/NominateThisCore.php:131
    18121812msgid "You do not have the ability to create nominations."
    18131813msgstr ""
    18141814
    1815 #: Core/Bookmarklet/NominateThisCore.php:143
     1815#: Core/Bookmarklet/NominateThisCore.php:148
    18161816msgid "Enter Authors"
    18171817msgstr ""
    18181818
    1819 #: Core/Bookmarklet/NominateThisCore.php:147
     1819#: Core/Bookmarklet/NominateThisCore.php:152
    18201820msgid "Nominate feed associated with item."
    18211821msgstr ""
    18221822
    1823 #: Core/Bookmarklet/NominateThisCore.php:169
     1823#: Core/Bookmarklet/NominateThisCore.php:174
    18241824msgid "Enter Tags"
    18251825msgstr ""
    18261826
    1827 #: Core/Bookmarklet/NominateThisCore.php:225
     1827#: Core/Bookmarklet/NominateThisCore.php:230
    18281828msgid "You do not have access to the Nominate This bookmarklet."
    18291829msgstr ""
    18301830
    1831 #: Core/Bookmarklet/NominateThisCore.php:264
    1832 #: Core/Bookmarklet/NominateThisCore.php:532
     1831#: Core/Bookmarklet/NominateThisCore.php:269
     1832#: Core/Bookmarklet/NominateThisCore.php:537
    18331833msgid "Attempting to nominate a feed with the result of:"
    18341834msgstr ""
    18351835
    18361836#. translators: feed ID.
    1837 #: Core/Bookmarklet/NominateThisCore.php:271
    1838 #: Core/Bookmarklet/NominateThisCore.php:539
    1839 #, php-format
    1840 msgid "Feed created with ID: %s"
    1841 msgstr ""
    1842 
    1843 #: Core/Bookmarklet/NominateThisCore.php:272
    1844 #: Core/Bookmarklet/NominateThisCore.php:540
    1845 msgid "The feed has been nominated successfully."
    1846 msgstr ""
    1847 
    1848 #. translators: Error text.
    18491837#: Core/Bookmarklet/NominateThisCore.php:276
    18501838#: Core/Bookmarklet/NominateThisCore.php:544
    18511839#, php-format
    1852 msgid "But the following error occured: %s"
     1840msgid "Feed created with ID: %s"
    18531841msgstr ""
    18541842
    18551843#: Core/Bookmarklet/NominateThisCore.php:277
    18561844#: Core/Bookmarklet/NominateThisCore.php:545
    1857 msgid "There is a problem with the feed associated with this post. The feed could not be verified."
     1845msgid "The feed has been nominated successfully."
     1846msgstr ""
     1847
     1848#. translators: Error text.
     1849#: Core/Bookmarklet/NominateThisCore.php:281
     1850#: Core/Bookmarklet/NominateThisCore.php:549
     1851#, php-format
     1852msgid "But the following error occured: %s"
    18581853msgstr ""
    18591854
    18601855#: Core/Bookmarklet/NominateThisCore.php:282
    18611856#: Core/Bookmarklet/NominateThisCore.php:550
     1857msgid "There is a problem with the feed associated with this post. The feed could not be verified."
     1858msgstr ""
     1859
     1860#: Core/Bookmarklet/NominateThisCore.php:287
     1861#: Core/Bookmarklet/NominateThisCore.php:555
    18621862msgid "PressForward was unable to identify a feed associated with this site. Please contact the site administrator or add the feed manually in the 'Add Feeds' panel."
    18631863msgstr ""
    18641864
    1865 #: Core/Bookmarklet/NominateThisCore.php:283
    1866 #: Core/Bookmarklet/NominateThisCore.php:551
     1865#: Core/Bookmarklet/NominateThisCore.php:288
     1866#: Core/Bookmarklet/NominateThisCore.php:556
    18671867msgid "An error occured when adding the feed: "
    18681868msgstr ""
    18691869
    1870 #: Core/Bookmarklet/NominateThisCore.php:294
    1871 #: Core/Bookmarklet/NominateThisCore.php:562
     1870#: Core/Bookmarklet/NominateThisCore.php:299
     1871#: Core/Bookmarklet/NominateThisCore.php:567
    18721872msgid "User doesn't have permission to create feeds."
    18731873msgstr ""
    18741874
    1875 #: Core/Bookmarklet/NominateThisCore.php:306
    1876 #: Core/Bookmarklet/NominateThisCore.php:574
     1875#: Core/Bookmarklet/NominateThisCore.php:311
     1876#: Core/Bookmarklet/NominateThisCore.php:579
    18771877msgid "No feed was nominated."
    18781878msgstr ""
    18791879
    1880 #: Core/Bookmarklet/NominateThisCore.php:307
    1881 #: Core/Bookmarklet/NominateThisCore.php:575
     1880#: Core/Bookmarklet/NominateThisCore.php:312
     1881#: Core/Bookmarklet/NominateThisCore.php:580
    18821882msgid "User hasn't nominated a feed."
    18831883msgstr ""
    18841884
    1885 #: Core/Bookmarklet/NominateThisCore.php:324
     1885#: Core/Bookmarklet/NominateThisCore.php:329
    18861886msgid "Last Step"
    18871887msgstr ""
    18881888
    18891889#. translators: Name of the site.
    1890 #: Core/Bookmarklet/NominateThisCore.php:391
     1890#: Core/Bookmarklet/NominateThisCore.php:396
    18911891#, php-format
    18921892msgid "[%s] You have successfully nominated an item"
     
    18941894
    18951895#. translators: 1. Name of the site; 2. URL of the site.
    1896 #: Core/Bookmarklet/NominateThisCore.php:397
     1896#: Core/Bookmarklet/NominateThisCore.php:402
    18971897#, php-format
    18981898msgid "You have successfully nominated an item on %1$s (%2$s)."
     
    19001900
    19011901#. translators: 1. Title of the source item. 2. URL of the nomination source item.
    1902 #: Core/Bookmarklet/NominateThisCore.php:406
     1902#: Core/Bookmarklet/NominateThisCore.php:411
    19031903#, php-format
    19041904msgid "Source item: %1$s (%2$s)"
     
    19061906
    19071907#. translators: URL of the Nominations panel.
    1908 #: Core/Bookmarklet/NominateThisCore.php:418
     1908#: Core/Bookmarklet/NominateThisCore.php:423
    19091909#, php-format
    19101910msgid "Manage nominations: %s"
    19111911msgstr ""
    19121912
    1913 #: Core/Bookmarklet/NominateThisCore.php:706
    1914 #: Core/Bookmarklet/NominateThisCore.php:707
     1913#: Core/Bookmarklet/NominateThisCore.php:711
     1914#: Core/Bookmarklet/NominateThisCore.php:712
    19151915msgid "Nomination Success"
    19161916msgstr ""
    19171917
    1918 #: Core/Bookmarklet/NominateThisCore.php:726
     1918#: Core/Bookmarklet/NominateThisCore.php:763
    19191919#: includes/nomthis/nominate-this-core.php:165
    19201920msgid "Your nomination has been saved."
    19211921msgstr ""
    19221922
    1923 #: Core/Bookmarklet/NominateThisCore.php:727
     1923#: Core/Bookmarklet/NominateThisCore.php:764
    19241924#: includes/nomthis/nominate-this-core.php:166
    19251925msgid "See all nominations"
    19261926msgstr ""
    19271927
    1928 #: Core/Bookmarklet/NominateThisCore.php:728
     1928#: Core/Bookmarklet/NominateThisCore.php:765
    19291929#: includes/nomthis/nominate-this-core.php:167
    19301930#: includes/nomthis/nominate-this-core.php:177
     
    19391939msgstr ""
    19401940
    1941 #: Core/Schema/Feeds.php:187
     1941#: Core/Schema/Feeds.php:192
    19421942#: parts/welcome/feeds.php:78
    19431943msgid "Subscribed Feeds"
    19441944msgstr ""
    19451945
    1946 #: Core/Schema/Feeds.php:188
     1946#: Core/Schema/Feeds.php:193
    19471947msgid "Feed"
    19481948msgstr ""
    19491949
    1950 #: Core/Schema/Feeds.php:190
     1950#: Core/Schema/Feeds.php:195
    19511951msgid "All Feeds"
    19521952msgstr ""
    19531953
    1954 #: Core/Schema/Feeds.php:191
     1954#: Core/Schema/Feeds.php:196
    19551955#: parts/welcome/feeds.php:105
    19561956msgid "Add New Feed"
    19571957msgstr ""
    19581958
    1959 #: Core/Schema/Feeds.php:192
     1959#: Core/Schema/Feeds.php:197
    19601960#: includes/nomthis/nominate-this-core.php:204
    19611961msgid "Edit Feed"
    19621962msgstr ""
    19631963
    1964 #: Core/Schema/Feeds.php:193
     1964#: Core/Schema/Feeds.php:198
    19651965msgid "New Feed"
    19661966msgstr ""
    19671967
    1968 #: Core/Schema/Feeds.php:194
     1968#: Core/Schema/Feeds.php:199
    19691969msgid "View Feed"
    19701970msgstr ""
    19711971
    1972 #: Core/Schema/Feeds.php:195
     1972#: Core/Schema/Feeds.php:200
    19731973msgid "Search Feeds"
    19741974msgstr ""
    19751975
    1976 #: Core/Schema/Feeds.php:196
     1976#: Core/Schema/Feeds.php:201
    19771977msgid "No feeds found"
    19781978msgstr ""
    19791979
    1980 #: Core/Schema/Feeds.php:197
     1980#: Core/Schema/Feeds.php:202
    19811981msgid "No feeds found in trash"
    19821982msgstr ""
    19831983
    1984 #: Core/Schema/Feeds.php:207
     1984#: Core/Schema/Feeds.php:212
    19851985msgid "Feeds imported by PressForward&#8217;s Feed Importer"
    19861986msgstr ""
    19871987
    1988 #: Core/Schema/Feeds.php:347
     1988#: Core/Schema/Feeds.php:352
    19891989msgctxt "pf"
    19901990msgid "Under Review"
     
    19921992
    19931993#. Translators: Under Review feed count.
    1994 #: Core/Schema/Feeds.php:354
     1994#: Core/Schema/Feeds.php:359
    19951995#, php-format
    19961996msgid "Under Review <span class=\"count\">(%s)</span>"
     
    19991999msgstr[1] ""
    20002000
    2001 #: Core/Schema/Feeds.php:379
     2001#: Core/Schema/Feeds.php:384
    20022002msgid "No alerts, never let feed go inactive."
    20032003msgstr ""
    20042004
    2005 #: Core/Schema/Feeds.php:455
     2005#: Core/Schema/Feeds.php:538
    20062006msgid "Added by"
    20072007msgstr ""
    20082008
    2009 #: Core/Schema/Feeds.php:456
     2009#: Core/Schema/Feeds.php:539
    20102010msgid "Items"
    20112011msgstr ""
    20122012
    2013 #: Core/Schema/Feeds.php:457
     2013#: Core/Schema/Feeds.php:540
    20142014msgid "Date Added"
    20152015msgstr ""
    20162016
    2017 #: Core/Schema/Feeds.php:608
     2017#: Core/Schema/Feeds.php:691
    20182018msgid "Refresh this feed"
    20192019msgstr ""
    20202020
    2021 #: Core/Schema/Feeds.php:608
     2021#: Core/Schema/Feeds.php:691
    20222022msgid "Refresh Feed Items"
    20232023msgstr ""
    20242024
    2025 #: Core/Schema/Feeds.php:660
     2025#: Core/Schema/Feeds.php:743
    20262026msgid "Not a valid feed URL."
    20272027msgstr ""
    20282028
    2029 #: Core/Schema/Feeds.php:677
     2029#: Core/Schema/Feeds.php:760
    20302030msgid "You are already subscribed to this feed."
    20312031msgstr ""
    20322032
    20332033#. translators: 1: URL provided, 2: Validated feed URL.
    2034 #: Core/Schema/Feeds.php:684
     2034#: Core/Schema/Feeds.php:767
    20352035#, php-format
    20362036msgid "You provided the URL %1$s, which is not a valid feed URL. We detected a related feed URL at %2$s."
    20372037msgstr ""
    20382038
    2039 #: Core/Schema/Feeds.php:728
     2039#: Core/Schema/Feeds.php:811
    20402040msgid "Not a valid URL."
    20412041msgstr ""
    20422042
    2043 #: Core/Schema/Feeds.php:741
     2043#: Core/Schema/Feeds.php:824
    20442044msgid "The URL returned an error."
    20452045msgstr ""
    20462046
    2047 #: Core/Schema/Feeds.php:745
     2047#: Core/Schema/Feeds.php:828
    20482048msgid "Google Scholar author feed detected."
    20492049msgstr ""
    20502050
    2051 #: Core/Schema/Feeds.php:745
     2051#: Core/Schema/Feeds.php:828
    20522052msgid "Google Scholar keyword feed detected."
    20532053msgstr ""
    20542054
    2055 #: Core/Schema/Feeds.php:884
     2055#: Core/Schema/Feeds.php:967
    20562056msgctxt "pf"
    20572057msgid "Removed Feed"
    20582058msgstr ""
    20592059
    2060 #: Core/Schema/Feeds.php:1367
     2060#: Core/Schema/Feeds.php:1450
    20612061msgid "The feed fails verification."
    20622062msgstr ""
    20632063
    2064 #: Core/Schema/Feeds.php:1518
    2065 #: Core/Schema/Feeds.php:1521
     2064#: Core/Schema/Feeds.php:1601
     2065#: Core/Schema/Feeds.php:1604
    20662066msgid "Feed updated."
    20672067msgstr ""
    20682068
    2069 #: Core/Schema/Feeds.php:1519
     2069#: Core/Schema/Feeds.php:1602
    20702070msgid "Custom field updated."
    20712071msgstr ""
    20722072
    2073 #: Core/Schema/Feeds.php:1520
     2073#: Core/Schema/Feeds.php:1603
    20742074msgid "Custom field deleted."
    20752075msgstr ""
    20762076
    20772077#. translators: %s: date and time of the revision
    2078 #: Core/Schema/Feeds.php:1523
     2078#: Core/Schema/Feeds.php:1606
    20792079#, php-format
    20802080msgid "Feed restored to revision from %s"
    20812081msgstr ""
    20822082
    2083 #: Core/Schema/Feeds.php:1524
     2083#: Core/Schema/Feeds.php:1607
    20842084msgid "The feed was made successfully active."
    20852085msgstr ""
    20862086
    2087 #: Core/Schema/Feeds.php:1525
     2087#: Core/Schema/Feeds.php:1608
    20882088msgid "The feed was saved successfully."
    20892089msgstr ""
    20902090
    2091 #: Core/Schema/Feeds.php:1526
     2091#: Core/Schema/Feeds.php:1609
    20922092msgid "Feed submitted."
    20932093msgstr ""
    20942094
    20952095#. translators: Publish box date format, see http://php.net/date.
    2096 #: Core/Schema/Feeds.php:1529
     2096#: Core/Schema/Feeds.php:1612
    20972097#, php-format
    20982098msgid "Feed scheduled for: <strong>%1$s</strong>."
    20992099msgstr ""
    21002100
    2101 #: Core/Schema/Feeds.php:1530
     2101#: Core/Schema/Feeds.php:1613
    21022102msgid "M j, Y @ G:i"
    21032103msgstr ""
    21042104
    2105 #: Core/Schema/Feeds.php:1532
     2105#: Core/Schema/Feeds.php:1615
    21062106msgid "Feed draft updated."
    21072107msgstr ""
     
    22602260msgstr ""
    22612261
    2262 #: Core/Schema/Nominations.php:181
     2262#: Core/Schema/Nominations.php:190
    22632263msgid "Nomination Data"
    22642264msgstr ""
    22652265
    2266 #: Core/Schema/Nominations.php:200
     2266#: Core/Schema/Nominations.php:209
    22672267msgid "Title"
    22682268msgstr ""
    22692269
    2270 #: Core/Schema/Nominations.php:201
     2270#: Core/Schema/Nominations.php:210
    22712271msgid "Last Modified"
    22722272msgstr ""
    22732273
    2274 #: Core/Schema/Nominations.php:203
     2274#: Core/Schema/Nominations.php:212
    22752275msgid "Nominated By"
    22762276msgstr ""
    22772277
    2278 #: Core/Schema/Nominations.php:204
     2278#: Core/Schema/Nominations.php:213
    22792279msgid "Original Author"
    22802280msgstr ""
    22812281
    22822282#. translators: Name of the site.
    2283 #: Core/Schema/Nominations.php:271
     2283#: Core/Schema/Nominations.php:280
    22842284#, php-format
    22852285msgid "An item you nominated on %s has been published"
     
    22872287
    22882288#. translators: Title of the post.
    2289 #: Core/Schema/Nominations.php:279
     2289#: Core/Schema/Nominations.php:288
    22902290#, php-format
    22912291msgid "Title: %s"
     
    22932293
    22942294#. translators: URL of the post.
    2295 #: Core/Schema/Nominations.php:287
     2295#: Core/Schema/Nominations.php:296
    22962296#, php-format
    22972297msgid "URL: %s"
    22982298msgstr ""
    22992299
    2300 #: Core/Utility/Forward_Tools.php:596
     2300#: Core/Utility/Forward_Tools.php:601
    23012301msgid "External User"
    23022302msgstr ""
     
    23172317
    23182318#. translators: Day count.
    2319 #: includes/functions.php:1340
     2319#: includes/functions.php:1341
    23202320#, php-format
    23212321msgid "Day: %s"
     
    23232323
    23242324#. translators: Week count.
    2325 #: includes/functions.php:1342
     2325#: includes/functions.php:1343
    23262326#, php-format
    23272327msgid "Week: %s"
     
    23292329
    23302330#. translators: Month count.
    2331 #: includes/functions.php:1344
     2331#: includes/functions.php:1345
    23322332#, php-format
    23332333msgid "Month: %s"
    23342334msgstr ""
    23352335
    2336 #: includes/functions.php:1384
     2336#: includes/functions.php:1385
    23372337msgid "Post Not Found."
    23382338msgstr ""
    23392339
    2340 #: includes/functions.php:1396
     2340#: includes/functions.php:1397
    23412341msgid "Post Type Not Matched"
    23422342msgstr ""
    23432343
    2344 #: includes/functions.php:1406
     2344#: includes/functions.php:1407
    23452345msgid "Post Type Already Queued"
    23462346msgstr ""
     
    26692669
    26702670#: modules/opml-subscribe/opml-subscribe.php:356
    2671 #: modules/rss-import/rss-import.php:576
     2671#: modules/rss-import/rss-import.php:593
    26722672msgid "Edit."
    26732673msgstr ""
     
    26912691msgstr ""
    26922692
    2693 #: modules/rss-import/rss-import.php:87
    2694 #: modules/rss-import/rss-import.php:727
     2693#: modules/rss-import/rss-import.php:104
     2694#: modules/rss-import/rss-import.php:744
    26952695msgid "Broken RSS feed."
    26962696msgstr ""
    26972697
    2698 #: modules/rss-import/rss-import.php:271
    2699 #: modules/rss-import/rss-import.php:295
    2700 #: modules/rss-import/rss-import.php:397
     2698#: modules/rss-import/rss-import.php:288
     2699#: modules/rss-import/rss-import.php:312
     2700#: modules/rss-import/rss-import.php:414
    27012701msgid "No author."
    27022702msgstr ""
    27032703
    2704 #: modules/rss-import/rss-import.php:416
     2704#: modules/rss-import/rss-import.php:433
    27052705msgid "Subscribe to Feeds"
    27062706msgstr ""
    27072707
    2708 #: modules/rss-import/rss-import.php:440
     2708#: modules/rss-import/rss-import.php:457
    27092709msgid "Enter the URL of a feed. PressForward will watch the feed for updates, and will automatically import newly published items into the Feed Items area."
    27102710msgstr ""
    27112711
    2712 #: modules/rss-import/rss-import.php:444
     2712#: modules/rss-import/rss-import.php:461
    27132713msgid "RSS Feed URLs can be often be found by looking for an orange icon with the letters \"RSS\", \"XML\", or \"Atom\". If you aren't sure how to find the feed URL, enter a content URL (such as an article page) and PressForward will try to identify the feed for you. <a href=\"https://en.wikipedia.org/wiki/RSS\">Learn more about RSS</a>."
    27142714msgstr ""
    27152715
    2716 #: modules/rss-import/rss-import.php:448
     2716#: modules/rss-import/rss-import.php:465
    27172717msgid "You can also enter the URL of a Google Scholar author profile or search results page to subscribe to new publications by that author or on that topic."
    27182718msgstr ""
    27192719
    2720 #: modules/rss-import/rss-import.php:498
     2720#: modules/rss-import/rss-import.php:515
    27212721msgid "You have provided an invalid OPML file."
    27222722msgstr ""
    27232723
    27242724#. translators: %s is the name of feed that failed to add.
    2725 #: modules/rss-import/rss-import.php:587
     2725#: modules/rss-import/rss-import.php:604
    27262726#, php-format
    27272727msgid "An error occurred while trying to add %s"
    27282728msgstr ""
    27292729
    2730 #: modules/rss-import/rss-import.php:599
     2730#: modules/rss-import/rss-import.php:616
    27312731msgid "You have submitted "
    27322732msgstr ""
  • pressforward/trunk/modules/rss-import/rss-import.php

    r3330426 r3417562  
    6262    public function return_cachetime( $seconds ) {
    6363        return 1800;
     64    }
     65
     66    /**
     67     * Used to return a timeout value in seconds for HTTP requests when fetching feeds.
     68     *
     69     * Filters to 'http_request_timeout'.
     70     *
     71     * @param int $timeout Timeout in seconds.
     72     * @return int
     73     */
     74    public function return_feed_timeout( $timeout ) {
     75        /**
     76         * Filter the feed fetch timeout.
     77         *
     78         * @param int $timeout Timeout in seconds. Default is 60.
     79         */
     80        return apply_filters( 'pf_feed_fetch_timeout', 60 );
    6481    }
    6582
     
    107124
    108125        add_filter( 'wp_feed_cache_transient_lifetime', array( $this, 'return_cachetime' ) );
     126        add_filter( 'http_request_timeout', array( $this, 'return_feed_timeout' ) );
    109127        $simplepie_feed = pf_fetch_feed( $url );
     128        remove_filter( 'http_request_timeout', array( $this, 'return_feed_timeout' ) );
    110129        remove_filter( 'wp_feed_cache_transient_lifetime', array( $this, 'return_cachetime' ) );
    111130
     
    113132            return new WP_Error( 'feed_error', 'Could not fetch feed.', $simplepie_feed );
    114133        }
    115 
    116         $simplepie_feed->set_timeout( 60 );
    117134
    118135        return $this->process_feed_items( $simplepie_feed, $feed );
  • pressforward/trunk/package.json

    r3356897 r3417562  
    11{
    22    "name": "pressforward",
    3     "version": "5.9.3",
     3    "version": "5.9.4",
    44    "description": "PressForward is a free plugin that provides an editorial workflow for content aggregation and curation within the WordPress dashboard. It is designed for bloggers and editorial teams who wish to collect, discuss, and share content from a variety of sources on the open web. ",
    55    "main": "assets/js/pf.js",
  • pressforward/trunk/pressforward.php

    r3356897 r3417562  
    44 * Plugin URI: http://pressforward.org/
    55 * Description: The PressForward Plugin is a tool by the Roy Rosenzweig Center for History and New Media for aggregating and curating web-based content within the WordPress dashboard.
    6  * Version: 5.9.3
     6 * Version: 5.9.4
    77 * GitHub Plugin URI: https://github.com/PressForward/pressforward
    88 * Author: Boone Gorges, Aram Zucker-Scharff, Jeremy Boggs
  • pressforward/trunk/readme.md

    r3207176 r3417562  
    22- Plugin URI: http://pressforward.org/
    33- Description: PressForward is a WordPress plugin built to process feeds as a feed reader, allow groups to share and discuss the items that come in and then blog about them as an integrated editorial process.
    4 - Version: 5.6
     4- Version: 5.8
    55- Author: Boone B Gorges, Aram Zucker-Scharff, Jeremy Boggs
    66- Author URI: http://pressforward.org/
     
    99
    1010
    11   Funded and Maintained by Digital Scholar. Initially developed for the Roy Rosenzweig Center for History and New Media at George Mason University, with funding from the Alfred P. Sloan Foundation.
     11  Funded and maintained by Digital Scholar. Initially developed for the Roy Rosenzweig Center for History and New Media at George Mason University, with funding from the Alfred P. Sloan Foundation.
    1212
    1313## Building this plugin
  • pressforward/trunk/readme.txt

    r3356900 r3417562  
    44Tags: aggregate, aggregation, aggregator, atom, attribution, circulate, collect, community, content curation, curate, curation, curation tool, discuss, distribute, editorial, feed, network, news, opml, OPML, read, reader, reblog, reblogging, republish, review, RSS, rss, share, syndicate, syndication, workflow
    55Requires at least: 5.7
    6 Tested up to: 6.8
     6Tested up to: 6.9
    77Stable tag: 5.9.3
    88License: AGPLv3
     
    8282
    8383== Changelog ==
     84
     85= 5.9.4 =
     86* Added resiliency check to ensure that RSS feeds have corresponding fetch cron jobs set.
     87* Fixed bug that prevented Subscribers from having full access to the Nominate This tools (when the site admin had allowed Subscribers to have access to Nominate This).
     88* Fixed bug that caused fatal errors on certain version of PHP when fetching RSS feeds.
     89* Improved filtering of author names so that PF items on the front end show as being written by the "Author on Source" in widgets and other common contexts.
     90* Some fixes to internationalization and escaping.
    8491
    8592= 5.9.3 =
  • pressforward/trunk/vendor/composer/autoload_static.php

    r2911375 r3417562  
    88{
    99    public static $prefixLengthsPsr4 = array (
    10         'm' => 
     10        'm' =>
    1111        array (
    1212            'mattwright\\' => 11,
    1313        ),
    14         'f' => 
     14        'f' =>
    1515        array (
    1616            'fivefilters\\Readability\\' => 24,
    1717        ),
    18         'P' => 
     18        'P' =>
    1919        array (
    2020            'Psr\\Log\\' => 8,
    2121            'Psr\\Http\\Message\\' => 17,
    2222        ),
    23         'M' => 
     23        'M' =>
    2424        array (
    2525            'Masterminds\\' => 12,
    2626        ),
    27         'L' => 
     27        'L' =>
    2828        array (
    2929            'League\\Uri\\' => 11,
    3030        ),
    31         'F' => 
     31        'F' =>
    3232        array (
    3333            'Firebase\\JWT\\' => 13,
     
    3636
    3737    public static $prefixDirsPsr4 = array (
    38         'mattwright\\' => 
     38        'mattwright\\' =>
    3939        array (
    4040            0 => __DIR__ . '/..' . '/mattwright/urlresolver',
    4141        ),
    42         'fivefilters\\Readability\\' => 
     42        'fivefilters\\Readability\\' =>
    4343        array (
    4444            0 => __DIR__ . '/..' . '/fivefilters/readability.php/src',
    4545        ),
    46         'Psr\\Log\\' => 
     46        'Psr\\Log\\' =>
    4747        array (
    4848            0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
    4949        ),
    50         'Psr\\Http\\Message\\' => 
     50        'Psr\\Http\\Message\\' =>
    5151        array (
    5252            0 => __DIR__ . '/..' . '/psr/http-message/src',
    5353        ),
    54         'Masterminds\\' => 
     54        'Masterminds\\' =>
    5555        array (
    5656            0 => __DIR__ . '/..' . '/masterminds/html5/src',
    5757        ),
    58         'League\\Uri\\' => 
     58        'League\\Uri\\' =>
    5959        array (
    6060            0 => __DIR__ . '/..' . '/league/uri/src',
    6161            1 => __DIR__ . '/..' . '/league/uri-interfaces/src',
    6262        ),
    63         'Firebase\\JWT\\' => 
     63        'Firebase\\JWT\\' =>
    6464        array (
    6565            0 => __DIR__ . '/..' . '/firebase/php-jwt/src',
     
    6868
    6969    public static $prefixesPsr0 = array (
    70         'D' => 
     70        'D' =>
    7171        array (
    72             'DaveChild\\TextStatistics' => 
     72            'DaveChild\\TextStatistics' =>
    7373            array (
    7474                0 => __DIR__ . '/..' . '/davechild/textstatistics/src',
  • pressforward/trunk/vendor/composer/installed.php

    r3356897 r3417562  
    44        'pretty_version' => '5.9.x-dev',
    55        'version' => '5.9.9999999.9999999-dev',
    6         'reference' => '3ad16ff9f581a411eb5e17fe52e371b7f69a91e2',
     6        'reference' => 'de7ebecf3e09a06ef6deae03ce01510990d10e16',
    77        'type' => 'project',
    88        'install_path' => __DIR__ . '/../../',
     
    8686            'pretty_version' => '5.9.x-dev',
    8787            'version' => '5.9.9999999.9999999-dev',
    88             'reference' => '3ad16ff9f581a411eb5e17fe52e371b7f69a91e2',
     88            'reference' => 'de7ebecf3e09a06ef6deae03ce01510990d10e16',
    8989            'type' => 'project',
    9090            'install_path' => __DIR__ . '/../../',
Note: See TracChangeset for help on using the changeset viewer.