list-row-option-ads.php
113 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Render a list of ads included in an ad group |
| 4 | * |
| 5 | * @package AdvancedAds |
| 6 | * @author Advanced Ads <info@wpadvancedads.com> |
| 7 | * |
| 8 | * @var array $ad_form_rows HTML to render ad form. |
| 9 | * @var array $this->all_ads Array with ads that can be chosen from for the group. |
| 10 | * @var Group $group Group instance. |
| 11 | */ |
| 12 | |
| 13 | $max_weight = $group->get_max_weight(); |
| 14 | $sorted_ads = $group->get_sorted_ads(); |
| 15 | $group_ads = $group->get_ads(); |
| 16 | ?> |
| 17 | <table class="wp-list-table widefat fixed striped advads-group-ads"> |
| 18 | <thead> |
| 19 | <tr> |
| 20 | <th class="group-sort group-status" data-sortby="status"><?php esc_html_e( 'Status', 'advanced-ads' ); ?></th> |
| 21 | <th class="group-sort group-ad" data-sortby="ad"><?php esc_html_e( 'Ad', 'advanced-ads' ); ?></th> |
| 22 | <th colspan="2" class="group-sort group-weight" data-sortby="weight"><?php esc_html_e( 'Weight', 'advanced-ads' ); ?></th> |
| 23 | </tr> |
| 24 | </thead> |
| 25 | |
| 26 | <tbody> |
| 27 | <?php |
| 28 | foreach ( $sorted_ads as $ad_id => $ad ) : |
| 29 | $ad_object = $group_ads[ $ad_id ] ?? null; |
| 30 | |
| 31 | if ( ! $ad_object ) { |
| 32 | continue; |
| 33 | } |
| 34 | |
| 35 | $ad_url = add_query_arg( |
| 36 | [ |
| 37 | 'post' => $ad_id, |
| 38 | 'action' => 'edit', |
| 39 | ], |
| 40 | admin_url( 'post.php' ) |
| 41 | ); |
| 42 | /* translators: %s is the title for ad. */ |
| 43 | $link_title = sprintf( esc_html__( 'Opens ad %s in a new tab', 'advanced-ads' ), $ad['title'] ); |
| 44 | ?> |
| 45 | <tr data-ad-id="<?php echo esc_attr( $ad_id ); ?>" data-group-id="<?php echo esc_attr( $group->get_id() ); ?>"> |
| 46 | <td> |
| 47 | <?php |
| 48 | // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- output is already escaped. |
| 49 | echo $ad_object->get_ad_schedule_html(); |
| 50 | ?> |
| 51 | </td> |
| 52 | <td> |
| 53 | <a target="_blank" href="<?php echo esc_url( $ad_url ); ?>" title="<?php echo esc_attr( $link_title ); ?>"> |
| 54 | <?php echo esc_html( $ad['title'] ); ?> |
| 55 | </a> |
| 56 | </td> |
| 57 | <td> |
| 58 | <select class="small-input" name="advads-groups[<?php echo esc_attr( $group->get_id() ); ?>][ads][<?php echo esc_attr( $ad_id ); ?>]"> |
| 59 | <?php for ( $i = 0; $i <= $max_weight; $i++ ) : ?> |
| 60 | <option<?php selected( $ad['weight'], $i ); ?>><?php echo $i; // phpcs:ignore ?></option> |
| 61 | <?php endfor; ?> |
| 62 | |
| 63 | </select> |
| 64 | </td> |
| 65 | <td> |
| 66 | <a href="#" class="advads-remove-ad-from-group button-link-delete"><?php esc_html_e( 'Delete', 'advanced-ads' ); ?></a> |
| 67 | </td> |
| 68 | </tr> |
| 69 | <?php endforeach; ?> |
| 70 | </tbody> |
| 71 | |
| 72 | <tfoot class="advads-group-add-ad"> |
| 73 | <tr> |
| 74 | <?php if ( $this->all_ads ) : ?> |
| 75 | <td> |
| 76 | <strong><?php esc_html_e( 'New Ad', 'advanced-ads' ); ?></strong> |
| 77 | </td> |
| 78 | <td> |
| 79 | <select class="advads-group-add-ad-list-ads"> |
| 80 | <?php |
| 81 | foreach ( $this->all_ads as $ad_id => $ad_title ) { |
| 82 | $ad_status = $this->ad_schedule_details[ $ad_id ] ?? []; |
| 83 | printf( |
| 84 | '<option value="advads-groups[%1$d][ads][%2$d]" data-status="%3$s" data-status-string="%4$s">%5$s</option>', |
| 85 | absint( $group->get_id() ), |
| 86 | absint( $ad_id ), |
| 87 | esc_html( $ad_status['status_type'] ?? '' ), |
| 88 | esc_html( $ad_status['status_strings'][0] ?? '' ), |
| 89 | esc_html( $ad_title ) |
| 90 | ); |
| 91 | } |
| 92 | ?> |
| 93 | </select> |
| 94 | </td> |
| 95 | <td> |
| 96 | <select class="small-input advads-group-add-ad-list-weights"> |
| 97 | <?php for ( $i = 0; $i <= $max_weight; $i++ ) : ?> |
| 98 | <option<?php selected( 10, $i ); ?>><?php echo absint( $i ); ?></option> |
| 99 | <?php endfor; ?> |
| 100 | </select> |
| 101 | </td> |
| 102 | <td> |
| 103 | <button type="button" class="button button-primary"><?php esc_html_e( 'Add', 'advanced-ads' ); ?></button> |
| 104 | </td> |
| 105 | <?php else : ?> |
| 106 | <td colspan="4"> |
| 107 | <a class="button button-primary" href="<?php echo esc_url( admin_url( 'post-new.php?post_type=advanced_ads' ) ); ?>"><?php esc_html_e( 'Create your first ad', 'advanced-ads' ); ?></a> |
| 108 | </td> |
| 109 | <?php endif; ?> |
| 110 | </tr> |
| 111 | </tfoot> |
| 112 | </table> |
| 113 |