File: /var/www/vhosts/uyarreklam.com.tr/httpdocs/Component.php.tar
httpdocs/wp-content/plugins/woocommerce/src/Internal/Admin/ProductForm/Component.php 0000644 00000005547 15154675031 0033266 0 ustar 00 var/www/vhosts/uyarreklam.com.tr <?php
/**
* Abstract class for product form components.
*/
namespace Automattic\WooCommerce\Internal\Admin\ProductForm;
/**
* Component class.
*/
abstract class Component {
/**
* Product Component traits.
*/
use ComponentTrait;
/**
* Component additional arguments.
*
* @var array
*/
protected $additional_args;
/**
* Constructor
*
* @param string $id Component id.
* @param string $plugin_id Plugin id.
* @param array $additional_args Array containing additional arguments.
*/
public function __construct( $id, $plugin_id, $additional_args ) {
$this->id = $id;
$this->plugin_id = $plugin_id;
$this->additional_args = $additional_args;
}
/**
* Component arguments.
*
* @return array
*/
public function get_additional_args() {
return $this->additional_args;
}
/**
* Component arguments.
*
* @param string $key key of argument.
* @return mixed
*/
public function get_additional_argument( $key ) {
return self::get_argument_from_path( $this->additional_args, $key );
}
/**
* Get the component as JSON.
*
* @return array
*/
public function get_json() {
return array_merge(
array(
'id' => $this->get_id(),
'plugin_id' => $this->get_plugin_id(),
),
$this->get_additional_args()
);
}
/**
* Sorting function for product form component.
*
* @param Component $a Component a.
* @param Component $b Component b.
* @param array $sort_by key and order to sort by.
* @return int
*/
public static function sort( $a, $b, $sort_by = array() ) {
$key = $sort_by['key'];
$a_val = $a->get_additional_argument( $key );
$b_val = $b->get_additional_argument( $key );
if ( 'asc' === $sort_by['order'] ) {
return $a_val <=> $b_val;
} else {
return $b_val <=> $a_val;
}
}
/**
* Gets argument by dot notation path.
*
* @param array $arguments Arguments array.
* @param string $path Path for argument key.
* @param string $delimiter Path delimiter, default: '.'.
* @return mixed|null
*/
public static function get_argument_from_path( $arguments, $path, $delimiter = '.' ) {
$path_keys = explode( $delimiter, $path );
$num_keys = count( $path_keys );
$val = $arguments;
for ( $i = 0; $i < $num_keys; $i++ ) {
$key = $path_keys[ $i ];
if ( array_key_exists( $key, $val ) ) {
$val = $val[ $key ];
} else {
$val = null;
break;
}
}
return $val;
}
/**
* Array of required arguments.
*
* @var array
*/
protected $required_arguments = array();
/**
* Get missing arguments of args array.
*
* @param array $args field arguments.
* @return array
*/
public function get_missing_arguments( $args ) {
return array_values(
array_filter(
$this->required_arguments,
function( $arg_key ) use ( $args ) {
return null === self::get_argument_from_path( $args, $arg_key );
}
)
);
}
}
httpdocs/wp-content/plugins/all-in-one-seo-pack/app/Common/Standalone/BbPress/Component.php 0000644 00000005100 15154712261 0034161 0 ustar 00 var/www/vhosts/uyarreklam.com.tr <?php
namespace AIOSEO\Plugin\Common\Standalone\BbPress;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* bbPress Component class.
*
* @since 4.8.1
*/
class Component {
/**
* The current component template type.
*
* @since 4.8.1
*
* @var string|null
*/
public $templateType = null;
/**
* The topic single page data.
*
* @since 4.8.1
*
* @var array
*/
public $topic = [];
/**
* Class constructor.
*
* @since 4.8.1
*/
public function __construct() {
if ( is_admin() ) {
return;
}
$this->setTemplateType();
$this->setTopic();
}
/**
* Sets the template type.
*
* @since 4.8.1
*
* @return void
*/
private function setTemplateType() {
if ( function_exists( 'bbp_is_single_topic' ) && bbp_is_single_topic() ) {
$this->templateType = 'bbp-topic_single';
}
}
/**
* Sets the topic data.
*
* @since 4.8.1
*
* @return void
*/
private function setTopic() {
if ( 'bbp-topic_single' !== $this->templateType ) {
return;
}
if (
! function_exists( 'bbpress' ) ||
! function_exists( 'bbp_has_replies' ) ||
! bbp_has_replies()
) {
return;
}
$replyQuery = bbpress()->reply_query ?? null;
$replies = $replyQuery->posts ?? [];
$mainTopic = is_array( $replies ) && ! empty( $replies ) ? array_shift( $replies ) : null;
if ( $mainTopic instanceof \WP_Post ) {
$this->topic = [
'title' => $mainTopic->post_title,
'content' => $mainTopic->post_content,
'date' => $mainTopic->post_date,
'author' => get_the_author_meta( 'display_name', $mainTopic->post_author ),
];
$comments = [];
if ( ! empty( $replies ) ) {
foreach ( $replies as $reply ) {
if ( ! $reply instanceof \WP_Post ) {
continue;
}
$comments[ $reply->ID ] = [
'content' => $reply->post_content,
'date_recorded' => $reply->post_date,
'user_fullname' => get_the_author_meta( 'display_name', $reply->post_author ),
];
if ( ! empty( $reply->reply_to ) ) {
$comments[ $reply->reply_to ]['children'][] = $comments[ $reply->ID ];
unset( $comments[ $reply->ID ] );
}
}
$this->topic['comment'] = array_values( $comments );
}
return;
}
$this->resetComponent();
}
/**
* Resets some of the component properties.
*
* @since 4.8.1
*
* @return void
*/
private function resetComponent() {
$this->templateType = null;
}
/**
* Determines the schema type for the current component.
*
* @since 4.8.1
*
* @return void
*/
public function determineSchemaGraphsAndContext() {
}
} httpdocs/wp-content/plugins/all-in-one-seo-pack/app/Common/Standalone/BuddyPress/Component.php 0000644 00000030273 15155053603 0034715 0 ustar 00 var/www/vhosts/uyarreklam.com.tr <?php
namespace AIOSEO\Plugin\Common\Standalone\BuddyPress;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use AIOSEO\Plugin\Common\Integrations\BuddyPress as BuddyPressIntegration;
use AIOSEO\Plugin\Common\Schema\Graphs as CommonGraphs;
/**
* BuddyPress Component class.
*
* @since 4.7.6
*/
class Component {
/**
* The current component template type.
*
* @since 4.7.6
*
* @var string|null
*/
public $templateType = null;
/**
* The component ID.
*
* @since 4.7.6
*
* @var int
*/
public $id = 0;
/**
* The component author.
*
* @since 4.7.6
*
* @var \WP_User|false
*/
public $author = false;
/**
* The component date.
*
* @since 4.7.6
*
* @var int|false
*/
public $date = false;
/**
* The activity single page data.
*
* @since 4.7.6
*
* @var array
*/
public $activity = [];
/**
* The group single page data.
*
* @since 4.7.6
*
* @var array
*/
public $group = [];
/**
* The type of the group archive page.
*
* @since 4.7.6
*
* @var array
*/
public $groupType = [];
/**
* Class constructor.
*
* @since 4.7.6
*/
public function __construct() {
if ( is_admin() ) {
return;
}
$this->setTemplateType();
$this->setId();
$this->setAuthor();
$this->setDate();
$this->setActivity();
$this->setGroup();
$this->setGroupType();
}
/**
* Sets the template type.
*
* @since 4.7.6
*
* @return void
*/
private function setTemplateType() {
if ( BuddyPressIntegration::callFunc( 'bp_is_single_activity' ) ) {
$this->templateType = 'bp-activity_single';
} elseif ( BuddyPressIntegration::callFunc( 'bp_is_group' ) ) {
$this->templateType = 'bp-group_single';
} elseif (
BuddyPressIntegration::callFunc( 'bp_is_user' ) &&
false === BuddyPressIntegration::callFunc( 'bp_is_single_activity' )
) {
$this->templateType = 'bp-member_single';
} elseif ( BuddyPressIntegration::callFunc( 'bp_is_activity_directory' ) ) {
$this->templateType = 'bp-activity_archive';
} elseif ( BuddyPressIntegration::callFunc( 'bp_is_members_directory' ) ) {
$this->templateType = 'bp-member_archive';
} elseif ( BuddyPressIntegration::callFunc( 'bp_is_groups_directory' ) ) {
$this->templateType = 'bp-group_archive';
} elseif (
BuddyPressIntegration::callFunc( 'bp_is_current_action', 'feed' ) &&
BuddyPressIntegration::callFunc( 'bp_is_activity_component' )
) {
$this->templateType = 'bp-activity_feed';
}
}
/**
* Sets the component ID.
*
* @since 4.7.6
*
* @return void
*/
private function setId() {
switch ( $this->templateType ) {
case 'bp-activity_single':
$id = get_query_var( 'bp_member_action' );
break;
case 'bp-group_single':
$id = get_query_var( 'bp_group' );
break;
case 'bp-member_single':
$id = get_query_var( 'bp_member' );
break;
default:
$id = $this->id;
}
$this->id = $id;
}
/**
* Sets the component author.
*
* @since 4.7.6
*
* @return void
*/
private function setAuthor() {
switch ( $this->templateType ) {
case 'bp-activity_single':
if ( ! $this->activity ) {
$this->setActivity();
}
if ( $this->activity ) {
$this->author = get_user_by( 'id', $this->activity['user_id'] );
return;
}
break;
case 'bp-group_single':
if ( ! $this->group ) {
$this->setGroup();
}
if ( $this->group ) {
$this->author = get_user_by( 'id', $this->group['creator_id'] );
return;
}
break;
case 'bp-member_single':
$this->author = get_user_by( 'slug', $this->id );
return;
}
}
/**
* Sets the component date.
*
* @since 4.7.6
*
* @return void
*/
private function setDate() {
switch ( $this->templateType ) {
case 'bp-activity_single':
if ( ! $this->activity ) {
$this->setActivity();
}
$date = strtotime( $this->activity['date_recorded'] );
break;
case 'bp-group_single':
if ( ! $this->group ) {
$this->setGroup();
}
$date = strtotime( $this->group['date_created'] );
break;
default:
$date = $this->date;
}
$this->date = $date;
}
/**
* Sets the activity data.
*
* @since 4.7.6
*
* @return void
*/
private function setActivity() {
if ( 'bp-activity_single' !== $this->templateType ) {
return;
}
$activities = BuddyPressIntegration::callFunc( 'bp_activity_get_specific', [
'activity_ids' => [ $this->id ],
'display_comments' => true
] );
if ( ! empty( $activities['activities'] ) ) {
list( $activity ) = current( $activities );
$this->activity = (array) $activity;
// The `content_rendered` is AIOSEO specific.
$this->activity['content_rendered'] = $this->activity['content'] ?? '';
if ( ! empty( $this->activity['content'] ) ) {
$this->activity['content_rendered'] = apply_filters( 'bp_get_activity_content', $this->activity['content'] );
}
return;
}
$this->resetComponent();
}
/**
* Sets the group data.
*
* @since 4.7.6
*
* @return void
*/
private function setGroup() {
if ( 'bp-group_single' !== $this->templateType ) {
return;
}
$group = BuddyPressIntegration::callFunc( 'bp_get_group_by', 'slug', $this->id );
if ( ! empty( $group ) ) {
$this->group = (array) $group;
return;
}
$this->resetComponent();
}
/**
* Sets the group type.
*
* @since 4.7.6
*
* @return void
*/
private function setGroupType() {
if ( 'bp-group_archive' !== $this->templateType ) {
return;
}
$type = BuddyPressIntegration::callFunc( 'bp_get_current_group_directory_type' );
if ( ! $type ) {
return;
}
$term = get_term_by( 'slug', $type, 'bp_group_type' );
if ( ! $term ) {
return;
}
$meta = get_metadata( 'term', $term->term_id );
if ( ! $meta ) {
return;
}
$this->groupType = [
'singular' => $meta['bp_type_singular_name'][0] ?? '',
'plural' => $meta['bp_type_name'][0] ?? '',
];
}
/**
* Resets some of the component properties.
*
* @since 4.7.6
*
* @return void
*/
private function resetComponent() {
$this->templateType = null;
$this->id = 0;
}
/**
* Retrieves the SEO metadata value.
*
* @since 4.7.6
*
* @param string $which The SEO metadata to get.
* @return string The SEO metadata value.
*/
public function getMeta( $which ) {
list( $postType, $suffix ) = explode( '_', $this->templateType );
switch ( $which ) {
case 'title':
$meta = 'single' === $suffix
? aioseo()->meta->title->getPostTypeTitle( $postType )
: aioseo()->meta->title->getArchiveTitle( $postType );
$meta = aioseo()->meta->description->helpers->bpSanitize( $meta, $this->id );
break;
case 'description':
$meta = 'single' === $suffix
? aioseo()->meta->description->getPostTypeDescription( $postType )
: aioseo()->meta->description->getArchiveDescription( $postType );
$meta = aioseo()->meta->description->helpers->bpSanitize( $meta, $this->id );
break;
case 'keywords':
$meta = 'single' === $suffix
? ''
: aioseo()->meta->keywords->getArchiveKeywords( $postType );
$meta = aioseo()->meta->keywords->prepareKeywords( $meta );
break;
case 'robots':
$dynamicOptions = aioseo()->dynamicOptions->noConflict();
if ( 'single' === $suffix && $dynamicOptions->searchAppearance->postTypes->has( $postType ) ) {
aioseo()->meta->robots->globalValues( [ 'postTypes', $postType ], true );
} elseif ( $dynamicOptions->searchAppearance->archives->has( $postType ) ) {
aioseo()->meta->robots->globalValues( [ 'archives', $postType ], true );
}
$meta = aioseo()->meta->robots->metaHelper();
break;
case 'canonical':
$meta = '';
if ( 'single' === $suffix ) {
if ( 'bp-member' === $postType ) {
$meta = BuddyPressIntegration::getComponentSingleUrl( 'member', $this->author->ID );
} elseif ( 'bp-group' === $postType ) {
$meta = BuddyPressIntegration::getComponentSingleUrl( 'group', $this->group['id'] );
}
}
break;
default:
$meta = '';
}
return $meta;
}
/**
* Determines the schema type for the current component.
*
* @since 4.7.6
*
* @param \AIOSEO\Plugin\Common\Schema\Context $contextInstance The Context class instance.
* @return void
*/
public function determineSchemaGraphsAndContext( $contextInstance ) {
list( $postType ) = explode( '_', $this->templateType );
$dynamicOptions = aioseo()->dynamicOptions->noConflict();
if ( $dynamicOptions->searchAppearance->postTypes->has( $postType ) ) {
$defaultType = $dynamicOptions->searchAppearance->postTypes->{$postType}->schemaType;
switch ( $defaultType ) {
case 'Article':
aioseo()->schema->graphs[] = $dynamicOptions->searchAppearance->postTypes->{$postType}->articleType;
break;
case 'WebPage':
aioseo()->schema->graphs[] = $dynamicOptions->searchAppearance->postTypes->{$postType}->webPageType;
break;
default:
aioseo()->schema->graphs[] = $defaultType;
}
}
switch ( $this->templateType ) {
case 'bp-activity_single':
$datePublished = $this->activity['date_recorded'];
$contextUrl = BuddyPressIntegration::getComponentSingleUrl( 'activity', $this->activity['id'] );
break;
case 'bp-group_single':
$datePublished = $this->group['date_created'];
$contextUrl = BuddyPressIntegration::getComponentSingleUrl( 'group', $this->group['id'] );
break;
case 'bp-member_single':
aioseo()->schema->graphs[] = 'ProfilePage';
$contextUrl = BuddyPressIntegration::getComponentSingleUrl( 'member', $this->author->ID );
break;
case 'bp-activity_archive':
case 'bp-group_archive':
case 'bp-member_archive':
list( , $component ) = explode( '-', $postType );
$contextUrl = BuddyPressIntegration::getComponentArchiveUrl( $component );
$breadcrumbType = 'CollectionPage';
break;
default:
break;
}
if ( ! empty( $datePublished ) ) {
CommonGraphs\Article\NewsArticle::setOverwriteGraphData( [
'properties' => compact( 'datePublished' )
] );
}
if ( ! empty( $contextUrl ) ) {
$name = aioseo()->meta->title->getTitle();
$description = aioseo()->meta->description->getDescription();
$breadcrumbPositions = [
'name' => $name,
'description' => $description,
'url' => $contextUrl,
];
if ( ! empty( $breadcrumbType ) ) {
$breadcrumbPositions['type'] = $breadcrumbType;
}
aioseo()->schema->context = [
'name' => $name,
'description' => $description,
'url' => $contextUrl,
'breadcrumb' => $contextInstance->breadcrumb->setPositions( $breadcrumbPositions ),
];
}
}
/**
* Gets the breadcrumbs for the current component.
*
* @since 4.7.6
*
* @return array
*/
public function getCrumbs() {
$crumbs = [];
switch ( $this->templateType ) {
case 'bp-activity_single':
$crumbs[] = aioseo()->breadcrumbs->makeCrumb(
BuddyPressIntegration::callFunc( 'bp_get_directory_title', 'activity' ),
BuddyPressIntegration::getComponentArchiveUrl( 'activity' )
);
$crumbs[] = aioseo()->breadcrumbs->makeCrumb( sanitize_text_field( $this->activity['action'] ) );
break;
case 'bp-group_single':
$crumbs[] = aioseo()->breadcrumbs->makeCrumb(
BuddyPressIntegration::callFunc( 'bp_get_directory_title', 'groups' ),
BuddyPressIntegration::getComponentArchiveUrl( 'group' )
);
$crumbs[] = aioseo()->breadcrumbs->makeCrumb( $this->group['name'] );
break;
case 'bp-member_single':
$crumbs[] = aioseo()->breadcrumbs->makeCrumb(
BuddyPressIntegration::callFunc( 'bp_get_directory_title', 'members' ),
BuddyPressIntegration::getComponentArchiveUrl( 'member' )
);
$crumbs[] = aioseo()->breadcrumbs->makeCrumb( $this->author->display_name );
break;
case 'bp-activity_archive':
$crumbs[] = aioseo()->breadcrumbs->makeCrumb( BuddyPressIntegration::callFunc( 'bp_get_directory_title', 'activity' ) );
break;
case 'bp-group_archive':
$crumbs[] = aioseo()->breadcrumbs->makeCrumb( BuddyPressIntegration::callFunc( 'bp_get_directory_title', 'groups' ) );
break;
case 'bp-member_archive':
$crumbs[] = aioseo()->breadcrumbs->makeCrumb( BuddyPressIntegration::callFunc( 'bp_get_directory_title', 'members' ) );
break;
default:
break;
}
return $crumbs;
}
}