Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/add pods field option #121

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 32 additions & 8 deletions classes/class-pods-beaver-page-data.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ final class PodsBeaverPageData {
static $pods = array();

/**
* Track the state similar to $query->fl_builder_loop, in_the_loop().
*
* @var array
*
* @since 1.3.5
*/
* Track the state similar to $query->fl_builder_loop, in_the_loop().
*
* @var array
*
* @since 1.3.5
*/
static private $pods_beaver_loop;

/**
* Add Beaver Builder group for Pods.
*
Expand Down Expand Up @@ -80,7 +80,7 @@ public static function get_current_pod_info() {
'id' => get_the_ID(),
);
return $info;
}
}

$queried_object = get_queried_object();

Expand Down Expand Up @@ -261,7 +261,31 @@ public static function get_field_display( $settings, $property ) {
$content = $pod->display( $settings->field );

return $content;
}

/**
* Just Basic Field Value.
*
* @param object $settings
* @param string $property
*
* @return string
*
* @since 1.3.8
*/
public static function get_field_value( $settings, $property ) {

$content = '';

$pod = self::get_pod( $settings );

if ( ! $pod || ! $pod->exists() ) {
return $content;
}

$content = $pod->field( $settings->field );

return $content;
}

/**
Expand Down
71 changes: 49 additions & 22 deletions includes/pods-page-data.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
*/

/**
* Pods CPT / TAX /
* Pods CPT / Taxonomy / Term as a $pod->display() value
*/
$data = array(
'label' => __( 'Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'Post, Page, or Term (Display Value)', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'string',
Expand All @@ -27,14 +27,41 @@
'type' => 'select',
'label' => __( 'Field Name', 'pods-beaver-builder-themer-add-on' ),
'options' => 'PodsBeaverPageData::pods_get_fields',
'help' => __( 'Field list is based on current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'Based on preview location', 'pods-beaver-builder-themer-add-on' ),
'help' => __( 'Field list options are based on the current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'List options are based on your current preview location. <br /><br />Not sure what a display value is? Check out the <a style="text-decoration: underline" href="https://docs.pods.io/code/pods/display/">Pods display() docs</a>.', 'pods-beaver-builder-themer-add-on' ),
),
);

FLPageData::add_post_property( 'pods_display', $data );
FLPageData::add_post_property_settings_fields( 'pods_display', $form );

/**
* Pods CPT / Taxonomy / Term as a $pod->field() value
*/
$data = array(
'label' => __( 'Post, Page, or Term (Field Value)', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'string',
'html',
'custom_field',
),
'getter' => 'PodsBeaverPageData::get_field_value',
);

$form = array(
'field' => array(
'type' => 'select',
'label' => __( 'Field Name', 'pods-beaver-builder-themer-add-on' ),
'options' => 'PodsBeaverPageData::pods_get_fields',
'help' => __( 'Field list options are based on the current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'List options are based on your current preview location. <br /><br />Not sure what a field value is? Check out the <a style="text-decoration: underline" href="https://docs.pods.io/code/pods/field/">Pods field() docs</a>.', 'pods-beaver-builder-themer-add-on' ),
),
);

FLPageData::add_post_property( 'pods_field', $data );
FLPageData::add_post_property_settings_fields( 'pods_field', $form );

/**
* Pods Templates / Magic Tag
*/
Expand Down Expand Up @@ -86,7 +113,7 @@
* Pods Settings
*/
$data = array(
'label' => __( 'Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'string',
Expand Down Expand Up @@ -116,7 +143,7 @@
* Pods Photo (Image)
*/
$data = array(
'label' => __( 'Image: Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'Image: Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'photo',
Expand All @@ -129,8 +156,8 @@
'type' => 'select',
'label' => __( 'Field Name', 'pods-beaver-builder-themer-add-on' ),
'options' => 'PodsBeaverPageData::pods_get_image_fields',
'help' => __( 'Field list is based on current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'Based on preview location', 'pods-beaver-builder-themer-add-on' ),
'help' => __( 'Field list options are based on the current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'List options are based on your current preview location.', 'pods-beaver-builder-themer-add-on' ),
),
'image_size' => array(
'type' => 'photo-sizes',
Expand Down Expand Up @@ -184,7 +211,7 @@
* Pods Multiple Photos (Images)
*/
$data = array(
'label' => __( 'Images: Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'Images: Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'multiple-photos',
Expand All @@ -197,8 +224,8 @@
'type' => 'select',
'label' => __( 'Field Name', 'pods-beaver-builder-themer-add-on' ),
'options' => 'PodsBeaverPageData::pods_get_multiple_images_fields',
'help' => __( 'Field list is based on current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'Based on preview location', 'pods-beaver-builder-themer-add-on' ),
'help' => __( 'Field list options are based on the current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'List options are based on your current preview location.', 'pods-beaver-builder-themer-add-on' ),
),
);

Expand Down Expand Up @@ -239,7 +266,7 @@
* Pods Settings Photo (Image)
*/
$data = array(
'label' => __( 'Image: Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'Image: Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'photo',
Expand Down Expand Up @@ -276,7 +303,7 @@
* Pods Settings Multiple Photos (Images)
*/
$data = array(
'label' => __( 'Images: Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'Images: Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'multiple-photos',
Expand Down Expand Up @@ -311,7 +338,7 @@
* Pods CPT
*/
$data = array(
'label' => __( 'URL: Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'URL: Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'url',
Expand All @@ -325,8 +352,8 @@
'type' => 'select',
'label' => __( 'Field Name', 'pods-beaver-builder-themer-add-on' ),
'options' => 'PodsBeaverPageData::pods_get_url_fields',
'help' => __( 'Field list is based on current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'Based on preview location', 'pods-beaver-builder-themer-add-on' ),
'help' => __( 'Field list options are based on the current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'List options are based on your current preview location.', 'pods-beaver-builder-themer-add-on' ),
),
);

Expand All @@ -341,7 +368,7 @@
* Pods Settings / User
*/
$data = array(
'label' => __( 'URL: Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'URL: Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'url',
Expand Down Expand Up @@ -371,10 +398,10 @@
*/

/**
* Pods CPT / TAX / …
* Pods CPT / Taxonomy
*/
$data = array(
'label' => __( 'Color: Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'Color: Post, Page, Term', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'color',
Expand All @@ -387,8 +414,8 @@
'type' => 'select',
'label' => __( 'Field Name', 'pods-beaver-builder-themer-add-on' ),
'options' => 'PodsBeaverPageData::pods_get_color_fields',
'help' => __( 'Field list is based on current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'Based on preview location', 'pods-beaver-builder-themer-add-on' ),
'help' => __( 'Field list options are based on the current "Preview as:" settings in the top left.', 'pods-beaver-builder-themer-add-on' ),
'description' => __( 'List options are based on your current preview location.', 'pods-beaver-builder-themer-add-on' ),
),
);

Expand All @@ -403,7 +430,7 @@
* Pods Settings
*/
$data = array(
'label' => __( 'Color: Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'label' => __( 'Color: Settings, Author, User', 'pods-beaver-builder-themer-add-on' ),
'group' => 'pods',
'type' => array(
'color',
Expand Down