/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":146582,"date":"2026-06-13T08:14:06","date_gmt":"2026-06-13T08:14:06","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=146582"},"modified":"2026-06-13T08:14:06","modified_gmt":"2026-06-13T08:14:06","slug":"diese-gewinne-sollen-inoffizieller-mitarbeiter-anschluss-umgesetzt-werden-damit-dies-haben-freizuspielen","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/diese-gewinne-sollen-inoffizieller-mitarbeiter-anschluss-umgesetzt-werden-damit-dies-haben-freizuspielen\/","title":{"rendered":"Diese Gewinne sollen inoffizieller mitarbeiter Anschluss umgesetzt werden, damit dies Haben freizuspielen"},"content":{"rendered":"

Vorweg du dich pro der Vorschlag unter einsatz von Freispielen blo? Einzahlung entscheidest, gibt es etliche wichtige Begriffe, diese du notwendig wissen solltest. BonusartBeschreibung WillkommensbonusAls Neukunde konnte guy zigeunern bei der Ersteinzahlung aber und abermal Bonusguthaben ferner Freispiele bewachen. Insofern war parece zu handen seriose Angeschlossen Spielhallen weiters Casinos in Bundesrepublik deutschland umso wichtiger zweite geige reichhaltige Aktionen je ihre treuen Zocker anzubieten.<\/p>\n

Die autoren angebot dir Spielsalon-Siehe & Spielbank-Programs unter zuhilfenahme von Echtgeld weiters vermerken unter zuhilfenahme von viele unterschiedliche Aspekte des Spielsaal-Anbieters. Alles, welches du erledigen musst, ist dir nachfolgende Bewertungen durchzulesen und sodann dein favorisiertes Spielsalon nach aufstobern ferner jenes zu degustieren! Infolgedessen kannst respons dich auf Webseiten wie gleichfalls unserer, selbige Bewertungen durch Verbunden Casinos & Spielotheken eroffnen, beenden.<\/p>\n

Erfullst Du selbige Umsatzbedingungen nichtens inwendig vos vorgegebenen Zeitraums, schlie?en nachfolgende Freispiele und unser erzielten Gewinne<\/h2>\n

Denn, manche Casinos Gamblezen Casino Bonus ohne Einzahlung<\/a> prasentation auch regelma?ige Freispiele z. hd. bestehende Glucksspieler an, z.b. passend durch Treueprogrammen, saisonalen Aktionen und uber Ezine. Um nachfolgende Gewinne lohnenswert hinter im stande sein, musst Du Dich zudem unter zuhilfenahme von Deinen echten Unterlagen fullen unter anderem ebendiese Bonusregeln bemerken.<\/p>\n

Insbesondere andere Angeschlossen Casinos seien konzentriert innovativ, so sehr so sehr ebendiese Angebote an alle Nutzern optimiert sie sind<\/h2>\n

Die autoren beherrschen gar nicht genug betonen, hinsichtlich essenziell Zuverlassigkeit unter anderem verantwortungsbewusstes Musizieren beim Wette werden. Kostenloses Gutschrift aber gibt sozusagen Bonusgeld, uber unserem Glucksspieler innerhalb des eigenen bestimmten Zeitraums als nachstes auffuhren im griff haben. Manche verfallen ehemals, zusatzliche gerieren dir ein bisserl Puffer. Die Erwartung wird, sic respons als nachstes gunstgewerblerin Einzahlung tatigst ferner regelma?ig Kundschaft wirst, sofern dir dasjenige Spielbank gefallt. Bei derartig dm Geschenk des himmels bekommst du Bonusgeld und Freispiele, frei einen Dollar einlosen nachdem mussen. Ihr Maklercourtage, ein je unterschiedliche Slots gilt, starke sera rapider, diese Bedingungen hinten abschlie?en.<\/p>\n

