/**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if ('wordpress' === $record->context && 'updated' === $record->action) {
         global $wp_version;
         $version = wp_stream_get_meta($record, 'new_version', true);
         if ($version === $wp_version) {
             $links[__('About', 'stream')] = admin_url('about.php?updated');
         }
         $links[__('View Release Notes', 'stream')] = esc_url(sprintf('http://codex.wordpress.org/Version_%s', $version));
     }
     return $links;
 }
Beispiel #2
0
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  * @param  array $links      Previous links registered
  * @param  int   $record     Stream record
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if (current_user_can('edit_theme_options')) {
         $file_name = wp_stream_get_meta($record->ID, 'file', true);
         $theme_slug = wp_stream_get_meta($record->ID, 'theme_slug', true);
         if ('' !== $file_name && '' !== $theme_slug) {
             $links[__('Edit File', 'stream')] = admin_url(sprintf('theme-editor.php?theme=%s&file=%s', $theme_slug, $file_name));
             $links[__('Edit Theme', 'stream')] = admin_url(sprintf('themes.php?theme=%s', $theme_slug));
         }
     }
     return $links;
 }
Beispiel #3
0
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  * @param  array $links      Previous links registered
  * @param  int   $record     Stream record
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if ($sidebar = wp_stream_get_meta($record->ID, 'sidebar_id', true)) {
         global $wp_registered_sidebars;
         if (array_key_exists($sidebar, $wp_registered_sidebars)) {
             $links[__('Edit Widget Area', 'stream')] = admin_url('widgets.php#' . $sidebar);
             // xss ok (@todo fix WPCS rule)
         }
         // @todo Also old_sidebar_id and new_sidebar_id
         // @todo Add Edit Widget link
     }
     return $links;
 }
Beispiel #4
0
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  * @param  array $links      Previous links registered
  * @param  int   $record     Stream record
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     $post = get_post($record->object_id);
     if ($post && $post->post_status === wp_stream_get_meta($record->ID, 'new_status', true)) {
         $post_type_name = self::get_post_type_name(get_post_type($post->ID));
         if ('trash' === $post->post_status) {
             $untrash = wp_nonce_url(add_query_arg(array('action' => 'untrash', 'post' => $post->ID), admin_url('post.php')), sprintf('untrash-post_%d', $post->ID));
             $delete = wp_nonce_url(add_query_arg(array('action' => 'delete', 'post' => $post->ID), admin_url('post.php')), sprintf('delete-post_%d', $post->ID));
             $links[sprintf(esc_html_x('Restore %s', 'Post type singular name', 'stream'), $post_type_name)] = $untrash;
             $links[sprintf(esc_html_x('Delete %s Permenantly', 'Post type singular name', 'stream'), $post_type_name)] = $delete;
         } else {
             $links[sprintf(esc_html_x('Edit %s', 'Post type singular name', 'stream'), $post_type_name)] = get_edit_post_link($post->ID);
             if ($view_link = get_permalink($post->ID)) {
                 $links[esc_html__('View', 'default')] = $view_link;
             }
             if ($revision_id = wp_stream_get_meta($record->ID, 'revision_id', true)) {
                 $links[esc_html__('Revision', 'default')] = get_edit_post_link($revision_id);
             }
         }
     }
     return $links;
 }
Beispiel #5
0
    public function metabox_save($rule)
    {
        $reset_link = add_query_arg(array('action' => 'stream-notifications-reset-occ', 'id' => absint($rule->ID), 'wp_stream_nonce' => wp_create_nonce('reset-occ_' . absint($rule->ID))), admin_url('admin-ajax.php'));
        ?>
		<div class="submitbox" id="submitpost">
			<div id="minor-publishing">
				<div id="misc-publishing-actions">
					<div class="misc-pub-section misc-pub-post-status">
						<label for="notification_visibility">
							<input type="checkbox" name="visibility" id="notification_visibility" value="active" <?php 
        checked(!$rule->exists() || 'active' === $rule->visibility);
        ?>
>
							<?php 
        esc_html_e('Active', 'stream-notifications');
        ?>
						</label>
					</div>
					<?php 
        if ($rule->exists()) {
            ?>
					<div class="misc-pub-section">
						<?php 
            $occ = absint(wp_stream_get_meta($rule->ID, 'occurrences', true));
            ?>
						<div class="occurrences">
							<p>
								<?php 
            echo sprintf(_n('This rule has occurred %1$s time.', 'This rule has occurred %1$s times.', $occ, 'stream-notifications'), sprintf('<strong>%d</strong>', $occ ? $occ : 0));
            ?>
							</p>
							<?php 
            if (0 !== $occ) {
                ?>
								<p>
									<a href="<?php 
                echo esc_url($reset_link);
                ?>
" class="button button-secondary reset-occ">
										<?php 
                esc_html_e('Reset Count', 'stream-notifications');
                ?>
									</a>
								</p>
							<?php 
            }
            ?>
						</div>
					</div>
					<?php 
        }
        ?>
				</div>
			</div>

			<div id="major-publishing-actions">
				<?php 
        if ($rule->exists()) {
            ?>
					<div id="delete-action">
						<?php 
            $delete_link = add_query_arg(array('page' => WP_Stream_Notifications::NOTIFICATIONS_PAGE_SLUG, 'action' => 'delete', 'id' => absint($rule->ID), 'wp_stream_nonce' => wp_create_nonce('delete-record_' . absint($rule->ID))), is_network_admin() ? network_admin_url(WP_Stream_Admin::ADMIN_PARENT_PAGE) : admin_url(WP_Stream_Admin::ADMIN_PARENT_PAGE));
            ?>
						<a class="submitdelete deletion" href="<?php 
            echo esc_url($delete_link);
            ?>
">
							<?php 
            esc_html_e('Delete Permanently', 'stream-notifications');
            ?>
						</a>
					</div>
				<?php 
        }
        ?>

				<div id="publishing-action">
					<span class="spinner"></span>
					<input type="submit" name="publish" id="publish" class="button button-primary button-large" value="<?php 
        $rule->exists() ? esc_attr_e('Update', 'stream-notifications') : esc_attr_e('Save', 'stream-notifications');
        ?>
" accesskey="s">
				</div>
				<div class="clear"></div>
			</div>
		</div>
		<?php 
    }
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     $contexts = self::get_context_labels();
     // Options
     if ($option = wp_stream_get_meta($record, 'option', true)) {
         $key = wp_stream_get_meta($record, 'option_key', true);
         $links[__('Edit', 'default')] = add_query_arg(array('page' => $record->context), admin_url('admin.php')) . '#stream-highlight-' . esc_attr($key);
     } elseif ('wpseo_files' === $record->context) {
         $links[__('Edit', 'default')] = add_query_arg(array('page' => $record->context), admin_url('admin.php'));
     } elseif ('wpseo_meta' === $record->context) {
         $post = get_post($record->object_id);
         if ($post) {
             $post_type_name = WP_Stream_Connector_Posts::get_post_type_name(get_post_type($post->ID));
             if ('trash' === $post->post_status) {
                 $untrash = wp_nonce_url(add_query_arg(array('action' => 'untrash', 'post' => $post->ID), admin_url('post.php')), sprintf('untrash-post_%d', $post->ID));
                 $delete = wp_nonce_url(add_query_arg(array('action' => 'delete', 'post' => $post->ID), admin_url('post.php')), sprintf('delete-post_%d', $post->ID));
                 $links[sprintf(esc_html_x('Restore %s', 'Post type singular name', 'stream'), $post_type_name)] = $untrash;
                 $links[sprintf(esc_html_x('Delete %s Permenantly', 'Post type singular name', 'stream'), $post_type_name)] = $delete;
             } else {
                 $links[sprintf(esc_html_x('Edit %s', 'Post type singular name', 'stream'), $post_type_name)] = get_edit_post_link($post->ID);
                 if ($view_link = get_permalink($post->ID)) {
                     $links[esc_html__('View', 'default')] = $view_link;
                 }
                 if ($revision_id = wp_stream_get_meta($record, 'revision_id', true)) {
                     $links[esc_html__('Revision', 'default')] = get_edit_post_link($revision_id);
                 }
             }
         }
     }
     return $links;
 }
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     // @todo provide proper action links
     if ('jetpack' === $record->connector) {
         if ('modules' === $record->context) {
             $slug = wp_stream_get_meta($record, 'module_slug', true);
             if (is_array($slug)) {
                 $slug = current($slug);
             }
             if (Jetpack::is_module_active($slug)) {
                 if (apply_filters('jetpack_module_configurable_' . $slug, false)) {
                     $links[__('Configure', 'stream')] = Jetpack::module_configuration_url($slug);
                 }
                 $links[__('Deactivate', 'stream')] = wp_nonce_url(add_query_arg(array('action' => 'deactivate', 'module' => $slug), Jetpack::admin_url()), 'jetpack_deactivate-' . sanitize_title($slug));
             } else {
                 $links[__('Activate', 'stream')] = wp_nonce_url(add_query_arg(array('action' => 'activate', 'module' => $slug), Jetpack::admin_url()), 'jetpack_activate-' . sanitize_title($slug));
             }
         } elseif (Jetpack::is_module_active(str_replace('jetpack-', '', $record->context))) {
             $slug = str_replace('jetpack-', '', $record->context);
             // handling jetpack-comment anomaly
             if (apply_filters('jetpack_module_configurable_' . $slug, false)) {
                 $links[__('Configure module', 'stream')] = Jetpack::module_configuration_url($slug);
             }
         }
     }
     return $links;
 }
 private function alert($rules, $log)
 {
     foreach ($rules as $rule_id => $rule) {
         // Update occurrences
         wp_stream_update_meta($rule_id, 'occurrences', (int) wp_stream_get_meta($rule_id, 'occurrences', true) + 1);
         foreach ($rule['alerts'] as $alert) {
             if (!isset(WP_Stream_Notifications::$adapters[$alert['type']])) {
                 continue;
             }
             $adapter = new WP_Stream_Notifications::$adapters[$alert['type']]['class']();
             $adapter->load($alert)->send($log);
         }
     }
 }
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if (current_user_can('edit_theme_options')) {
         $file_name = wp_stream_get_meta($record, 'file', true);
         $file_path = wp_stream_get_meta($record, 'file_path', true);
         if (!empty($file_name) && !empty($file_path)) {
             $theme_slug = wp_stream_get_meta($record, 'theme_slug', true);
             $plugin_slug = wp_stream_get_meta($record, 'plugin_slug', true);
             $theme_exists = !empty($theme_slug) && file_exists($file_path);
             $plugin_exists = !empty($plugin_slug) && file_exists($file_path);
             if ($theme_exists) {
                 $links[__('Edit File', 'stream')] = add_query_arg(array('theme' => urlencode($theme_slug), 'file' => urlencode($file_name)), self_admin_url('theme-editor.php'));
                 $links[__('Theme Details', 'stream')] = add_query_arg(array('theme' => urlencode($theme_slug)), self_admin_url('themes.php'));
             }
             if ($plugin_exists) {
                 $links[__('Edit File', 'stream')] = add_query_arg(array('plugin' => urlencode($plugin_slug), 'file' => urlencode(str_ireplace(trailingslashit(WP_PLUGIN_DIR), '', $file_path))), self_admin_url('plugin-editor.php'));
             }
         }
     }
     return $links;
 }
Beispiel #10
0
 function column_default($item, $column_name)
 {
     switch ($column_name) {
         case 'date':
             $date_string = sprintf('<time datetime="%s" class="relative-time">%s</time>', $item->created, get_date_from_gmt($item->created, 'Y/m/d'));
             $out = $this->column_link($date_string, 'date', date('Y/m/d', strtotime($item->created)));
             $out .= '<br />';
             $out .= get_date_from_gmt($item->created, 'h:i:s A');
             break;
         case 'summary':
             $out = $item->summary;
             if ($item->object_id) {
                 $out .= $this->column_link('<span class="dashicons dashicons-search stream-filter-object-id"></span>', array('object_id' => $item->object_id, 'context' => $item->context), null, __('View all records for this object', 'stream'));
             }
             $out .= $this->get_action_links($item);
             break;
         case 'author':
             require_once WP_STREAM_INC_DIR . 'class-wp-stream-author.php';
             $author_meta = wp_stream_get_meta($item->ID, 'author_meta', true);
             $author = new WP_Stream_Author((int) $item->author, $author_meta);
             $out = sprintf('<a href="%s">%s <span>%s</span></a>%s%s%s', $author->get_records_page_url(), $author->get_avatar_img(80), $author->get_display_name(), $author->is_deleted() ? sprintf('<br /><small class="deleted">%s</small>', esc_html__('Deleted User', 'stream')) : '', $author->get_role() ? sprintf('<br /><small>%s</small>', $author->get_role()) : '', $author->get_agent() ? sprintf('<br /><small>%s</small>', WP_Stream_Author::get_agent_label($author->get_agent())) : '');
             break;
         case 'connector':
         case 'context':
         case 'action':
             $out = $this->column_link($this->get_term_title($item->{$column_name}, $column_name), $column_name, $item->{$column_name});
             break;
         case 'ip':
             $out = $this->column_link($item->{$column_name}, 'ip', $item->{$column_name});
             break;
         case 'id':
             $out = absint($item->ID);
             break;
         case 'blog_id':
             $blog = $item->blog_id && is_multisite() ? get_blog_details($item->blog_id) : WP_Stream_Network::get_network_blog();
             $out = sprintf('<a href="%s"><span>%s</span></a>', add_query_arg(array('blog_id' => $blog->blog_id), network_admin_url('admin.php?page=wp_stream')), esc_html($blog->blogname));
             break;
         default:
             /**
              * Registers new Columns to be inserted into the table.  The cell contents of this column is set
              * below with 'wp_stream_inster_column_default-'
              *
              * @param array $new_columns Array of new column titles to add
              */
             $inserted_columns = apply_filters('wp_stream_register_column_defaults', $new_columns = array());
             if (!empty($inserted_columns) && is_array($inserted_columns)) {
                 foreach ($inserted_columns as $column_title) {
                     /**
                      * If column title inserted via wp_stream_register_column_defaults ($column_title) exists
                      * among columns registered with get_columns ($column_name) and there is an action associated
                      * with this column, do the action
                      *
                      * Also, note that the action name must include the $column_title registered
                      * with wp_stream_register_column_defaults
                      */
                     if ($column_title == $column_name && has_action('wp_stream_insert_column_default-' . $column_title)) {
                         /**
                          * This action allows for the addition of content under the specified column ($column_title)
                          *
                          * @param  string $column_title Title of the column (set in wp_stream_register_column_defaults)
                          * @param  obj    $item         Contents of the row
                          */
                         $out = do_action('wp_stream_insert_column_default-' . $column_title, $item);
                     } else {
                         $out = $column_name;
                     }
                 }
             } else {
                 $out = $column_name;
                 // xss ok
             }
     }
     echo $out;
     // xss ok
 }
