Labeling for gallery

parent c9db4573
...@@ -2,6 +2,95 @@ ...@@ -2,6 +2,95 @@
namespace wp_SexHackMe; namespace wp_SexHackMe;
if(!class_exists('SexHackVideoGallery')) { if(!class_exists('SexHackVideoGallery')) {
// Creating the widget
class sexhack_gallery_widget extends \WP_Widget {
function __construct()
{
parent::__construct(
// Base ID of your widget
'sexhack_gallery_widget',
// Widget name will appear in UI
__('SexHack Gallery', 'sexhack_widget_domain'),
// Widget description
array( 'description' => __( 'Add SexHack Gallery links', 'sexhack_widget_domain' ), )
);
}
// Creating widget front-end
public function widget( $args, $instance )
{
global $post;
$pattern = get_shortcode_regex();
if ( preg_match_all( '/'. $pattern .'/s', $post->post_content, $matches )
&& array_key_exists( 2, $matches )
&& in_array( 'sexgallery', $matches[2] )
)
{
$current_url = get_permalink(get_the_ID());
$title = apply_filters( 'widget_title', $instance['title'] );
// before and after widget arguments are defined by themes
echo $args['before_widget'];
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];
?>
<ul>
<li><a href="">All videos</a></li>
<li><a href="?sexhack_vselect=public">Public videos</a></li>
<li><a href="?sexhack_vselect=members">Members videos</a></li>
<li><a href="?sexhack_vselect=premium">Premium videos</a></li>
<li><a href="?sexhack_vselect=preview">Previews videos</a></li>
</ul>
<?php
echo $args['after_widget'];
}
}
// Widget Backend
public function form( $instance )
{
if ( isset( $instance[ 'title' ] ) )
{
$title = $instance[ 'title' ];
}
else {
$title = __( 'Filter gallery', 'sexhack_widget_domain' );
}
// Widget admin form
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<?php
}
// Updating widget replacing old instances with new
public function update( $new_instance, $old_instance )
{
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
// Class wpb_widget ends here
}
// Register and load the widget
function gallery_load_widget() {
register_widget( 'wp_SexHackMe\sexhack_gallery_widget' );
}
add_action( 'widgets_init', 'wp_SexHackMe\gallery_load_widget' );
class SexHackVideoGallery class SexHackVideoGallery
{ {
...@@ -18,6 +107,7 @@ if(!class_exists('SexHackVideoGallery')) { ...@@ -18,6 +107,7 @@ if(!class_exists('SexHackVideoGallery')) {
add_action('init', array($this, "register_sexhack_video_post_type")); add_action('init', array($this, "register_sexhack_video_post_type"));
//add_filter('page_template', array($this, 'sexhack_video_template')); //add_filter('page_template', array($this, 'sexhack_video_template'));
add_filter('archive_template', array($this, 'sexhack_video_template')); add_filter('archive_template', array($this, 'sexhack_video_template'));
add_action('pre_get_posts', array($this, 'fix_video_query'), 1, 1); add_action('pre_get_posts', array($this, 'fix_video_query'), 1, 1);
sexhack_log('SexHackVideoGallery() Instanced'); sexhack_log('SexHackVideoGallery() Instanced');
...@@ -27,6 +117,7 @@ if(!class_exists('SexHackVideoGallery')) { ...@@ -27,6 +117,7 @@ if(!class_exists('SexHackVideoGallery')) {
public function check_rewrite($rules) public function check_rewrite($rules)
{ {
// TODO Check if our rules are present and call flush if not // TODO Check if our rules are present and call flush if not
// (double check if already done in the $this->register_sexhack_video_post_type and it's enough)
sexhack_log($rules); sexhack_log($rules);
return $rules; return $rules;
} }
...@@ -119,10 +210,10 @@ if(!class_exists('SexHackVideoGallery')) { ...@@ -119,10 +210,10 @@ if(!class_exists('SexHackVideoGallery')) {
} }
public function getProducts() { public function getProducts($vcat=false) {
if(!$this->productlist) if(!$this->productlist)
$this->productlist = $this->_getProducts(); $this->productlist = $this->_getProducts($vcat);
return $this->productlist; return $this->productlist;
...@@ -130,9 +221,23 @@ if(!class_exists('SexHackVideoGallery')) { ...@@ -130,9 +221,23 @@ if(!class_exists('SexHackVideoGallery')) {
// TODO: add pagination support // TODO: add pagination support
public function _getProducts() public function _getProducts($vcat=false)
{ {
$products = new \WP_Query( array(
$filter=false;
if(isset($_GET['sexhack_vselect']))
{
switch($_GET['sexhack_vselect'])
{
case 'premium':
case 'members':
case 'public':
case 'preview':
$filter=$_GET['sexhack_vselect'];
break;
}
}
$queryarr = array(
/* /*
* We're limiting the results to 100 products, change this as you * We're limiting the results to 100 products, change this as you
...@@ -149,27 +254,48 @@ if(!class_exists('SexHackVideoGallery')) { ...@@ -149,27 +254,48 @@ if(!class_exists('SexHackVideoGallery')) {
'terms' => array( 'exclude-from-catalog' ), 'terms' => array( 'exclude-from-catalog' ),
'field' => 'name', 'field' => 'name',
'operator' => 'NOT IN', 'operator' => 'NOT IN',
) ), ) )
//'meta_query' => array( array( //'meta_query' => array( array(
// 'value' => 'hls_public', // 'value' => 'hls_public',
// 'compare' => 'like' // 'compare' => 'like'
//) ), //) ),
) ); );
if($filter)
{
if($filter=="preview") {
$queryarr['meta_query']['relation'] = 'OR';
$queryarr['meta_query'][] = array(
'value' => 'video_preview',
'compare' => 'like'
);
$queryarr['meta_query'][] = array(
'value' => 'hls_preview',
'compare' => 'like'
);
} else {
$queryarr['meta_query'] = array( array(
'value' => 'hls_'.$filter,
'compare' => 'like'
)
);
}
}
$products = new \WP_Query($queryarr);
//sexhack_log(var_dump($products)); //sexhack_log(var_dump($products));
return $products; return $products;
} }
public function sexgallery_shortcode($attr, $cont) public function sexgallery_shortcode($attr, $cont)
{ {
global $post; global $post;
extract( shortcode_atts(array( extract( shortcode_atts(array(
"category" => "free", "category" => "all",
), $attr)); ), $attr));
$html = "<div class='sexhack_gallery'>"; //<h3>SexHack VideoGallery</h3>"; $html = "<div class='sexhack_gallery'>"; //<h3>SexHack VideoGallery</h3>";
$html .= '<ul class="products columns-4">'; $html .= '<ul class="products columns-4">';
$products = $this->getProducts(); $products = $this->getProducts();
while( $products->have_posts() ) { while( $products->have_posts() ) {
$products->the_post(); $products->the_post();
...@@ -186,20 +312,47 @@ if(!class_exists('SexHackVideoGallery')) { ...@@ -186,20 +312,47 @@ if(!class_exists('SexHackVideoGallery')) {
$prod = wc_get_product($id); $prod = wc_get_product($id);
$image = get_the_post_thumbnail($id, "medium", array("class" => "sexhack_thumbnail")); //array("class" => "alignleft sexhack_thumbnail")); $image = get_the_post_thumbnail($id, "medium", array("class" => "sexhack_thumbnail")); //array("class" => "alignleft sexhack_thumbnail"));
$hls = $prod->get_attribute("hls_public");
$hls_member = $prod->get_attribute("hls_members");
$hls_premium = $prod->get_attribute("hls_premium");
$video_preview = $prod->get_attribute("video_preview");
$gif_preview = $prod->get_attribute("gif_preview");
$vr_premium = $prod->get_attribute("vr_premium");
$vr_member = $prod->get_attribute("vr_members");
$vr_public = $prod->get_attribute("vr_public");
$vr_preview = $prod->get_attribute("vr_preview");
$gif = $prod->get_attribute("gif_thumbnail"); $gif = $prod->get_attribute("gif_thumbnail");
if(!$gif) $gif = $prod->get_attribute("gif_preview"); if(!$gif) $gif = $gif_preview;
if($gif) $image .= "<img src='$gif' class='alignleft sexhack_thumb_hover' loading='lazy' />"; if($gif) $image .= "<img src='$gif' class='alignleft sexhack_thumb_hover' loading='lazy' />";
$html = '<li class="product type-product sexhack_thumbli">'; $html = '<li class="product type-product sexhack_thumbli">';
$vurl = str_replace("/product/", "/v/", esc_url( get_the_permalink() )); $vurl = str_replace("/product/", "/v/", esc_url( get_the_permalink() ));
$vtitle = esc_html( get_the_title() ); $vtitle = esc_html( get_the_title() );
$vtags=array();
$downtag ='';
if((!$hls) AND (!$hls_member) AND (!$hls_premium) AND ($video_preview)) $vtags[] = '<label class="sexhack_vtag sexhack_preview" style="*LEFT*">preview</label>';
if($hls) $vtags[] = '<label class="sexhack_vtag sexhack_public" style="*LEFT*">public</label>';
if($hls_member) $vtags[] = '<label class="sexhack_vtag sexhack_members" style="*LEFT*">members</label>';
if($hls_premium) $vtags[] = '<label class="sexhack_vtag sexhack_premium" style="*LEFT*">premium</label>';
if(count($prod->get_downloads()) > 0) $html .= '<label class="sexhack_vtag sexhack_download"">download</label>';
if(($vr_premium) OR ($vr_member) OR ($vr_public) OR ($vr_preview)) $html .= '<label class="sexhack_vtag sexhack_VR"">VR/3D</label>';
$html .= "<a href=\"$vurl\" class=\"woocommerce-LoopProduct-link woocommerce-loop-product__link\">";
$html .= "<div class='sexhack_thumb_cont'>".$image."</div>";
foreach($vtags as $vid => $vtag)
{
$left = intval($vid)*12;
$vtag = str_replace("*LEFT*", "left:-".$left."px", $vtag);
$html .= $vtag;
}
$html .= "<a href=\"$vurl\" class=\"woocommerce-LoopProduct-link woocommerce-loop-product__link\">"; $html .= "<h3 class=\"sexhack_gallery_title woocommerce-loop-product__title\" alt='".$vtitle."'>".trim_text_preview($vtitle, 60, false)."</h3>";
$html .= "<div class='sexhack_thumb_cont'>".$image."</div>";
// XXX Add the "hover" text preview, in "alt"?
$html .= "<h2 class=\"woocommerce-loop-product__title\" alt='".$vtitle."'>".trim_text_preview($vtitle, 120)."</h2>";
$html .= "</a></li>"; $html .= "</a></li>";
return $html; return $html;
......
...@@ -10,10 +10,18 @@ if(!class_exists('StorefrontMoveHeaderCart')) { ...@@ -10,10 +10,18 @@ if(!class_exists('StorefrontMoveHeaderCart')) {
add_action( 'init', array($this, 'remove_header_cart' )); add_action( 'init', array($this, 'remove_header_cart' ));
add_filter('storefront_credit_link', false); add_filter('storefront_credit_link', false);
add_action('wp_enqueue_scripts', array( $this, 'add_css' ), 200); add_action('wp_enqueue_scripts', array( $this, 'add_css' ), 200);
//add_action('storefront_footer', array($this, 'disclaimer')); // XXX I don't like positioning this way. Fix in CSS or sobstitute footer theme file?
add_action( 'storefront_header', array($this, 'add_header_cart'), 40); add_action( 'storefront_header', array($this, 'add_header_cart'), 40);
} }
public function disclaimer()
{ ?>
<div class="site-info">
All pictures and videos are property of the respective models. Please copy them for personal use but do not republish any without permission.
</div>
<?php
}
public function add_css() public function add_css()
{ {
wp_enqueue_style ('sexhackme_header', plugin_dir_url(__DIR__).'css/sexhackme_header.css'); wp_enqueue_style ('sexhackme_header', plugin_dir_url(__DIR__).'css/sexhackme_header.css');
......
.sexhack_gallery_title {
top: -30px;
}
.sexhack_gallery_thumbnail { .sexhack_gallery_thumbnail {
padding: 10px 10px 10px 10px; padding: 10px 10px 10px 10px;
} }
ul.products li.sexhack_thumbli {
border: 2px solid #253e50;
border-radius:15px;
margin-bottom: 1.6em;
}
.sexhack_vtag {
position:relative;
float:left;
border-radius:20px;
padding: 0 10px 0 10px;
text-align: center;
font-size: 9px;
color:white;
top:-30px;
}
.sexhack_vtag:hover {
z-index:100;
}
.sexhack_download {
position: absolute;
top:1px;
left:-15px;
z-index:100;
border-bottom:-20px;
background-color:#4a235a;
}
.sexhack_public {
background-color:#145a32;
}
.sexhack_premium {
background-color: #78281f;
}
.sexhack_members {
background-color: #154360;
}
.sexhack_preview {
background-color: #283747;
}
@media screen and (max-width: 767px) { @media screen and (max-width: 767px) {
.sexhack_gallery_thumbnail { .sexhack_gallery_thumbnail {
...@@ -30,9 +79,10 @@ ...@@ -30,9 +79,10 @@
/* This to solve the different title lenght, combine with right trim and popup full title maybe, /* This to solve the different title lenght, combine with right trim and popup full title maybe,
and maybe not here but adding another container. and maybe not here but adding another container.
I should also re-check the sexhack class naming... I should also re-check the sexhack class naming...
//height: 200px; */
//height: 210px;
height: fit-content;
//overflow: hidden; //overflow: hidden;
*/
} }
.sexhack_gallery_row { .sexhack_gallery_row {
...@@ -57,6 +107,8 @@ ...@@ -57,6 +107,8 @@
position: relative; position: relative;
max-width: 100%; max-width: 100%;
display: block; display: block;
//border: 2px solid red;
//border-radius: 6px;
} }
.sexhack_thumb_cont .sexhack_thumb_hover { .sexhack_thumb_cont .sexhack_thumb_hover {
position: absolute; position: absolute;
......
...@@ -14,7 +14,7 @@ function sexhack_getURL($url) ...@@ -14,7 +14,7 @@ function sexhack_getURL($url)
} }
function trim_text_preview($text, $len=340) function trim_text_preview($text, $len=340, $fill=false)
{ {
$min="10"; $min="10";
if($len < $min) $len=$min; if($len < $min) $len=$min;
...@@ -22,7 +22,15 @@ function trim_text_preview($text, $len=340) ...@@ -22,7 +22,15 @@ function trim_text_preview($text, $len=340)
{ {
$offset = ($len - 3) - strlen($text); $offset = ($len - 3) - strlen($text);
$text = substr($text, 0, strrpos($text, ' ', $offset)) . '...'; $text = substr($text, 0, strrpos($text, ' ', $offset)) . '...';
} }
if($fill)
{
$start=strlen($text);
while($start < $len+1) {
$start++;
$text .= "&nbsp";
}
}
return $text; return $text;
} }
......
...@@ -33,11 +33,12 @@ get_header(); ?> ...@@ -33,11 +33,12 @@ get_header(); ?>
$hls_member = $prod->get_attribute("hls_members"); $hls_member = $prod->get_attribute("hls_members");
$hls_premium = $prod->get_attribute("hls_premium"); $hls_premium = $prod->get_attribute("hls_premium");
$video_preview = $prod->get_attribute("video_preview"); $video_preview = $prod->get_attribute("video_preview");
$gif_preview = $prod->get_attribute("gif_preview");
if(($hls) AND wp_SexHackMe\starts_with('/', $hls)) $hls = site_url().$hls; if(($hls) AND wp_SexHackMe\starts_with('/', $hls)) $hls = site_url().$hls;
if(($hls_member) AND wp_SexHackMe\starts_with('/', $hls_member)) $hls_member = site_url().$hls_member; if(($hls_member) AND wp_SexHackMe\starts_with('/', $hls_member)) $hls_member = site_url().$hls_member;
if(($hls_premium) AND wp_SexHackMe\starts_with('/', $hls_premium)) $hls_premium = site_url().$hls_premium; if(($hls_premium) AND wp_SexHackMe\starts_with('/', $hls_premium)) $hls_premium = site_url().$hls_premium;
if(($video_preview) AND wp_SexHackMe\starts_with('/', $video_preview)) $video_preview = site_url().$video_preview; if(($video_preview) AND wp_SexHackMe\starts_with('/', $video_preview)) $video_preview = site_url().$video_preview;
if (($hls) OR ($hls_member) OR ($hls_premium) OR ($video_preview)) : ?> //if (($hls) OR ($hls_member) OR ($hls_premium) OR ($video_preview) OR ($gif_preview)) : ?>
<article id="post-<?php echo get_the_ID();?>" class="post-<?php echo get_the_ID();?> product type-product"> <article id="post-<?php echo get_the_ID();?>" class="post-<?php echo get_the_ID();?> product type-product">
<header class="entry-header"> <header class="entry-header">
<h2 class="alpha entry-title sexhack_video_title"> <h2 class="alpha entry-title sexhack_video_title">
...@@ -48,44 +49,50 @@ get_header(); ?> ...@@ -48,44 +49,50 @@ get_header(); ?>
//$thumb = wp_get_attachment_image_src(get_post_thumbnail_id( get_the_ID(), 'full' )); //$thumb = wp_get_attachment_image_src(get_post_thumbnail_id( get_the_ID(), 'full' ));
$thumb = wp_get_attachment_url($prod->get_image_id()); $thumb = wp_get_attachment_url($prod->get_image_id());
$endhtml = '<br><hr>';
if($sexhack_pms->is_premium()) if($sexhack_pms->is_premium())
{ {
if($hls_premium) echo do_shortcode( "[sexhls url=\"".$hls_premium."\" posters=\"".$thumb."\"]" ); if($hls_premium) echo do_shortcode( "[sexhls url=\"".$hls_premium."\" posters=\"".$thumb."\"]" );
else if($hls_member) echo do_shortcode( "[sexhls url=\"".$hls_member."\" posters=\"".$thumb."\"]" ); else if($hls_member) echo do_shortcode( "[sexhls url=\"".$hls_member."\" posters=\"".$thumb."\"]" );
else if($hls) echo do_shortcode( "[sexhls url=\"".$hls."\" posters=\"".$thumb."\"]" ); else if($hls) echo do_shortcode( "[sexhls url=\"".$hls."\" posters=\"".$thumb."\"]" );
else if($video_preview) echo '<video src='."'$video_preview'".' controls autoplay muted playsinline loop poster="'.$thumb.'"></video>'; else if($video_preview) echo '<video src='."'$video_preview'".' controls autoplay muted playsinline loop poster="'.$thumb.'"></video>';
else echo "Error fetching the video..."; // This should never happen else if($gif_preview) echo '<img src="'.$gif_preview.'" loading="lazy"></img>';
else echo '<img src="'.$thumb.'" loading="lazy"></img>';
} }
elseif($sexhack_pms->is_member()) elseif($sexhack_pms->is_member())
{ {
if($hls_member) echo do_shortcode( "[sexhls url=\"".$hls_member."\" posters=\"".$thumb."\"]" ); if($hls_member) echo do_shortcode( "[sexhls url=\"".$hls_member."\" posters=\"".$thumb."\"]" );
else if($hls) echo do_shortcode( "[sexhls url=\"".$hls."\" posters=\"".$thumb."\"]" ); else if($hls) echo do_shortcode( "[sexhls url=\"".$hls."\" posters=\"".$thumb."\"]" );
else if($video_preview) echo '<video src='."'$video_preview'".' controls autoplay muted playsinline loop poster="'.$thumb.'"></video>'; else if($video_preview) echo '<video src='."'$video_preview'".' controls autoplay muted playsinline loop poster="'.$thumb.'"></video>';
else if($gif_preview) echo '<img src="'.$gif_preview.'" loading="lazy"></img>';
else echo '<img src="'.$thumb.'" loading="lazy"></img>'; else echo '<img src="'.$thumb.'" loading="lazy"></img>';
if($hls_premium) echo "<a href='/product-category/subscriptions/'>Premium version for subscribers available...</a>"; if($hls_premium) $endhtml .= "<h3><a href='/product-category/subscriptions/'>Premium full lenght version available here</a></h3>";
} }
else else
{ {
if($hls) echo do_shortcode( "[sexhls url=\"".$hls."\" posters=\"".$thumb."\"]" ); if($hls) echo do_shortcode( "[sexhls url=\"".$hls."\" posters=\"".$thumb."\"]" );
else if($video_preview) echo '<video src='."'$video_preview'".' controls autoplay muted playsinline loop poster="'.$thumb.'"></video>'; else if($video_preview) echo '<video src='."'$video_preview'".' controls autoplay muted playsinline loop poster="'.$thumb.'"></video>';
else if($gif_preview) echo '<img src="'.$gif_preview.'" loading="lazy"></img>';
else echo '<img src="'.$thumb.'" loading="lazy"></img>'; else echo '<img src="'.$thumb.'" loading="lazy"></img>';
if($hls_premium) echo "<a href='/product-category/subscriptions/'>Premium version for subscribers available...</a>"; if($hls_premium) $endhtml .= "<h3><a href='/product-category/subscriptions/'>Premium full lenght version available here</a></h3>";
if($hls_member) echo "<a href='/register'>Members version available...</a>"; if($hls_member) $endhtml .= "<h3><a href='/login'>Free members only version available! Sign up or Login to watch</a></h3>";
} }
?> ?>
</article>
<?php <?php
//else :
else : // get_template_part( 'content', get_post_format() ); // get_post_format() return empty for us
get_template_part( 'content', get_post_format() ); // get_post_format() return empty for us //endif;
endif; echo $endhtml;
?> ?>
<h3><a href="<?php echo get_the_permalink(); ?>">Download the full lenght hi-res version of this video</a><h3> <h3><a href="<?php echo get_the_permalink(); ?>">Download the full lenght hi-res version of this video</a><h3>
<br><hr>
<?php <?php
endwhile; endwhile;
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment