Server IP : 192.158.238.246 / Your IP : 3.15.7.155 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/cwd/plugins/code-snippets/php/cloud/ |
Upload File : |
<?php /** * Functions to perform snippet operations * * @package Code_Snippets */ namespace Code_Snippets\Cloud; use function Code_Snippets\code_snippets; /** * Display a hidden input field for a certain column and snippet value. * * @param string $column_name Column name. * @param Cloud_Snippet $snippet Column item. */ function cloud_lts_display_column_hidden_input( string $column_name, Cloud_Snippet $snippet ) { printf( '<input id="cloud-snippet-%s-%s" class="cloud-snippet-item" type="hidden" name="%s" value="%s" />', esc_attr( $column_name ), esc_attr( $snippet->id ), esc_attr( $column_name ), esc_attr( $snippet->$column_name ) ); } /** * Process the download snippet action * * @param string $action Action - 'download' or 'update'. * @param string $source Source - 'search' or 'cloud'. * @param string $snippet Snippet ID. * * @return void */ function cloud_lts_process_download_action( string $action, string $source, string $snippet ) { if ( 'download' === $action || 'update' === $action ) { $result = code_snippets()->cloud_api->download_or_update_snippet( $snippet, $source, $action ); if ( $result['success'] ) { $redirect_uri = $result['snippet_id'] ? code_snippets()->get_snippet_edit_url( (int) $result['snippet_id'] ) : add_query_arg( 'result', $result['action'] ); wp_safe_redirect( esc_url_raw( $redirect_uri ) ); exit; } } } /** * Build action links for snippet. * * @param Cloud_Snippet $snippet Snippet/Column item. * @param string $source Source - 'search' or 'codevault'. * * @return string */ function cloud_lts_build_action_links( Cloud_Snippet $snippet, string $source ): string { $lang = Cloud_API::get_type_from_scope( $snippet->scope ); $additional_classes = 'search' === $source ? 'action-button-link' : ''; $link = code_snippets()->cloud_api->get_cloud_link( $snippet->id, 'cloud' ); $download = true; if ( $link ) { return sprintf( '<a href="%s" class="cloud-snippet-downloaded %s">%s</a>', esc_url( code_snippets()->get_snippet_edit_url( $link->local_id ) ), $additional_classes, esc_html__( 'View', 'code-snippets' ) ); } if ( in_array( $lang, [ 'css', 'js' ], true ) ) { $download = false; } if ( $download ) { $download_url = add_query_arg( [ 'action' => 'download', 'snippet' => $snippet->id, 'source' => $source, ] ); $action_link = sprintf( '<a class="cloud-snippet-download %s" href="%s">%s</a>', $additional_classes, esc_url( $download_url ), esc_html__( 'Download', 'code-snippets' ) ); } else { $action_link = sprintf( '<a class="cloud-snippet-download %s" href="%s" target="_blank"><span class="go-pro-badge">%s</span>%s</a>', $additional_classes, 'https://codesnippets.pro/pricing/', esc_html_x( 'Pro', 'pro only', 'code-snippets' ), esc_html_x( ' Only', 'pro only', 'code-snippets' ) ); } $thickbox_url = '#TB_inline?&width=700&height=500&inlineId=show-code-preview'; $thickbox_link = sprintf( '<a href="%s" title="%s" class="cloud-snippet-preview cloud-snippet-preview-style thickbox %s" data-snippet="%s" data-lang="%s">%s</a>', esc_url( $thickbox_url ), esc_attr( $snippet->name ), $additional_classes, esc_attr( $snippet->id ), esc_attr( $lang ), esc_html__( 'Preview', 'code-snippets' ) ); return $action_link . $thickbox_link; } /** * Build the pagination functionality * * @param string $which Context where the pagination will be displayed. * @param string $source Source - 'search' or 'cloud'. * @param int $total_items Total number of items. * @param int $total_pages Total number of pages. * @param int $pagenum Current page number. * * @return array */ function cloud_lts_pagination( string $which, string $source, int $total_items, int $total_pages, int $pagenum ): array { /* translators: %s: Number of items. */ $num = sprintf( _n( '%s item', '%s items', $total_items, 'code-snippets' ), number_format_i18n( $total_items ) ); $output = '<span class="displaying-num">' . $num . '</span>'; $current = isset( $_REQUEST['cloud_page'] ) ? (int) $_REQUEST['cloud_page'] : $pagenum; $current_url = remove_query_arg( wp_removable_query_args() ) . '#' . $source; $page_links = array(); $html_current_page = ''; $total_pages_before = '<span class="paging-input">'; $total_pages_after = '</span></span>'; $disable_first = false; $disable_last = false; $disable_prev = false; $disable_next = false; if ( 1 === $current ) { $disable_first = true; $disable_prev = true; } if ( $total_pages === $current ) { $disable_last = true; $disable_next = true; } if ( $disable_first ) { $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">«</span>'; } else { $page_links[] = sprintf( "<a class='first-page button' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>", esc_url( remove_query_arg( $source . '_page', $current_url ) ), __( 'First page', 'code-snippets' ), '«' ); } if ( $disable_prev ) { $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">‹</span>'; } else { $page_links[] = sprintf( "<a class='prev-page button' href='%s'><span class='screen-reader-text'>%s</span><span aria-hidden='true'>%s</span></a>", esc_url( add_query_arg( $source . '_page', max( 1, $current - 1 ), $current_url ) ), __( 'Previous page', 'code-snippets' ), '‹' ); } if ( 'bottom' === $which ) { $html_current_page = $current; $total_pages_before = sprintf( '<span class="screen-reader-text">%s</span><span id="table-paging" class="paging-input"><span class="tablenav-paging-text">', __( 'Current page', 'code-snippets' ) ); } if ( 'top' === $which ) { $html_current_page = sprintf( '<label for="current-page-selector" class="screen-reader-text">%s</label><input class="current-page-selector" id="current-page-selector" type="text" name="%s_page" value="%s" size="%d" aria-describedby="table-paging" /><span class="tablenav-paging-text">', __( 'Current page', 'code-snippets' ), $source, $current, strlen( $total_pages ) ); } $html_total_pages = sprintf( '<span class="total-pages">%s</span>', number_format_i18n( $total_pages ) ); /* translators: 1: Current page, 2: Total pages. */ $current_html = _x( '%1$s of %2$s', 'paging', 'code-snippets' ); $page_links[] = $total_pages_before . sprintf( $current_html, $html_current_page, $html_total_pages ) . $total_pages_after; if ( $disable_next ) { $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">›</span>'; } else { $page_links[] = sprintf( '<a class="next-page button" href="%s"><span class="screen-reader-text">%s</span><span aria-hidden="true">%s</span></a>', esc_url( add_query_arg( $source . '_page', min( $total_pages, $current + 1 ), $current_url ) ), __( 'Next page' ), '›' ); } if ( $disable_last ) { $page_links[] = '<span class="tablenav-pages-navspan button disabled" aria-hidden="true">»</span>'; } else { $page_links[] = sprintf( '<a class="last-page button" href="%s"><span class="screen-reader-text">%s</span><span aria-hidden="true">%s</span></a>', esc_url( add_query_arg( $source . '_page', $total_pages, $current_url ) ), __( 'Last page', 'code-snippets' ), '»' ); } $pagination_links_class = 'pagination-links'; if ( ! empty( $infinite_scroll ) ) { $pagination_links_class .= ' hide-if-js'; } $output .= "\n<span class='$pagination_links_class'>" . implode( "\n", $page_links ) . '</span>'; return [ 'output' => $output, 'page_class' => $total_pages ? ( $total_pages < 2 ? ' one-page' : '' ) : ' no-pages', ]; }