Files
szkoleniauryzaj.pl/wp-content/plugins/youtube-feed-pro/inc/Builder/Controls/SB_Customview_Control.php
2026-04-26 23:47:49 +02:00

235 lines
8.5 KiB
PHP

<?php
/**
* Customizer Builder
* Custom View
* This control will used for custom HTMlL controls like (source, feed type...)
* @since 2.0
*/
namespace SmashBalloon\YouTubeFeed\Builder\Controls;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
class SB_Customview_Control extends SB_Controls_Base {
/**
* Get control type.
*
* Getting the Control Type
*
* @since 2.0
* @access public
*
* @return string
*/
public function get_type() {
return 'customview';
}
/**
* Output Control
*
*
* @since 2.0
* @access public
*/
public function get_control_output( $controlEditingTypeModel ) {
$this->get_control_sources_output( $controlEditingTypeModel );
$this->get_control_shoppable_disabled_output( $controlEditingTypeModel );
$this->get_control_shoppable_enabled_output( $controlEditingTypeModel );
$this->get_control_shoppable_selected_post_output( $controlEditingTypeModel );
$this->get_control_moderation_mode_output( $controlEditingTypeModel );
}
/**
* Shoppable Feed Disabled Output Control
*
*
* @since 2.0
* @access public
*/
public function get_control_shoppable_disabled_output( $controlEditingTypeModel ) {
?>
<div class="sb-control-shoppbale-disabled-ctn sb-control-imginfo-ctn" v-if="control.viewId == 'shoppabledisabled'">
<div class="sb-control-imginfo-elem sby-yt-fs">
<div class="sb-control-imginfo-icon sby-yt-fs" v-html="svgIcons['shoppableDisabled']"></div>
<div class="sb-control-imginfo-text sby-yt-fs" data-textalign="left">
<strong class="sb-bold sb-dark-text " v-html="customizeScreensText.shoppableFeedScreen.heading1"></strong>
<span v-html="customizeScreensText.shoppableFeedScreen.description1"></span>
</div>
</div>
</div>
<?php
}
/**
* Shoppable Feed Enabled Output Control
*
*
* @since 2.0
* @access public
*/
public function get_control_shoppable_enabled_output( $controlEditingTypeModel ) {
?>
<div class="sb-control-shoppbale-enbaled-ctn sb-control-imginfo-ctn" v-if="control.viewId == 'shoppableenabled'">
<div class="sb-control-imginfo-elem sby-yt-fs">
<div class="sb-control-imginfo-icon sby-yt-fs" v-html="svgIcons['shoppableEnabled']"></div>
<div class="sb-control-imginfo-text sby-yt-fs" data-textalign="center">
<strong class="sb-bold sb-dark-text " v-html="customizeScreensText.shoppableFeedScreen.heading2"></strong>
</div>
</div>
</div>
<?php
}
/**
* Shoppable Feed Selected Post
*
*
* @since 2.0
* @access public
*/
public function get_control_shoppable_selected_post_output( $controlEditingTypeModel ) {
?>
<div class="sb-control-shoppbale-selectedpost-ctn" v-if="control.viewId == 'shoppableselectedpost' && shoppableFeed.postId != null">
<strong v-html="genericText.selectedPost"></strong>
<div class="sb-control-selectedpost-info sby-yt-fs">
<img :src="shoppableFeed.postMedia" alt="Selected Shoppable">
<span v-html="shoppableFeed.postCaption"></span>
</div>
<div class="sb-control-selectedpost-input sby-yt-fs">
<span class="sby-yt-fs" v-html="genericText.productLink"></span>
<input type="text" class="sb-control-input sby-yt-fs" v-model="shoppableFeed.postShoppableUrl" :placeholder="genericText.enterProductLink">
</div>
<div class="sb-control-selectedpost-btns sby-yt-fs">
<button class="sb-shoppable-selectedpost-btn sbi-btn-grey" @click.prevent.default="addPostShoppableFeed()">
<div v-html="svgIcons['checkmark']"></div>
<span v-html="genericText.add"></span>
</button>
<button class="sb-shoppable-selectedpost-btn sbi-btn-grey" @click.prevent.default="cancelPostShoppableFeed()">
<span v-html="genericText.cancel"></span>
</button>
</div>
</div>
<?php
}
/**
* Sources Output Control
*
*
* @since 2.0
* @access public
*
* @return HTML
*/
public function get_control_sources_output( $controlEditingTypeModel ) {
?>
<div class="sb-control-feedtype-ctn" v-if="control.viewId == 'sources'">
<div class="sb-control-feedtype-item sby-yt-fs" v-for="(feedType, feedTypeID) in selectSourceScreen.multipleTypes" v-if="checkMultipleFeedTypeActiveCustomizer(feedTypeID)">
<div class="sb-control-elem-label-title sby-yt-fs">
<div class="sb-control-elem-heading sb-small-p sb-dark-text" v-html="feedType.heading"></div>
<div class="sb-control-elem-tltp" @mouseover.prevent.default="toggleElementTooltip(feedType.description, 'show', 'center' )" @mouseleave.prevent.default="toggleElementTooltip('', 'hide')">
<div class="sb-control-elem-tltp-icon" v-html="svgIcons['info']"></div>
</div>
</div>
<div class="sb-control-feedtype-list sby-yt-fs">
<div class="sb-control-feedtype-list-item" v-for="selectedSource in returnSelectedSourcesByTypeCustomizer(feedTypeID)">
<div class="sb-control-feedtype-list-item-icon" v-html="feedTypeID == 'hashtag' ? svgIcons['hashtag'] : svgIcons['user']"></div>
<span v-html="feedTypeID == 'hashtag' ? selectedSource : selectedSource.username"></span>
</div>
</div>
</div>
<button class="sb-control-action-button sb-btn sb-btn-grey sby-yt-fs" @click.prevent.default="openFeedTypesPopupCustomizer()">
<div v-html="svgIcons['edit']"></div>
<span>{{genericText.editSources}}</span>
</button>
</div>
<?php
}
/**
* Moderation Mode Ouptut
*
*
* @since 2.0
* @access public
*/
public function get_control_moderation_mode_output( $controlEditingTypeModel ) {
?>
<div class="sb-control-moderationmode-ctn" v-if="control.viewId == 'moderationmode'">
<button class="sb-control-moderationmode-btn sb-btn sb-btn-right-icon sb-btn-grey sby-yt-fs" v-if="!viewsActive.moderationMode" @click.prevent.default="openModerationMode()">
<div class="sb-btn-right-txt">
<div v-html="svgIcons['eye1']"></div>
<span>{{genericText.moderateFeed}}</span>
</div>
<div class="sb-btn-right-chevron"></div>
</button>
<div class="sb-control-moderationmode-elements sby-yt-fs" v-if="viewsActive.moderationMode">
<div class="sb-control-switcher-ctn" :data-active="<?php echo $controlEditingTypeModel; ?>[control.switcher.id] === control.switcher.options.enabled" @click.prevent.default="changeSwitcherSettingValue(control.switcher.id, control.switcher.options.enabled, control.switcher.options.disabled, control.switcher.ajaxAction ? control.switcher.ajaxAction : false)">
<div class="sb-control-switcher sb-tr-2"></div>
<div class="sb-control-label" v-if="control.switcher.label" :data-title="control.switcher.labelStrong ? 'true' : false">{{control.switcher.label}}</div>
</div>
<div v-if="<?php echo $controlEditingTypeModel; ?>[control.switcher.id] == control.switcher.options.enabled">
<div class="sb-control-moderatiomode-selement sby-yt-fs sb-control-before-brd">
<div class="sb-control-elem-label-title sby-yt-fs">
<div class="sb-control-elem-heading sb-small-p sb-dark-text">{{genericText.moderationMode}}</div>
</div>
<div class="sb-control-toggle-set-ctn sb-control-toggle-set-desc-ctn sby-yt-fs">
<div class="sb-control-toggle-elm sby-yt-fs sb-tr-2" v-for="(moderationItem, moderationId) in control.moderationTypes " @click.prevent.default="switchModerationListType(moderationId)" :data-active="moderationSettings.list_type_selected == moderationId">
<div class="sb-control-toggle-deco sb-tr-1"></div>
<div class="sb-control-content">
<div class="sb-control-label">{{moderationItem.label}}</div>
<div class="sb-control-toggle-description">{{moderationItem.description}}</div>
</div>
</div>
</div>
</div>
<div class="sb-control-moderatiomode-selement sby-yt-fs sb-control-before-brd">
<div class="sb-control-elem-label-title sby-yt-fs">
<div class="sb-control-elem-heading sb-small-p sb-dark-text">{{genericText.moderationModeEnterPostId}}</div>
</div>
<div class="sby-yt-fs">
<textarea class="sb-control-input-textrea sby-yt-fs" v-model="customBlockModerationlistTemp" :placeholder="genericText.moderationModeTextareaPlaceholder"></textarea>
</div>
</div>
<div class="sb-control-moderationmode-action-btns sb-control-before-brd sby-yt-fs">
<button class="sb-btn sb-btn-blue sby-yt-fs" @click.prevent.default="saveModerationSettings()">
<div class="sbi-fb-icon-success"></div>
{{genericText.moderateFeedSaveExit}}
</button>
<button class="sb-btn sb-btn-grey sby-yt-fs" @click.prevent.default="activateView('moderationMode'); moderationShoppableMode = false;">
<div class="sbi-fb-icon-cancel"></div>
{{genericText.cancel}}
</button>
</div>
</div>
</div>
</div>
<?php
}
}