예제 #1
0
function printFavButton($building_id, $large = true, $image_id = null)
{
    if (current_user_can('add_favorites')) {
        $user_id = wp_get_current_user()->ID;
        $isFavorite = Idp_Main::isFavoriteOfUser($user_id, $building_id);
        //button contains image_id if available (such that even in image mode, all IDs are distinct)
        $buttonId = "favButton" . $building_id . ($image_id == null ? "" : "_" . $image_id);
        if ($large) {
            ?>
			<button id="<?php 
            echo $buttonId;
            ?>
" name="<?php 
            echo $buttonId;
            ?>
" type="button" class="btn btn-primary favButton <?php 
            $isFavorite ? print 'active" aria-pressed="true"' : (print '" aria-pressed="false"');
            ?>
 data-toggle="button" data-buildingid="<?php 
            echo $building_id;
            ?>
" autocomplete="off"><span class="glyphicon glyphicon-star<?php 
            $isFavorite ? print '' : (print '-empty');
            ?>
" aria-hidden="true"></span>
			</button>
		<?php 
        } else {
            ?>
			<a id="<?php 
            echo $buttonId;
            ?>
" name="<?php 
            echo $buttonId;
            ?>
" class="favButton <?php 
            $isFavorite ? print 'active' : (print '');
            ?>
"><span class="glyphicon glyphicon-star<?php 
            $isFavorite ? print '' : (print '-empty');
            ?>
" data-buildingid="<?php 
            echo $building_id;
            ?>
" style="font-size:20px" aria-hidden="true"></span>
			</a>
		<?php 
        }
        if ($large) {
            ?>
		<script>
			$('#<?php 
            echo $buttonId;
            ?>
').on("click", function () {
			var ajaxurl = '<?php 
            echo admin_url('admin-ajax.php');
            ?>
';
			var buttonName = '<?php 
            echo $buttonId;
            ?>
';
			var updateElements = buttonName.split('_')[0];
			if ($(this).hasClass('active')){ 
				var data = {'action': 'removeBuildingFromFavorites', 'user_id': '<?php 
            echo $user_id;
            ?>
', 'building_id': '<?php 
            echo $building_id;
            ?>
'};
				jQuery.post(ajaxurl, data, function(response) {
					$('[id^='+updateElements+'] > span').removeClass().addClass(response);
					$('[id^='+updateElements+']').removeClass('active');
				});	
			}
			else{
				var data = {'action': 'addBuildingToFavorites', 'user_id': '<?php 
            echo $user_id;
            ?>
', 'building_id': '<?php 
            echo $building_id;
            ?>
'};
				jQuery.post(ajaxurl, data, function(response) {
					$('[id^='+updateElements+'] > span').removeClass().addClass(response);
					$('[id^='+updateElements+']').addClass('active');
				});	
			}
			});
		</script>
		<?php 
        }
    }
}