Beispiel #11
0
/**
 * get_stream_meta()
 *
 * @deprecated 1.3.2
 * @deprecated Use wp_stream_get_meta
 * @see wp_stream_get_meta()
 */
function get_stream_meta($record_id, $key = '', $single = false)
{
    _deprecated_function(__FUNCTION__, '1.3.2', 'wp_stream_get_meta()');
    return wp_stream_get_meta($record_id, $key, $single);
}
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if (in_array($record->context, array('downloads'))) {
         $links = WP_Stream_Connector_Posts::action_links($links, $record);
     } elseif (in_array($record->context, array('discounts'))) {
         $post_type_label = get_post_type_labels(get_post_type_object('edd_discount'))->singular_name;
         $base = admin_url('edit.php?post_type=download&page=edd-discounts');
         $links[sprintf(__('Edit %s', 'stream'), $post_type_label)] = add_query_arg(array('edd-action' => 'edit_discount', 'discount' => $record->object_id), $base);
         if ('active' === get_post($record->object_id)->post_status) {
             $links[sprintf(__('Deactivate %s', 'stream'), $post_type_label)] = add_query_arg(array('edd-action' => 'deactivate_discount', 'discount' => $record->object_id), $base);
         } else {
             $links[sprintf(__('Activate %s', 'stream'), $post_type_label)] = add_query_arg(array('edd-action' => 'activate_discount', 'discount' => $record->object_id), $base);
         }
     } elseif (in_array($record->context, array('download_category', 'download_tag'))) {
         $tax_label = get_taxonomy_labels(get_taxonomy($record->context))->singular_name;
         $links[sprintf(__('Edit %s', 'stream'), $tax_label)] = get_edit_term_link($record->object_id, wp_stream_get_meta($record, 'taxonomy', true));
     } elseif ('api_keys' === $record->context) {
         $user = new WP_User($record->object_id);
         if (apply_filters('edd_api_log_requests', true)) {
             $links[__('View API Log', 'stream')] = add_query_arg(array('view' => 'api_requests', 'post_type' => 'download', 'page' => 'edd-reports', 'tab' => 'logs', 's' => $user->user_email), 'edit.php');
         }
         $links[__('Revoke', 'stream')] = add_query_arg(array('post_type' => 'download', 'user_id' => $record->object_id, 'edd_action' => 'process_api_key', 'edd_api_process' => 'revoke'), 'edit.php');
         $links[__('Reissue', 'stream')] = add_query_arg(array('post_type' => 'download', 'user_id' => $record->object_id, 'edd_action' => 'process_api_key', 'edd_api_process' => 'regenerate'), 'edit.php');
     }
     return $links;
 }
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     $context_labels = self::get_context_labels();
     $rules = array('stream' => array('menu_slug' => 'wp_stream', 'submenu_slug' => WP_Stream_Admin::SETTINGS_PAGE_SLUG, 'url' => function ($rule, $record) {
         $option_key = wp_stream_get_meta($record, 'option_key', true);
         $url_tab = null;
         if ('' !== $option_key) {
             foreach (WP_Stream_Settings::get_fields() as $tab_name => $tab_properties) {
                 foreach ($tab_properties['fields'] as $field) {
                     $field_key = sprintf('%s_%s', $tab_name, $field['name']);
                     if ($field_key === $option_key) {
                         $url_tab = $tab_name;
                         break 2;
                     }
                 }
             }
         }
         return add_query_arg(array('page' => $rule['submenu_slug'], 'tab' => $url_tab), admin_url('admin.php'));
     }, 'applicable' => function ($submenu, $record) {
         return $record->context === 'wp_stream';
     }), 'background_header' => array('menu_slug' => 'themes.php', 'submenu_slug' => function ($record) {
         return str_replace('_', '-', $record->context);
     }, 'url' => function ($rule, $record) {
         return add_query_arg('page', $rule['submenu_slug']($record), admin_url($rule['menu_slug']));
     }, 'applicable' => function ($submenu, $record) {
         return in_array($record->context, array('custom_header', 'custom_background'));
     }), 'general' => array('menu_slug' => 'options-general.php', 'submenu_slug' => function ($record) {
         return sprintf('options-%s.php', $record->context);
     }, 'url' => function ($rule, $record) {
         return admin_url($rule['submenu_slug']($record));
     }, 'applicable' => function ($submenu, $record) {
         return !empty($submenu['options-general.php']);
     }), 'network' => array('menu_slug' => 'settings.php', 'submenu_slug' => function ($record) {
         return 'settings.php';
     }, 'url' => function ($rule, $record) {
         return network_admin_url($rule['menu_slug']);
     }, 'applicable' => function ($submenu, $record) {
         if (!$record->blog_id) {
             return !empty($submenu['settings.php']);
         }
         return false;
     }));
     if ('settings' !== $record->context && in_array($record->context, array_keys($context_labels))) {
         global $submenu;
         $applicable_rules = array_filter($rules, function ($rule) use($submenu, $record) {
             return call_user_func($rule['applicable'], $submenu, $record);
         });
         if (!empty($applicable_rules)) {
             // The first applicable rule wins
             $rule = array_shift($applicable_rules);
             $menu_slug = $rule['menu_slug'];
             $submenu_slug = is_object($rule['submenu_slug']) && $rule['submenu_slug'] instanceof Closure ? $rule['submenu_slug']($record) : $rule['submenu_slug'];
             $url = $rule['url']($rule, $record);
             if (isset($submenu[$menu_slug])) {
                 $found_submenus = wp_list_filter($submenu[$menu_slug], array(2 => $submenu_slug));
             }
             if (!empty($found_submenus)) {
                 $target_submenu = array_pop($found_submenus);
                 list($menu_title, $capability) = $target_submenu;
                 if (current_user_can($capability)) {
                     $url = apply_filters('wp_stream_action_link_url', $url, $record);
                     $text = sprintf(__('Edit %s Settings', 'stream'), $context_labels[$record->context]);
                     $field_name = wp_stream_get_meta($record, 'option_key', true);
                     if ('' === $field_name) {
                         $field_name = wp_stream_get_meta($record, 'option', true);
                     }
                     if ('' !== $field_name) {
                         $url = sprintf('%s#%s%s', rtrim(preg_replace('/#.*/', '', $url), '/'), self::HIGHLIGHT_FIELD_URL_HASH_PREFIX, $field_name);
                     }
                     $links[$text] = $url;
                 }
             }
         }
     }
     return $links;
 }
