Changeset 311637
- Timestamp:
- 02/03/2026 07:14:40 AM (9 months ago)
- Location:
- building-architect/1.2.1
- Files:
-
- 1 added
- 5 edited
- 1 copied
-
. (copied) (copied from building-architect/1.2.0 )
-
inc/get-started/get-started.css (modified) (1 diff)
-
inc/tgm/class-tgm-plugin-activation.php (modified) (41 diffs)
-
patterns/footer-columns.php (modified) (1 diff)
-
readme.txt (modified) (1 diff)
-
style.css (modified) (6 diffs)
-
templates/blog-listing.html (added)
Legend:
- Unmodified
- Added
- Removed
-
building-architect/1.2.1/inc/get-started/get-started.css
r299821 r311637 374 374 color: #fff !important; 375 375 } 376 /* Add css activation notice button*/ 377 .dash-notice p { 378 margin-bottom: 6px !important; 379 } 380 .dash-notice a.button { 381 margin: 1px !important; 382 display: inline-flex; 383 align-items: center; 384 } 385 .dash-notice { 386 padding-bottom: 10px !important; 387 } -
building-architect/1.2.1/inc/tgm/class-tgm-plugin-activation.php
r286184 r311637 9 9 * 10 10 * @package TGM-Plugin-Activation 11 * @version 2.6.1 for parent theme Building Architect for publication on WordPress.org11 * @version 2.6.1 12 12 * @link http://tgmpluginactivation.com/ 13 13 * @author Thomas Griffin, Gary Jones, Juliette Reinders Folmer … … 32 32 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 33 33 */ 34 35 // Exit if accessed directly. 36 if ( ! defined( 'ABSPATH' ) ) { 37 return; 38 } 34 39 35 40 if ( ! class_exists( 'TGM_Plugin_Activation' ) ) { … … 260 265 do_action_ref_array( 'tgmpa_init', array( $this ) ); 261 266 262 267 /* 268 * Load our text domain and allow for overloading the fall-back file. 269 * 270 * {@internal IMPORTANT! If this code changes, review the regex in the custom TGMPA 271 * generator on the website.}} 272 */ 273 add_action( 'init', array( $this, 'load_textdomain' ), 5 ); 274 add_filter( 'load_textdomain_mofile', array( $this, 'overload_textdomain_mofile' ), 10, 2 ); 263 275 264 276 // When the rest of WP has loaded, kick-start the rest of the class. … … 283 295 */ 284 296 public function __set( $name, $value ) { 297 // phpcs:ignore Squiz.PHP.NonExecutableCode.ReturnNotRequired -- See explanation above. 285 298 return; 286 299 } … … 332 345 'updating' => __( 'Updating Plugin: %s', 'building-architect' ), 333 346 'oops' => __( 'Something went wrong with the plugin API.', 'building-architect' ), 347 /* translators: 1: plugin name(s). */ 334 348 'notice_can_install_required' => _n_noop( 335 /* translators: 1: plugin name(s). */336 349 'This theme requires the following plugin: %1$s.', 337 350 'This theme requires the following plugins: %1$s.', 338 351 'building-architect' 339 352 ), 353 /* translators: 1: plugin name(s). */ 340 354 'notice_can_install_recommended' => _n_noop( 341 /* translators: 1: plugin name(s). */342 355 'This theme recommends the following plugin: %1$s.', 343 356 'This theme recommends the following plugins: %1$s.', 344 357 'building-architect' 345 358 ), 359 /* translators: 1: plugin name(s). */ 346 360 'notice_ask_to_update' => _n_noop( 347 /* translators: 1: plugin name(s). */348 361 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 349 362 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.', 350 363 'building-architect' 351 364 ), 365 /* translators: 1: plugin name(s). */ 352 366 'notice_ask_to_update_maybe' => _n_noop( 353 /* translators: 1: plugin name(s). */354 367 'There is an update available for: %1$s.', 355 368 'There are updates available for the following plugins: %1$s.', 356 369 'building-architect' 357 370 ), 371 /* translators: 1: plugin name(s). */ 358 372 'notice_can_activate_required' => _n_noop( 359 /* translators: 1: plugin name(s). */360 373 'The following required plugin is currently inactive: %1$s.', 361 374 'The following required plugins are currently inactive: %1$s.', 362 375 'building-architect' 363 376 ), 377 /* translators: 1: plugin name(s). */ 364 378 'notice_can_activate_recommended' => _n_noop( 365 /* translators: 1: plugin name(s). */366 379 'The following recommended plugin is currently inactive: %1$s.', 367 380 'The following recommended plugins are currently inactive: %1$s.', … … 445 458 add_action( 'switch_theme', array( $this, 'force_deactivation' ) ); 446 459 } 447 } 448 449 450 451 452 453 460 461 // Add CSS for the TGMPA admin page. 462 add_action( 'admin_head', array( $this, 'admin_css' ) ); 463 } 464 465 /** 466 * Load translations. 467 * 468 * @since 2.6.0 469 * 470 * (@internal Uses `load_theme_textdomain()` rather than `load_plugin_textdomain()` to 471 * get round the different ways of handling the path and deprecated notices being thrown 472 * and such. For plugins, the actual file name will be corrected by a filter.}} 473 * 474 * {@internal IMPORTANT! If this function changes, review the regex in the custom TGMPA 475 * generator on the website.}} 476 */ 477 public function load_textdomain() { 478 if ( is_textdomain_loaded( 'building-architect' ) ) { 479 return; 480 } 481 482 if ( false !== strpos( __FILE__, WP_PLUGIN_DIR ) || false !== strpos( __FILE__, WPMU_PLUGIN_DIR ) ) { 483 // Plugin, we'll need to adjust the file name. 484 add_action( 'load_textdomain_mofile', array( $this, 'correct_plugin_mofile' ), 10, 2 ); 485 load_theme_textdomain( 'building-architect', dirname( __FILE__ ) . '/languages' ); 486 remove_action( 'load_textdomain_mofile', array( $this, 'correct_plugin_mofile' ), 10 ); 487 } else { 488 load_theme_textdomain( 'building-architect', dirname( __FILE__ ) . '/languages' ); 489 } 490 } 491 492 /** 493 * Correct the .mo file name for (must-use) plugins. 494 * 495 * Themese use `/path/{locale}.mo` while plugins use `/path/{text-domain}-{locale}.mo`. 496 * 497 * {@internal IMPORTANT! If this function changes, review the regex in the custom TGMPA 498 * generator on the website.}} 499 * 500 * @since 2.6.0 501 * 502 * @param string $mofile Full path to the target mofile. 503 * @param string $domain The domain for which a language file is being loaded. 504 * @return string $mofile 505 */ 506 public function correct_plugin_mofile( $mofile, $domain ) { 507 // Exit early if not our domain (just in case). 508 if ( 'building-architect' !== $domain ) { 509 return $mofile; 510 } 511 return preg_replace( '`/([a-z]{2}_[A-Z]{2}.mo)$`', '/tgmpa-$1', $mofile ); 512 } 513 514 /** 515 * Potentially overload the fall-back translation file for the current language. 516 * 517 * WP, by default since WP 3.7, will load a local translation first and if none 518 * can be found, will try and find a translation in the /wp-content/languages/ directory. 519 * As this library is theme/plugin agnostic, translation files for TGMPA can exist both 520 * in the WP_LANG_DIR /plugins/ subdirectory as well as in the /themes/ subdirectory. 521 * 522 * This method makes sure both directories are checked. 523 * 524 * {@internal IMPORTANT! If this function changes, review the regex in the custom TGMPA 525 * generator on the website.}} 526 * 527 * @since 2.6.0 528 * 529 * @param string $mofile Full path to the target mofile. 530 * @param string $domain The domain for which a language file is being loaded. 531 * @return string $mofile 532 */ 533 public function overload_textdomain_mofile( $mofile, $domain ) { 534 // Exit early if not our domain, not a WP_LANG_DIR load or if the file exists and is readable. 535 if ( 'building-architect' !== $domain || false === strpos( $mofile, WP_LANG_DIR ) || @is_readable( $mofile ) ) { 536 return $mofile; 537 } 538 539 // Current fallback file is not valid, let's try the alternative option. 540 if ( false !== strpos( $mofile, '/themes/' ) ) { 541 return str_replace( '/themes/', '/plugins/', $mofile ); 542 } elseif ( false !== strpos( $mofile, '/plugins/' ) ) { 543 return str_replace( '/plugins/', '/themes/', $mofile ); 544 } else { 545 return $mofile; 546 } 547 } 454 548 455 549 /** … … 562 656 563 657 global $tab, $body_id; 658 // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- WP requirement. 564 659 $body_id = 'plugin-information'; 565 // @codingStandardsIgnoreStart 566 $tab = 'plugin-information';567 // @codingStandardsIgnoreEnd660 661 // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited -- Overriding the WP global is the point. 662 $tab = 'plugin-information'; 568 663 569 664 install_plugin_information(); … … 637 732 */ 638 733 protected function add_admin_menu( array $args ) { 639 $this->page_hook = add_theme_page( $args['page_title'], $args['menu_title'], $args['capability'], $args['menu_slug'], $args['function'] ); 734 if ( has_filter( 'tgmpa_admin_menu_use_add_theme_page' ) ) { 735 _deprecated_function( 'The "tgmpa_admin_menu_use_add_theme_page" filter', '2.5.0', esc_html__( 'Set the parent_slug config variable instead.', 'building-architect' ) ); 736 } 737 738 if ( 'themes.php' === $this->parent_slug ) { 739 $this->page_hook = call_user_func( 'add_theme_page', $args['page_title'], $args['menu_title'], $args['capability'], $args['menu_slug'], $args['function'] ); 740 } else { 741 $this->page_hook = call_user_func( 'add_submenu_page', $args['parent_slug'], $args['page_title'], $args['menu_title'], $args['capability'], $args['menu_slug'], $args['function'] ); 742 } 640 743 } 641 744 … … 653 756 public function install_plugins_page() { 654 757 // Store new instance of plugin table in object. 655 $plugin_table = new TGMPA_List_Table ;758 $plugin_table = new TGMPA_List_Table(); 656 759 657 760 // Return early if processing a plugin installation action. … … 741 844 $method = ''; // Leave blank so WP_Filesystem can populate it as necessary. 742 845 743 if ( false === ( $creds = request_filesystem_credentials( esc_url_raw( $url ), $method, false, false, array() ) ) ) { 846 $creds = request_filesystem_credentials( esc_url_raw( $url ), $method, false, false, array() ); 847 if ( false === $creds ) { 744 848 return true; 745 849 } … … 798 902 if ( 'update' === $install_type ) { 799 903 // Inject our info into the update transient. 800 $to_inject = array( $slug => $this->plugins[ $slug ] ); 904 $to_inject = array( 905 $slug => $this->plugins[ $slug ], 906 ); 801 907 $to_inject[ $slug ]['source'] = $source; 802 908 $this->inject_update_info( $to_inject ); … … 825 931 // Display message based on if all plugins are now active or not. 826 932 if ( $this->is_tgmpa_complete() ) { 827 echo '<p>', sprintf( esc_html( $this->strings['complete'] ), '<a href="' . esc_url( self_admin_url() ) . '">' . esc_html __( 'Return to the Dashboard', 'building-architect') . '</a>' ), '</p>';933 echo '<p>', sprintf( esc_html( $this->strings['complete'] ), '<a href="' . esc_url( self_admin_url() ) . '">' . esc_html( $this->strings['dashboard'] ) . '</a>' ), '</p>'; 828 934 echo '<style type="text/css">#adminmenu .wp-submenu li.current { display: none !important; }</style>'; 829 935 } else { … … 855 961 856 962 if ( ! is_object( $repo_updates ) ) { 857 $repo_updates = new stdClass ;963 $repo_updates = new stdClass(); 858 964 } 859 965 … … 862 968 863 969 if ( empty( $repo_updates->response[ $file_path ] ) ) { 864 $repo_updates->response[ $file_path ] = new stdClass ;970 $repo_updates->response[ $file_path ] = new stdClass(); 865 971 } 866 972 … … 932 1038 return trailingslashit( $to_path ); 933 1039 } else { 934 return new WP_Error( 'rename_failed', esc_html__( 'The remote plugin package does not contain a folder with the desired slug and renaming did not work.', 'building-architect' ) . ' ' . esc_html__( 'Please contact the plugin provider and ask them to package their plugin according to the WordPress guidelines.', 'building-architect' ), array( 'found' => $subdir_name, 'expected' => $desired_slug ) ); 1040 return new WP_Error( 1041 'rename_failed', 1042 esc_html__( 'The remote plugin package does not contain a folder with the desired slug and renaming did not work.', 'building-architect' ) . ' ' . esc_html__( 'Please contact the plugin provider and ask them to package their plugin according to the WordPress guidelines.', 'building-architect' ), 1043 array( 1044 'found' => $subdir_name, 1045 'expected' => $desired_slug, 1046 ) 1047 ); 935 1048 } 936 1049 } elseif ( empty( $subdir_name ) ) { 937 return new WP_Error( 'packaged_wrong', esc_html__( 'The remote plugin package consists of more than one file, but the files are not packaged in a folder.', 'building-architect' ) . ' ' . esc_html__( 'Please contact the plugin provider and ask them to package their plugin according to the WordPress guidelines.', 'building-architect' ), array( 'found' => $subdir_name, 'expected' => $desired_slug ) ); 1050 return new WP_Error( 1051 'packaged_wrong', 1052 esc_html__( 'The remote plugin package consists of more than one file, but the files are not packaged in a folder.', 'building-architect' ) . ' ' . esc_html__( 'Please contact the plugin provider and ask them to package their plugin according to the WordPress guidelines.', 'building-architect' ), 1053 array( 1054 'found' => $subdir_name, 1055 'expected' => $desired_slug, 1056 ) 1057 ); 938 1058 } 939 1059 } … … 966 1086 // Make sure message doesn't display again if bulk activation is performed 967 1087 // immediately after a single activation. 968 if ( ! isset( $_POST['action'] ) ) { // WPCS: CSRF OK. 1088 // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Not using the superglobal. 1089 if ( ! isset( $_POST['action'] ) ) { 969 1090 echo '<div id="message" class="updated"><p>', esc_html( $this->strings['activated_successfully'] ), ' <strong>', esc_html( $this->plugins[ $slug ]['name'] ), '.</strong></p></div>'; 970 1091 } … … 987 1108 // Make sure message doesn't display again if bulk activation is performed 988 1109 // immediately after a single activation. 989 if ( ! isset( $_POST['action'] ) ) { // WPCS: CSRF OK. 1110 // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Not using the superglobal. 1111 if ( ! isset( $_POST['action'] ) ) { 990 1112 echo '<div id="message" class="error"><p>', 991 1113 sprintf( … … 1116 1238 unset( $plugin_slug ); 1117 1239 1118 $ building_architect_count = count( $plugin_group );1240 $count = count( $plugin_group ); 1119 1241 $linked_plugins = array_map( array( 'TGMPA_Utils', 'wrap_in_em' ), $linked_plugins ); 1120 1242 $last_plugin = array_pop( $linked_plugins ); // Pop off last name to prep for readability. … … 1124 1246 $line_template, 1125 1247 sprintf( 1126 translate_nooped_plural( $this->strings[ $type ], $ building_architect_count, 'building-architect' ),1248 translate_nooped_plural( $this->strings[ $type ], $count, 'building-architect' ), 1127 1249 $imploded, 1128 $ building_architect_count1250 $count 1129 1251 ) 1130 1252 ); 1131 1253 1132 1254 } 1133 unset( $type, $plugin_group, $linked_plugins, $ building_architect_count, $last_plugin, $imploded );1255 unset( $type, $plugin_group, $linked_plugins, $count, $last_plugin, $imploded ); 1134 1256 1135 1257 $rendered .= $this->create_user_action_links_for_notice( $install_link_count, $update_link_count, $activate_link_count, $line_template ); … … 1137 1259 1138 1260 // Register the nag messages and prepare them to be processed. 1139 add_settings_error( ' tgmpa', 'tgmpa', $rendered, $this->get_admin_notice_class() );1261 add_settings_error( 'building-architect', 'building-architect', $rendered, $this->get_admin_notice_class() ); 1140 1262 } 1141 1263 … … 1237 1359 global $wp_settings_errors; 1238 1360 1239 settings_errors( ' tgmpa' );1361 settings_errors( 'building-architect' ); 1240 1362 1241 1363 foreach ( (array) $wp_settings_errors as $key => $details ) { 1242 if ( ' tgmpa' === $details['setting'] ) {1364 if ( 'building-architect' === $details['setting'] ) { 1243 1365 unset( $wp_settings_errors[ $key ] ); 1244 1366 break; … … 1282 1404 1283 1405 $defaults = array( 1284 'name' => '', // String 1285 'slug' => '', // String 1286 'source' => 'repo', // String 1287 'required' => false, // Boolean 1288 'version' => '', // String 1289 'force_activation' => false, // Boolean 1290 'force_deactivation' => false, // Boolean 1291 'external_url' => '', // String 1292 'is_callable' => '', // String |Array.1406 'name' => '', // String. 1407 'slug' => '', // String. 1408 'source' => 'repo', // String. 1409 'required' => false, // Boolean. 1410 'version' => '', // String. 1411 'force_activation' => false, // Boolean. 1412 'force_deactivation' => false, // Boolean. 1413 'external_url' => '', // String. 1414 'is_callable' => '', // String or array. 1293 1415 ); 1294 1416 … … 1556 1678 } 1557 1679 1558 $response = plugins_api( 'plugin_information', array( 'slug' => $slug, 'fields' => array( 'sections' => false ) ) ); 1680 $response = plugins_api( 1681 'plugin_information', 1682 array( 1683 'slug' => $slug, 1684 'fields' => array( 1685 'sections' => false, 1686 ), 1687 ) 1688 ); 1559 1689 1560 1690 $api[ $slug ] = false; … … 1639 1769 // Core update screen. 1640 1770 return true; 1641 } elseif ( 'plugins' === $screen->base && ! empty( $_POST['action'] ) ) { // WPCS: CSRF ok.1771 } elseif ( 'plugins' === $screen->base && ! empty( $_POST['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing 1642 1772 // Plugins bulk update screen. 1643 1773 return true; 1644 } elseif ( 'update' === $screen->base && ! empty( $_POST['action'] ) ) { // WPCS: CSRF ok.1774 } elseif ( 'update' === $screen->base && ! empty( $_POST['action'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing 1645 1775 // Individual updates (ajax call). 1646 1776 return true; … … 1985 2115 ), 1986 2116 '</small></strong></p>'; 2117 } 2118 2119 /** 2120 * Adds CSS to admin head. 2121 * 2122 * @since 2.6.2 2123 */ 2124 public function admin_css() { 2125 if ( ! $this->is_tgmpa_page() ) { 2126 return; 2127 } 2128 2129 echo ' 2130 <style> 2131 #tgmpa-plugins .tgmpa-type-required > th { 2132 border-left: 3px solid #dc3232; 2133 } 2134 </style>'; 1987 2135 } 1988 2136 … … 2378 2526 $status_links = array(); 2379 2527 2380 foreach ( $this->view_totals as $type => $ building_architect_count ) {2381 if ( $ building_architect_count < 1 ) {2528 foreach ( $this->view_totals as $type => $count ) { 2529 if ( $count < 1 ) { 2382 2530 continue; 2383 2531 } … … 2386 2534 case 'all': 2387 2535 /* translators: 1: number of plugins. */ 2388 $text = _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $ building_architect_count, 'plugins', 'building-architect' );2536 $text = _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $count, 'plugins', 'building-architect' ); 2389 2537 break; 2390 2538 case 'install': 2391 2539 /* translators: 1: number of plugins. */ 2392 $text = _n( 'To Install <span class="count">(%s)</span>', 'To Install <span class="count">(%s)</span>', $ building_architect_count, 'building-architect' );2540 $text = _n( 'To Install <span class="count">(%s)</span>', 'To Install <span class="count">(%s)</span>', $count, 'building-architect' ); 2393 2541 break; 2394 2542 case 'update': 2395 2543 /* translators: 1: number of plugins. */ 2396 $text = _n( 'Update Available <span class="count">(%s)</span>', 'Update Available <span class="count">(%s)</span>', $ building_architect_count, 'building-architect' );2544 $text = _n( 'Update Available <span class="count">(%s)</span>', 'Update Available <span class="count">(%s)</span>', $count, 'building-architect' ); 2397 2545 break; 2398 2546 case 'activate': 2399 2547 /* translators: 1: number of plugins. */ 2400 $text = _n( 'To Activate <span class="count">(%s)</span>', 'To Activate <span class="count">(%s)</span>', $ building_architect_count, 'building-architect' );2548 $text = _n( 'To Activate <span class="count">(%s)</span>', 'To Activate <span class="count">(%s)</span>', $count, 'building-architect' ); 2401 2549 break; 2402 2550 default: … … 2411 2559 esc_url( $this->tgmpa->get_tgmpa_status_url( $type ) ), 2412 2560 ( $type === $this->view_context ) ? ' class="current"' : '', 2413 sprintf( $text, number_format_i18n( $ building_architect_count ) )2561 sprintf( $text, number_format_i18n( $count ) ) 2414 2562 ); 2415 2563 } … … 2531 2679 */ 2532 2680 public function no_items() { 2533 echo esc_html__( 'No plugins to install, update or activate.', 'building-architect' ) . ' <a href="' . esc_url( self_admin_url() ) . '"> ' . esc_html __( 'Return to the Dashboard', 'building-architect') . '</a>';2681 echo esc_html__( 'No plugins to install, update or activate.', 'building-architect' ) . ' <a href="' . esc_url( self_admin_url() ) . '"> ' . esc_html( $this->tgmpa->strings['dashboard'] ) . '</a>'; 2534 2682 echo '<style type="text/css">#adminmenu .wp-submenu li.current { display: none !important; }</style>'; 2535 2683 } … … 2649 2797 */ 2650 2798 public function single_row( $item ) { 2651 parent::single_row( $item ); 2799 echo '<tr class="' . esc_attr( 'tgmpa-type-' . strtolower( $item['type'] ) ) . '">'; 2800 $this->single_row_columns( $item ); 2801 echo '</tr>'; 2652 2802 2653 2803 /** … … 2694 2844 * @since 2.5.0 2695 2845 * 2696 * @param string $which 'top' or 'bottom' table navigation.2846 * @param string $which Either 'top' or 'bottom' table navigation. 2697 2847 */ 2698 2848 public function extra_tablenav( $which ) { … … 2820 2970 $fields = array_keys( $_POST ); // Extra fields to pass to WP_Filesystem. 2821 2971 2822 if ( false === ( $creds = request_filesystem_credentials( esc_url_raw( $url ), $method, false, false, $fields ) ) ) { 2972 $creds = request_filesystem_credentials( esc_url_raw( $url ), $method, false, false, $fields ); 2973 if ( false === $creds ) { 2823 2974 return true; // Stop the normal page form from displaying, credential request form will be shown. 2824 2975 } … … 2943 3094 echo '<div id="message" class="error"><p>', wp_kses_post( $activate->get_error_message() ), '</p></div>'; 2944 3095 } else { 2945 $ building_architect_count = count( $plugin_names ); // Count so we can use _n function.3096 $count = count( $plugin_names ); // Count so we can use _n function. 2946 3097 $plugin_names = array_map( array( 'TGMPA_Utils', 'wrap_in_strong' ), $plugin_names ); 2947 3098 $last_plugin = array_pop( $plugin_names ); // Pop off last name to prep for readability. 2948 3099 $imploded = empty( $plugin_names ) ? $last_plugin : ( implode( ', ', $plugin_names ) . ' ' . esc_html_x( 'and', 'plugin A *and* plugin B', 'building-architect' ) . ' ' . $last_plugin ); 2949 3100 2950 printf( // WPCS: xss ok.3101 printf( 2951 3102 '<div id="message" class="updated"><p>%1$s %2$s.</p></div>', 2952 esc_html( _n( 'The following plugin was activated successfully:', 'The following plugins were activated successfully:', $building_architect_count, 'building-architect' ) ), 3103 esc_html( _n( 'The following plugin was activated successfully:', 'The following plugins were activated successfully:', $count, 'building-architect' ) ), 3104 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Pre-escaped via wrap_in_strong() method above. 2953 3105 $imploded 2954 3106 ); … … 3295 3447 break; 3296 3448 } 3297 } //end foreach $plugins3449 } 3298 3450 3299 3451 $this->maintenance_mode( false ); … … 3315 3467 * } 3316 3468 */ 3317 do_action( 'upgrader_process_complete', $this, array( 3318 'action' => 'install', // [TGMPA + ] adjusted. 3319 'type' => 'plugin', 3320 'bulk' => true, 3321 'plugins' => $plugins, 3322 ) ); 3469 do_action( 3470 // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound -- Using WP core hook. 3471 'upgrader_process_complete', 3472 $this, 3473 array( 3474 'action' => 'install', // [TGMPA + ] adjusted. 3475 'type' => 'plugin', 3476 'bulk' => true, 3477 'plugins' => $plugins, 3478 ) 3479 ); 3323 3480 3324 3481 $this->skin->bulk_footer(); … … 3507 3664 $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation and activation process is starting. This process may take a while on some hosts, so please be patient.', 'building-architect' ); 3508 3665 /* translators: 1: plugin name. */ 3509 $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed and activated successfully.', 'building-architect' ) . ' <a href="#" class="hide-if-no-js" onclick="%2$s"><span>' . esc_html__( 'Show Details', 'building-architect' ) . '</span><span class="hidden">' . esc_html__( 'Hide Details', 'building-architect' ) . '</span>.</a>';3666 $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed and activated successfully.', 'building-architect' ); 3510 3667 $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations and activations have been completed.', 'building-architect' ); 3511 3668 /* translators: 1: plugin name, 2: action number 3: total number of actions. */ … … 3515 3672 $this->upgrader->strings['skin_upgrade_start'] = __( 'The installation process is starting. This process may take a while on some hosts, so please be patient.', 'building-architect' ); 3516 3673 /* translators: 1: plugin name. */ 3517 $this->upgrader->strings['skin_update_successful'] = esc_html__( '%1$s installed successfully.', 'building-architect' ) . ' <a href="#" class="hide-if-no-js" onclick="%2$s"><span>' . esc_html__( 'Show Details', 'building-architect' ) . '</span><span class="hidden">' . esc_html__( 'Hide Details', 'building-architect' ) . '</span>.</a>';3674 $this->upgrader->strings['skin_update_successful'] = __( '%1$s installed successfully.', 'building-architect' ); 3518 3675 $this->upgrader->strings['skin_upgrade_end'] = __( 'All installations have been completed.', 'building-architect' ); 3519 3676 /* translators: 1: plugin name, 2: action number 3: total number of actions. */ 3520 3677 $this->upgrader->strings['skin_before_update_header'] = __( 'Installing Plugin %1$s (%2$d/%3$d)', 'building-architect' ); 3678 } 3679 3680 // Add "read more" link only for WP < 4.8. 3681 if ( version_compare( $this->tgmpa->wp_version, '4.8', '<' ) ) { 3682 $this->upgrader->strings['skin_update_successful'] .= ' <a href="#" class="hide-if-no-js" onclick="%2$s"><span>' . esc_html__( 'Show Details', 'building-architect' ) . '</span><span class="hidden">' . esc_html__( 'Hide Details', 'building-architect' ) . '</span>.</a>'; 3521 3683 } 3522 3684 } … … 3578 3740 $update_actions['dashboard'] = sprintf( 3579 3741 esc_html( $this->tgmpa->strings['complete'] ), 3580 '<a href="' . esc_url( self_admin_url() ) . '">' . esc_html __( 'Return to the Dashboard', 'building-architect') . '</a>'3742 '<a href="' . esc_url( self_admin_url() ) . '">' . esc_html( $this->tgmpa->strings['dashboard'] ) . '</a>' 3581 3743 ); 3582 3744 } else { … … 3721 3883 */ 3722 3884 protected static function emulate_filter_bool( $value ) { 3723 // @codingStandardsIgnoreStart3885 // phpcs:disable WordPress.Arrays.ArrayDeclarationSpacing.ArrayItemNoNewLine 3724 3886 static $true = array( 3725 3887 '1', … … 3736 3898 'off', 'Off', 'OFF', 3737 3899 ); 3738 // @codingStandardsIgnoreEnd3900 // phpcs:enable 3739 3901 3740 3902 if ( is_bool( $value ) ) { … … 3758 3920 } 3759 3921 } // End of class TGMPA_Utils 3760 } // End of class_exists wrapper3922 } -
building-architect/1.2.1/patterns/footer-columns.php
r299821 r311637 105 105 <!-- wp:group {"className":"rights-box","style":{"border":{"top":{"color":"#ffffff73","width":"1px"}},"spacing":{"padding":{"top":"var:preset|spacing|40"},"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"center","justifyContent":"space-between"}} --> 106 106 <div class="wp-block-group rights-box wow bounceInUp" style="border-top-color:#ffffff73;border-top-width:1px;padding-top:var(--wp--preset--spacing--40)"><!-- wp:paragraph {"align":"left","style":{"typography":{"fontSize":"14px"},"spacing":{"margin":{"top":"0px","right":"0px","bottom":"0px","left":"0px"},"padding":{"top":"0","right":"0","bottom":"0","left":"0"}},"elements":{"link":{"color":{"text":"var:preset|color|white"}}}},"textColor":"white"} --> 107 <p class="has-text-align-left has-white-color has-text-color has-link-color" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:14px"><a rel="noreferrer noopener" href="https://www.cretathemes.com/products/free-architect-wordpress-theme"><?php esc_html_e('Building Architect','building-architect'); ?></a>. <?php esc_html_e('All Rights Reserved.','building-architect'); ?></p>107 <p class="has-text-align-left has-white-color has-text-color has-link-color" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-size:14px"><a class="copyright-text" target="_blank" rel="noreferrer noopener" href="https://www.cretathemes.com/products/free-architect-wordpress-theme"><?php esc_html_e('Building Architect','building-architect'); ?></a>. <?php esc_html_e('All Rights Reserved.','building-architect'); ?></p> 108 108 <!-- /wp:paragraph --> 109 109 -
building-architect/1.2.1/readme.txt
r307656 r311637 14 14 == Changelog == 15 15 16 = 1.2.0 (Released: January, 2025) = 16 = 1.2.1 (Released: January, 2026) = 17 * Added blog listing template. 18 * Added animation on woocommerce pages. 19 * Added css on shop page. 20 * Remove padding in activation notice all buttons. 21 * Added animation on single post. 22 * Resolved plugin tgm error. 23 24 = 1.2.0 (Released: January, 2026) = 17 25 * Fixed minor bugs. 18 26 -
building-architect/1.2.1/style.css
r307656 r311637 8 8 Tested up to: 6.9 9 9 Requires PHP: 5.6 10 Version: 1.2. 010 Version: 1.2.1 11 11 License: GNU General Public License v2 or later 12 12 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 4116 4116 } 4117 4117 /*homepage slider css end*/ 4118 4119 4118 /* post page btn css */ 4120 4119 .taxonomy-category a { … … 4141 4140 align-items: center; 4142 4141 gap: 6px; 4143 background: #32373c;4144 color: #fff ;4142 background: var(--wp--preset--color--primary) !important; 4143 color: #fff !important; 4145 4144 height: auto; 4146 padding: 0.5em 0.5em 0.5em 2em;4145 padding: 0.5em 1em 0.5em 2em; 4147 4146 } 4148 4147 .wc-block-components-checkout-return-to-cart-button svg { 4149 left: 4px !important; 4150 } 4151 .wc-block-checkout__actions .wc-block-checkout__actions_row :hover { 4152 color: #ffffff !important; 4153 padding-left: 25px; 4148 left: 6px !important; 4149 } 4150 .wc-block-checkout__actions .wc-block-checkout__actions_row { 4151 font-size: inherit !important; 4152 } 4153 .wc-block-components-checkout-return-to-cart-button:hover { 4154 background-color: var(--wp--preset--color--secondary) !important; 4155 color: #ffffff !important; 4156 } 4157 .wc-block-components-checkout-place-order-button { 4158 background: var(--wp--preset--color--primary) !important; 4159 } 4160 .wc-block-components-checkout-place-order-button:hover { 4161 background-color: var(--wp--preset--color--secondary) !important; 4162 color: #ffffff !important; 4163 } 4164 .woocommerce-cart .button.wp-element-button:hover,.woocommerce button.button:not(:disabled):hover { 4165 background-color: var(--wp--preset--color--secondary) !important; 4166 color: #ffffff !important; 4167 } 4168 a.button.add_to_cart_button:hover, 4169 a.wp-element-button.add_to_cart_button:hover { 4170 background-color: var(--wp--preset--color--secondary) !important; 4171 color: #ffffff !important; 4172 border: none !important; 4154 4173 } 4155 4174 .wc-block-grid__product { … … 4237 4256 /* shop page css */ 4238 4257 .woocommerce-shop .woocommerce-notices-wrapper.woocommerce .products ul,.woocommerce ul.products { 4239 max-width: 80% !important;4258 max-width: 90% !important; 4240 4259 align-items: center !important; 4241 4260 margin: auto; … … 4416 4435 text-align: center; 4417 4436 margin: initial; 4418 width: fit-content;4437 width: max-content; 4419 4438 } 4420 4439 .wc-proceed-to-checkout .checkout-button { … … 4449 4468 } 4450 4469 } 4470 .woocommerce ul.products li.first, .woocommerce-page ul.products li { 4471 border: 1px solid #b3aaaa !important; 4472 padding: 10px !important; 4473 } 4474 @media (max-width: 1200px) and (min-width: 991px) { 4475 ul.products li.product .add_to_cart_button { 4476 padding: 12px 10px !important; 4477 } 4478 .woocommerce .added_to_cart.wc-forward { 4479 margin-top: 5px; 4480 font-size: 16px; 4481 padding: 12px 15px !important; 4482 } 4483 } 4484 .woocommerce button.button:disabled[disabled] { 4485 opacity: 1 !important; 4486 } 4487 /* animation woocommerce pages */ 4488 .woocommerce ul.products li.product{ 4489 animation: zoomInUp 0.6s ease-out both; 4490 overflow: hidden; 4491 animation-delay: 0.8s; 4492 } 4493 @keyframes zoomInUp { 4494 0% { 4495 opacity: 0; 4496 transform: scale(0.5) translateY(100px); 4497 } 4498 60% { 4499 opacity: 1; 4500 transform: scale(1.05) translateY(-10px); 4501 } 4502 100% { 4503 transform: scale(1) translateY(0); 4504 } 4505 } 4506 /* single post page animation */ 4507 .entry-content,.wp-block-comments,.single-post-meta,.taxonomy-category { 4508 animation: zoomInUp 0.6s ease-out both; 4509 overflow: hidden; 4510 animation-delay: 0.8s; 4511 } 4512 @keyframes zoomInUp { 4513 0% { 4514 opacity: 0; 4515 transform: scale(0.5) translateY(100px); 4516 } 4517 60% { 4518 opacity: 1; 4519 transform: scale(1.05) translateY(-10px); 4520 } 4521 100% { 4522 transform: scale(1) translateY(0); 4523 } 4524 } 4525 /* Added css */ 4526 .woocommerce .woocommerce-breadcrumb { 4527 padding-left: 85px !important; 4528 width: 90% !important; 4529 } 4530 .woocommerce-products-header__title.page-title { 4531 padding-left: 80px !important; 4532 width: 90% !important; 4533 } 4534 .woocommerce .woocommerce-result-count { 4535 padding-left: 80px; 4536 width: 90% !important; 4537 } 4538 .woocommerce .woocommerce-ordering { 4539 padding-right: 89px; 4540 } 4541 @media (max-width: 1400px) and (min-width: 991px) { 4542 .woocommerce .woocommerce-breadcrumb, 4543 .woocommerce-products-header__title.page-title, 4544 .woocommerce .woocommerce-result-count { 4545 padding-left: 60px !important; 4546 width: 100% !important; 4547 } 4548 .woocommerce .woocommerce-ordering { 4549 padding-right: 70px; 4550 } 4551 } 4552 @media (max-width: 990px) and (min-width: 768px) { 4553 .woocommerce .woocommerce-breadcrumb, 4554 .woocommerce-products-header__title.page-title, 4555 .woocommerce .woocommerce-result-count { 4556 padding-left: 40px !important; 4557 width: 100% !important; 4558 } 4559 .woocommerce .woocommerce-ordering { 4560 padding-right: 55px; 4561 } 4562 } 4563 @media (max-width: 767px){ 4564 .woocommerce .woocommerce-breadcrumb, 4565 .woocommerce-products-header__title.page-title, 4566 .woocommerce .woocommerce-result-count { 4567 padding-left: 50px !important; 4568 width: 100% !important; 4569 } 4570 .woocommerce .woocommerce-ordering { 4571 padding-right: 70px; 4572 } 4573 } 4574 @media (max-width: 425px) and (min-width: 320px){ 4575 .woocommerce .woocommerce-ordering { 4576 padding-right: 30px !important; 4577 } 4578 } 4579 @media (max-width: 768px) and (min-width: 320px) { 4580 .single-product.woocommerce .woocommerce-breadcrumb{ 4581 padding-left: 20px !important; 4582 font-size: 14px; 4583 } 4584 } 4585 /* my account page css */ 4586 .woocommerce-account .wp-site-blocks main .woocommerce { 4587 max-width: 90% !important; 4588 margin: 0 auto; 4589 } 4590 4591 4592
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)