/*
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' );
Content
Das südliche Bundesland ist bekannt für saubere Seen, für imposante Berge und unbeschwerte Urlaube, vielleicht noch für gesangsfreudige Einwohner und extrovertierte Politiker. Man trinkt hier Bier aus den eigenen Brauereien oder Prosecco vom benachbarten Italien. Die Kunstvermittlung spielt in der ALBERTINA eine herausragende Rolle. Die Kunstvermittlung bietet Führungen, Workshops, zahlreiche Familienprogramme, KünstlerInnengespräche, Vorträge und Podiumsdiskussionen an.
Apéro, Grill und Sommerstimmung im schönsten Biergarten. Das Restaurant SCHLOSSBERG mieten ist als variable Eventlocation eine Institution, die Qualität, Spaß, Phantasie und Nachhaltigkeit unter einem einzigen Dach über allen anderen Dächern der Stadt Graz vereint. Unser Hotel Weisses Roessl Kitzbühel, stolzes Mitglied von „The Leading Hotels of the World“, ist ein einzigartiges Design & Lifestyle-Hotel im Herzen der berühmten Stadt Kitzbühel. Unsere 45 Zimmer und Suiten vereinen zeitlose Eleganz und Behaglichkeit.
Dezember 2023 gelten neue Fahrpläne für Bus und Bahn in Wien, Niederösterreich und dem Burgenland. Der Fahrplanwechsel bringt zahlreiche Optimierungen des öffentlichen Verkehrs in der Ostregion. Großteils handelt es sich um Anpassungen im Minutenbereich, um etwa eine bessere Erreichbarkeit von Standorten oder auch die Sicherstellung von Umstiegsverbindungen (u.a. Anschlüsse der Regionalbusse an den Bahnverkehr) zu erreichen.
3 verweisthinsichtlich der Durchsetzung der Künstlerpersönlichkeitsrechte auf das Rechtdes Schutzlandes und entspricht dabei Art. 6bis Abs. Um einem Anliegender Entwicklungsländer Rechnung zu tragen, wurde in die Definition des„ausübenden Künstlers“ auch die „Folklore“ bzw. Neuhingegen sind die Definitionen der „Festlegung“ (lit. c) und der„öffentlichen Wiedergabe“ (lit. g). Beim WPPT (wie beim WCT) handelt es sich um einsogenanntes „gemischtes Übereinkommen“, bei dem die Abschlusskompetenz zwischender Europäischen Gemeinschaft und ihren Mitgliedstaaten geteilt ist. DieHinterlegung der Ratifikationsurkunden durch die Europäische Gemeinschaft undalle ihre Mitgliedstaaten soll daher gleichzeitig erfolgen, sobald alleMitgliedstaaten die InfoRL umgesetzt haben. Im Sinn deserwähnten Ratsbeschlusses soll daher die Ratifikation des WPPT vorbereitetwerden, damit die Gemeinschaft und ihre Mitgliedstaaten zum gegebenen Zeitpunktgemeinsam ihre Ratifikationsurkunden hinterlegen können.
Wir laden Sie ein, das Traditionsgasthaus zu besuchen, wo es sich sehr gut schmausen und trinken läßt. Das Team verwöhnt Sie im Sinne der mehr als hundertjährigen Tradition mit angestammten und neuen Rezepten – alle verwendeten Produkte sind immer frisch! Auch für Seminare eignen sich unsere Räumlichkeiten und Ausstattung. Welches Event Sie auch planen – wir planen es mit Ihnen. Ob Hochzeiten, private Feiern jeglicher Art, Firmenfeiern oder Ihre Weihnachtsfeier – bei uns finden Sie bestimmt den passenden Rahmen für Ihren Anlass. The Grand Pearl ist eine moderne Eventlocation im Herzen von Wien.
Beschreibung „Was ohne Ruhepausen geschieht, ist nicht von Dauer.“ (Ovid)Die Bibliothek kann als Pausenraum zum Austausch oder einfach zur Entspannung genutzt werden. Der direkte Zugang zum Garten und Möglichkeit, sie fast komplett öffnen zu können, erlaubt einen idealen Ausgleich zum produktiven Meeting. Gerne gestalten wir hier ihre individuellen Pausen. Sie sehen gerade einen Platzhalterinhalt von Accessibility Widget.
Einfache, klare, unverfälschte Gerichte, die schmecken, wie sie schmecken sollen. Genießen Sie unseren romantischen Gastgarten unter Kastanienbäumen, sowie Weine aus unseren hauseigenen Weingütern Rotes Haus und Mayer am Pfarrplatz. In Bezug auf Gästegewinnung werden die Neuen Medien immer wichtiger. In Zeiten des Internets, wo sich Informationen rasend schnell verbreiten und tausende Menschen gleichzeitig erreicht werden können, ist eine Präsenz im World Wide Web unabdinglich.
Ziel der ALBERTINA MODERN ist es den Kunststandort Wien in der Welt zu stärken und die globale Wirkung der ALBERTINA sicherzustellen. Es gilt, die österreichische Kunst in einem prominenten Museum in der Bundeshauptstadt einer breiten Öffentlichkeit zugänglich zu machen. Das Haus ist somit das einzige Museum Österreichs, das in immer wechselnden Ausstellungen die österreichische Kunst der letzte 80 Jahre auf Augenhöhe mit internationalen Kunstströmungen zeigt. Die ALBERTINA zählt zu den führenden Kunstmuseen Österreichs, das 365 Tage im Jahr geöffnet ist. Es ist unser Anspruch und Ziel, mit all unseren Aktivitäten für das Publikum aktuell, relevant und attraktiv zu sein.
Dabei kann aus mehr als 25 Beobachtungskriterien ausgewählt werden. Das schafft Handlungsspielraum, um rechtzeitig zu reagieren, Verträge zu überdenken oder Anpassungen vorzunehmen. Das Monitoring ist ideal für Unternehmen mit laufenden Geschäftsbeziehungen oder größeren Kundenportfolios. Bei vielen Geschäftsverhandlungen kommen PowerPoint-Präsentationen in epischer Länge und zahllose Dokumente zum Einsatz. Doch was ist, wenn eine wichtige Verhandlung im Restaurant, am restaurant neuland Bahnhof oder sehr kurzfristig stattfindet, sodass keine Zeit für ausführliche Vorbereitungen bleibt? Dann gilt es Ideen spontan auf Servietten, die Rückseite von Kassenbons oder Visitenkarten zu skizzieren, um die Wirksamkeit eines Ansatzes beweisen, versteckte Lösungen finden und sich behaupten zu können.
Der Schwerpunkt des Ausstellungsprogramms gilt den großen Meistern der Kunstgeschichte und den bedeutendsten KünstlerInnen unserer Zeit. Retrospektiven werden ergänzt von thematischen Ausstellungen zu wichtigen künstlerischen Bewegungen.Die ALBERTINA kooperiert regelmäßig mit führenden internationalen Museen. Unsere Ausstellungen prägen mehr als alles andere die Identität der ALBERTINA. Sie haben einen besonderen Stellenwert, weil der größte Teil unserer Sammlungen aufgrund ihrer Lichtempfindlichkeit nur befristet und in großen zeitlichen Abständen ausgestellt werden kann. Umso wichtiger ist uns, mit diesen temporären Ausstellungen eine größtmögliche Öffentlichkeit zu erreichen und eine für alle Bildungsschichten und Altersgruppen multilingual eingerichtete Vermittlungsarbeit anzubieten. Das intensive auf diese Kernsammlung bezogene Ausstellungsprogramm unterstreicht den herausragenden Rang der ALBERTINA auf dem Gebiet der Zeichenkunst.
Birgit findet man entweder in der Herzstück-Bar im Vermala oder auf dem Vermala Wirt am Garfrescha, stets mit einem Lächeln im Gesicht. Ab Winter 24/25 wird sie eine Führungsrolle übernehmen und mit Leidenschaft Events- & Hochzeiten planen. Mit unserem Newsletter bleiben Sie auf dem Laufenden. Mit ein paar Strichen schnell überzeugen statt lange präsentieren. Die gesamteRegierungsvorlage liegt in der Parlamentsdirektion zur Einsicht auf. Art. 20 übernimmt das uneingeschränkte Verbot vonFörmlichkeiten für die Gewährung des Schutzes aus Art. 5 Abs.
]]>