Beispiel #14
0
    /**
     * Renders rows for Stream Activity Dashboard Widget
     *
     * @param  obj     Record to be inserted
     * @param  int     Row number
     * @return string  Contents of new row
     */
    public static function widget_row($item, $i = null)
    {
        require_once WP_STREAM_INC_DIR . 'class-wp-stream-author.php';
        $author_meta = wp_stream_get_meta($item->ID, 'author_meta', true);
        $author = new WP_Stream_Author((int) $item->author, $author_meta);
        $time_author = sprintf(_x('%1$s ago by <a href="%2$s">%3$s</a>', '1: Time, 2: User profile URL, 3: User display name', 'stream'), human_time_diff(strtotime($item->created)), esc_url($author->get_records_page_url()), esc_html($author->get_display_name()));
        if ($author->get_agent()) {
            $time_author .= sprintf(' %s', WP_Stream_Author::get_agent_label($author->get_agent()));
        }
        $class = isset($i) && $i % 2 ? 'alternate' : '';
        ob_start();
        ?>
<li class="<?php 
        echo esc_html($class);
        ?>
" data-id="<?php 
        echo esc_html($item->ID);
        ?>
">
			<div class="record-avatar">
				<a href="<?php 
        echo esc_url($author->get_records_page_url());
        ?>
">
					<?php 
        echo $author->get_avatar_img(72);
        // xss ok
        ?>
				</a>
			</div>
			<span class="record-meta"><?php 
        echo $time_author;
        // xss ok
        ?>
</span>
			<br />
			<?php 
        echo esc_html($item->summary);
        ?>
		</li><?php 
        return ob_get_clean();
    }