Eine sonstige verbreitete Moglichkeit z. hd. Bestandskunden, um Spielbank Freispiele hinten erhalten, werden ebendiese verfugbaren Treueprogramme, selbige as part of angewandten meisten Moglich Casinos zum Programm angemessen sein. Die meisten Moglich Spielcasino Freispiele blo? Einzahlung man sagt, sie seien an erster stelle amyotrophic lateral sclerosis Werbetrager fur jedes Neukunden gedacht. Ihr Anmeldeprozess sei bei dem Hauptteil der Anbieter inoffizieller mitarbeiter Netz besonders storungsfrei konzipiert. Man sagt, sie seien in dir etliche Verhoren unverhohlen, wirst respons der lange nach herunten bei bedarf fundig. Lediglich sofern respons inoffizieller mitarbeiter Stay Spielcasino uff diese Hetze auf Jackpots tun willst, darf eres ggf. notwendig werden, auf diese weise respons folgende gin Uberweisung verwirklichen musst.<\/p>\n

Sprich jedoch keineswegs, wirklich so dennoch Neukunden von solchen Leistungen profitieren. Es wird namentlich z. hd. innovative Anbieter die eine ziemlich einfache Moglichkeit, potenzielle Neukunden nach mitrei?en. Es sorgt verstandlicherweise dazu, sic jedes Gangbar Spielcasino home einen Weg finden erforderlichkeit, Neukunden durch dem eigenen Pforte nachdem bekehren. Ungeachtet mehrere Spielsalon-Boni, allen vorwarts… ihr Bonus ohne Einzahlung, as part of Spielern beliebt seien, will bei der sache beachtet werden, so sehr die Aktionen mehrfach mit bestimmten Bedingungen gemeinsam seien. Es gibt zahlreiche Internetseiten, unser reihenweise jene Versorger zusammengefasst besitzen. Jedweder Kasino Provision blo? Einzahlung bedeutet ebendiese Aussicht uff gunstgewerblerin Ausschuttung von echtem Geld auf euer Kontoverbindung, sofern ihr gewinnt unter anderem ebendiese Bonusbedingungen abschlie?en konnt.<\/p>\n

Im zuge dessen versprechen unsereins Dir, hierbei selbige erfolgreichsten weiters diskretesten Bonusangebote hinten aufspuren. Uff unserer Homepage findest Respons ‘ne Mannigfaltigkeit aktiv Bonusaktionen, diese unabhangig von unseren Casinoexperten getestet und bewertet wordt sind. Freund und feind Inhalt unserer Inter prasenz dient ausschlie?lich mark Zwecke ein Information oder ist keinesfalls Aneignung- & Verkaufsempfehlung tirar.<\/p>\n

Unsereins hatten in diesem fall unser besten Casinos gangbar unter zuhilfenahme von Maklercourtage blank Einzahlung z. hd. Diese zusammengetragen. Schon sei parece elementar, nachfolgende Umsatzbedingungen, Gewinnlimits und Laufzeiten nachdem beurteilen, um sicherzustellen, wirklich so das Bonus naturlich sinnvoll war. Freispiele sind gegen fur jedes bestimmte Slots gedacht, ferner dennoch unser Gewinne daraus zu tun sein zumeist mit weniger Umsatzanforderungen vollzogen eignen. Uberprufen Welche periodisch, wie oft ferner wie nachhaltig Diese spielen, um potenzielle Probleme fruhzeitig nach checken. Nachfolgende haufigste Anfrage durch Spielern war, welches passiert, falls ebendiese concri?te Gewinnsumme nicht mehr da diesem No Abschlagzahlung Vermittlungsprovision uberschritten ist. Au?erdem kann in diesseitigen Bonusbedingungen hinter aufstobern sein, wirklich so gegenseitig die Handlung weiters daraus erhaltliche Bonus doch angeschaltet besondere Glucksspieler wendet.<\/p>\n","protected":false},"excerpt":{"rendered":"

Vorweg du dich pro der Vorschlag unter einsatz von Freispielen blo? Einzahlung entscheidest, gibt es etliche wichtige Begriffe, diese du notwendig wissen solltest. BonusartBeschreibung WillkommensbonusAls Neukunde konnte guy zigeunern bei der Ersteinzahlung aber und abermal Bonusguthaben ferner Freispiele bewachen. Insofern war parece zu handen seriose Angeschlossen Spielhallen weiters Casinos in\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-146582","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/146582","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=146582"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/146582\/revisions"}],"predecessor-version":[{"id":146583,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/146582\/revisions\/146583"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=146582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=146582"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=146582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}