Beispiel #15
0
function wp_stream_update_migrate_media_to_attachment_type()
{
    global $wpdb;
    $sql = "SELECT r.ID id, r.object_id pid, c.meta_id mid\n\t\tFROM {$wpdb->stream} r\n\t\tJOIN {$wpdb->streamcontext} c\n\t\t\tON r.ID = c.record_id AND c.connector = 'media' AND c.context = 'media'\n\t";
    $records = $wpdb->get_results($sql);
    // db call ok
    foreach ($records as $record) {
        $post = get_post($record->pid);
        $guid = isset($post->guid) ? $post->guid : null;
        $url = $guid ? $guid : wp_stream_get_meta($record->id, 'url', true);
        if (!empty($url)) {
            $wpdb->update($wpdb->streamcontext, array('context' => WP_Stream_Connector_Media::get_attachment_type($url)), array('record_id' => $record->id), array('%s'), array('%d'));
        }
    }
}
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if (in_array($record->context, self::$post_types) && get_post($record->object_id)) {
         if ($link = get_edit_post_link($record->object_id)) {
             $post_type_name = WP_Stream_Connector_Posts::get_post_type_name(get_post_type($record->object_id));
             $links[sprintf(_x('Edit %s', 'Post type singular name', 'stream'), $post_type_name)] = $link;
         }
         if (post_type_exists(get_post_type($record->object_id)) && ($link = get_permalink($record->object_id))) {
             $links[__('View', 'stream')] = $link;
         }
     }
     $context_labels = self::get_context_labels();
     $option_key = wp_stream_get_meta($record, 'option', true);
     $option_page = wp_stream_get_meta($record, 'page', true);
     $option_tab = wp_stream_get_meta($record, 'tab', true);
     $option_section = wp_stream_get_meta($record, 'section', true);
     if ($option_key && $option_tab) {
         $text = sprintf(__('Edit WooCommerce %s', 'stream'), $context_labels[$record->context]);
         $url = add_query_arg(array('page' => $option_page, 'tab' => $option_tab, 'section' => $option_section), admin_url('admin.php'));
         $links[$text] = $url . '#wp-stream-highlight:' . $option_key;
     }
     return $links;
 }
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if (in_array($record->context, array('components'))) {
         $option_key = wp_stream_get_meta($record, 'option_key', true);
         if ('bp-active-components' === $option_key) {
             $links[__('Edit', 'stream')] = add_query_arg(array('page' => 'bp-components'), admin_url('admin.php'));
         } elseif ('bp-pages' === $option_key) {
             $page_id = wp_stream_get_meta($record, 'page_id', true);
             $links[__('Edit setting', 'stream')] = add_query_arg(array('page' => 'bp-page-settings'), admin_url('admin.php'));
             if ($page_id) {
                 $links[__('Edit Page', 'stream')] = get_edit_post_link($page_id);
                 $links[__('View', 'stream')] = get_permalink($page_id);
             }
         }
     } elseif (in_array($record->context, array('settings'))) {
         $links[__('Edit setting', 'stream')] = add_query_arg(array('page' => wp_stream_get_meta($record, 'page', true)), admin_url('admin.php'));
     } elseif (in_array($record->context, array('groups'))) {
         $group_id = wp_stream_get_meta($record, 'id', true);
         $group = groups_get_group(array('group_id' => $group_id));
         if ($group) {
             // Build actions URLs
             $base_url = bp_get_admin_url('admin.php?page=bp-groups&amp;gid=' . $group_id);
             $delete_url = wp_nonce_url($base_url . '&amp;action=delete', 'bp-groups-delete');
             $edit_url = $base_url . '&amp;action=edit';
             $visit_url = bp_get_group_permalink($group);
             $links[__('Edit group', 'stream')] = $edit_url;
             $links[__('View group', 'stream')] = $visit_url;
             $links[__('Delete group', 'stream')] = $delete_url;
         }
     } elseif (in_array($record->context, array('activity'))) {
         $activity_id = wp_stream_get_meta($record, 'id', true);
         $activities = bp_activity_get(array('in' => $activity_id, 'spam' => 'all'));
         if (!empty($activities['activities'])) {
             $activity = reset($activities['activities']);
             $base_url = bp_get_admin_url('admin.php?page=bp-activity&amp;aid=' . $activity->id);
             $spam_nonce = esc_html('_wpnonce=' . wp_create_nonce('spam-activity_' . $activity->id));
             $delete_url = $base_url . "&amp;action=delete&amp;{$spam_nonce}";
             $edit_url = $base_url . '&amp;action=edit';
             $ham_url = $base_url . "&amp;action=ham&amp;{$spam_nonce}";
             $spam_url = $base_url . "&amp;action=spam&amp;{$spam_nonce}";
             if ($activity->is_spam) {
                 $links[__('Ham', 'stream')] = $ham_url;
             } else {
                 $links[__('Edit', 'stream')] = $edit_url;
                 $links[__('Spam', 'stream')] = $spam_url;
             }
             $links[__('Delete', 'stream')] = $delete_url;
         }
     } elseif (in_array($record->context, array('profile_fields'))) {
         $field_id = wp_stream_get_meta($record, 'field_id', true);
         $group_id = wp_stream_get_meta($record, 'group_id', true);
         if (empty($field_id)) {
             // is a group action
             $links[__('Edit', 'stream')] = add_query_arg(array('page' => 'bp-profile-setup', 'mode' => 'edit_group', 'group_id' => $group_id), admin_url('users.php'));
             $links[__('Delete', 'stream')] = add_query_arg(array('page' => 'bp-profile-setup', 'mode' => 'delete_group', 'group_id' => $group_id), admin_url('users.php'));
         } else {
             $field = new BP_XProfile_Field($field_id);
             if (empty($field->type)) {
                 return $links;
             }
             $links[__('Edit', 'stream')] = add_query_arg(array('page' => 'bp-profile-setup', 'mode' => 'edit_field', 'group_id' => $group_id, 'field_id' => $field_id), admin_url('users.php'));
             $links[__('Delete', 'stream')] = add_query_arg(array('page' => 'bp-profile-setup', 'mode' => 'delete_field', 'field_id' => $field_id), admin_url('users.php'));
         }
     }
     return $links;
 }
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array  $links     Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if ('forms' === $record->context) {
         $links[__('Edit', 'gravityforms')] = add_query_arg(array('page' => 'gf_edit_forms', 'id' => $record->object_id), admin_url('admin.php'));
     } elseif ('entries' === $record->context) {
         $links[__('View', 'gravityforms')] = add_query_arg(array('page' => 'gf_entries', 'view' => 'entry', 'lid' => $record->object_id, 'id' => wp_stream_get_meta($record, 'form_id', true)), admin_url('admin.php'));
     } elseif ('notes' === $record->context) {
         $links[__('View', 'gravityforms')] = add_query_arg(array('page' => 'gf_entries', 'view' => 'entry', 'lid' => wp_stream_get_meta($record, 'lead_id', true), 'id' => wp_stream_get_meta($record, 'form_id', true)), admin_url('admin.php'));
     } elseif ('settings' === $record->context) {
         $links[__('Edit Settings', 'stream')] = add_query_arg(array('page' => 'gf_settings'), admin_url('admin.php'));
     }
     return $links;
 }
 /**
  * Add action links to Stream drop row in admin list screen
  *
  * @filter wp_stream_action_links_{connector}
  *
  * @param  array $links      Previous links registered
  * @param  object $record    Stream record
  *
  * @return array             Action links
  */
 public static function action_links($links, $record)
 {
     if ('settings' === $record->context) {
         $option = wp_stream_get_meta($record, 'option', true);
         $links[__('Edit', 'stream')] = esc_url(add_query_arg(array('page' => 'bbpress'), admin_url('options-general.php')) . esc_url_raw('#' . $option));
     }
     return $links;
 }
Beispiel #20
0
 function column_default($item, $column_name)
 {
     switch ($column_name) {
         case 'name':
             $name = strlen($item->summary) ? $item->summary : sprintf('(%s)', esc_html__('no title', 'stream-notifications'));
             $out = sprintf('<strong style="display:block;margin-bottom:.2em;font-size:14px;"><a href="%s" class="%s" title="%s">%s</a>%s</strong>', add_query_arg(array('page' => WP_Stream_Notifications::NOTIFICATIONS_PAGE_SLUG, 'view' => 'rule', 'action' => 'edit', 'id' => absint($item->ID)), is_network_admin() ? network_admin_url(WP_Stream_Admin::ADMIN_PARENT_PAGE) : admin_url(WP_Stream_Admin::ADMIN_PARENT_PAGE)), 'row-title', esc_attr($name), esc_html($name), 'inactive' === $item->visibility ? sprintf(' - <span class="post-state">%s</span>', esc_html__('Inactive', 'stream-notifications')) : '');
             $out .= $this->get_action_links($item);
             break;
         case 'type':
             $out = $this->get_rule_types($item);
             break;
         case 'occurrences':
             $out = absint(wp_stream_get_meta($item->ID, 'occurrences', true));
             break;
         case 'date':
             $out = $this->column_link(get_date_from_gmt($item->created, 'Y/m/d'), 'date', date('Y/m/d', strtotime($item->created)));
             $out .= '<br />';
             $out .= 'active' === $item->visibility ? esc_html__('Active', 'stream-notifications') : esc_html__('Last Modified', 'stream-notifications');
             break;
         default:
             // Register inserted column defaults. Must match a column header from get_columns.
             $inserted_columns = apply_filters('wp_stream_notifications_register_column_defaults', $new_columns = array());
             if (!empty($inserted_columns) && is_array($inserted_columns)) {
                 foreach ($inserted_columns as $column_title) {
                     /**
                      * If column title inserted via wp_stream_notifications_register_column_defaults ($column_title) exists
                      * among columns registered with get_columns ($column_name) and there is an action associated
                      * with this column, do the action
                      *
                      * Also, note that the action name must include the $column_title registered
                      * with wp_stream_notifications_register_column_defaults
                      */
                     if ($column_title === $column_name && has_action('wp_stream_notifications_insert_column_default-' . $column_title)) {
                         $out = do_action('wp_stream_notifications_insert_column_default-' . $column_title, $item);
                     } else {
                         $out = $column_name;
                     }
                 }
             } else {
                 $out = $column_name;
                 // xss okay
             }
             break;
     }
     echo $out;
     // xss okay
 }