Exemplo n.º 1
0
 function __construct($cb, $page_type, $title, $page_template = "homepage_pa.tpl", $header_template = "header.tpl", $default_mode = PRI, $default_block_type = HOMEPAGE, $network_info_ = NULL, $onload = NULL, $setting_data = NULL)
 {
     global $login_uid, $page_uid, $uid, $path_prefix, $current_theme_path, $current_theme_rel_path, $base_url, $network_info, $current_blockmodule_path;
     $this->debugging = isset($_GET['debug']);
     $this->page_template = $page_template;
     $this->top_navigation_template = 'top_navigation_bar.tpl';
     //TO DO: Remove this hardcoded text afterwards
     $this->header_template = $header_template;
     //settings for current network
     $this->network_info = $network_info_ ? $network_info_ : $network_info;
     //FIXME: does this have to be a parameter?  can't we just always use the global $network_info?
     // the function hide_message_window is added here
     // so whenever html page is loaded the message window's ok button gets focus
     // here if previouly some function is defined as
     // onload = "ajax_call_method(ajax_titles, $uid, ajax_urls);"
     // now it will look like
     // onload = "ajax_call_method(ajax_titles, $uid, ajax_urls); hide_message_window();"
     $this->onload = "{$onload} hide_message_window('confirm_btn');";
     $this->page_title = $title;
     $this->html_body_attributes = "";
     // default settings for the tiers
     $this->main_tier = @$_GET['tier_one'];
     $this->second_tier = @$_GET['tier_two'];
     $this->third_tier = @$_GET['tier_three'];
     $navigation = new Navigation();
     $navigation_links = $navigation->get_links();
     $message_count = null;
     if ($login_uid) {
         $message_count = Message::get_new_msg_count($login_uid);
     }
     // load all templates
     $this->page =& new Template(CURRENT_THEME_FSPATH . "/" . $this->page_template);
     $this->page->set('current_theme_path', $current_theme_path);
     $this->page->set('current_theme_rel_path', $current_theme_rel_path);
     $this->page->set('base_url', $base_url);
     // Loading the templates variables for the Outer templates files
     $this->page->set('outer_class', get_class_name($page_type));
     $this->top_navigation_bar =& new Template(CURRENT_THEME_FSPATH . "/" . $this->top_navigation_template);
     $this->top_navigation_bar->set('current_theme_path', $current_theme_path);
     $this->top_navigation_bar->set('current_theme_rel_path', $current_theme_rel_path);
     $this->top_navigation_bar->set('navigation_links', $navigation_links);
     $this->header =& new Template(CURRENT_THEME_FSPATH . "/" . $this->header_template);
     $this->header->set('current_theme_path', $current_theme_path);
     $this->header->set('current_theme_rel_path', $current_theme_rel_path);
     $this->header->set('base_url', $base_url);
     $this->header->set_object('network_info', $this->network_info);
     $this->header->set('message_count', $message_count['unread_msg']);
     $this->header->set('navigation_links', $navigation_links);
     $this->footer =& new Template(CURRENT_THEME_FSPATH . "/footer.tpl");
     $this->footer->set('current_theme_path', $current_theme_path);
     $this->footer->set('page_name', $title);
     // load module settings
     // if we want to change the Module's arrangement then we give the setting_data to this function or we want to change the Ordering of the Modules ...
     if ($setting_data) {
         $this->setting_data = $setting_data;
     } else {
         $this->setting_data = !$page_type ? NULL : ModuleSetting::load_setting($page_type, $uid);
     }
     // render all modules
     $this->module_arrays = array();
     foreach (array("left", "middle", "right") as $module_column) {
         $modulesFromDB = !$page_type ? NULL : @$this->setting_data[$module_column];
         $array_modules = array();
         // render all modules
         if ($modulesFromDB) {
             foreach ($modulesFromDB as $moduleName) {
                 if (!$moduleName) {
                     continue;
                 }
                 $file = "{$current_blockmodule_path}/{$moduleName}/{$moduleName}.php";
                 try {
                     require_once $file;
                 } catch (Exception $e) {
                     echo "<p>Failed to require_once {$file}.</p>";
                     throw $e;
                 }
                 $obj = new $moduleName();
                 $obj->login_uid = (int) $login_uid;
                 // uid of logged in user
                 $obj->page_uid = (int) $page_uid;
                 // uid specified in URL
                 // standard column-specific initialization
                 switch ($module_column) {
                     case 'left':
                     case 'right':
                         if ($default_mode) {
                             $obj->mode = $default_mode;
                         }
                         // some modules don't like to be set as PRI/HOMEPAGE
                         switch ($moduleName) {
                             case 'LogoModule':
                             case 'AdsByGoogleModule':
                             case 'GroupAccessModule':
                             case 'GroupStatsModule':
                                 break;
                             default:
                                 if ($default_block_type) {
                                     $obj->block_type = $default_block_type;
                                 }
                         }
                         break;
                     case 'middle':
                         break;
                 }
                 // now call the page callback and see if we need to skip
                 // displaying this module
                 $skipped = FALSE;
                 if ($cb) {
                     switch ($cb($module_column, $moduleName, $obj)) {
                         case 'skip':
                             $skipped = TRUE;
                             break;
                     }
                 }
                 // now render for display
                 if (!$skipped) {
                     $start_time = microtime(TRUE);
                     $html = $obj->render();
                     $render_time = microtime(TRUE) - $start_time;
                     $array_modules[] = $html;
                 }
                 if ($this->debugging) {
                     $dhtml = "&larr; {$moduleName} ({$obj->block_type}; {$obj->mode}; " . sprintf("%.3f s", $render_time) . ")";
                     if ($skipped) {
                         $dhtml .= " SKIPPED";
                     }
                     $dhtml .= "<br>";
                     $array_modules[] = $dhtml;
                 }
             }
         }
         $this->module_arrays[$module_column] = $array_modules;
     }
     $pages = Advertisement::get_pages();
     // get pages where ads is to be displayed
     $display_ad = FALSE;
     foreach ($pages as $page) {
         if ($page_type == $page['value']) {
             $display_ad = TRUE;
             break;
         }
     }
     if ($display_ad) {
         // get all ads
         $all_ads = Advertisement::get(array('direction' => 'ASC', 'sort_by' => 'orientation'), array('page_id' => $page_type, 'is_active' => ACTIVE));
         if (!empty($all_ads)) {
             foreach ($all_ads as $ad) {
                 $pos = $ad->orientation;
                 $pos = explode(',', $ad->orientation);
                 $x_loc = $pos[0];
                 //y_loc was not originally designed so for already created ads
                 //FIX for already created ads
                 if (array_key_exists(1, $pos)) {
                     $y_loc = $pos[1];
                 } else {
                     $y_loc = 1;
                     //Ads created before this logic implementation should come on top
                 }
                 //horizontal and vertical position should not be empty
                 if (!empty($x_loc) && !empty($y_loc)) {
                     $array_of_data = array('links' => $ad);
                     $inner_html = $this->add_block_module('AdvertisementModule', $array_of_data);
                     $this->add_module_xy($x_loc, $y_loc, $inner_html);
                 }
             }
         }
         //end of if all_ads
     }
     //end of display_ad
 }
 * @version 0.0.0-1
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * @author Cyberspace Networks <*****@*****.**>
 * @license GNU General Public License
 * @copyright Copyright (c) 2000-2015 Cyberspace Networks
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * The lastest version of Cyberspace Networks CoreSystem can be obtained from:
 * https://github.com/CyberspaceNetworks/CoreSystem
 * For questions, help, comments, discussion, etc. please visit
 * http://www.cyberspace-networks.com
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 */
if (!empty($_REQUEST['gid'])) {
    $ads_pages = Advertisement::get_pages('group');
} else {
    $ads_pages = Advertisement::get_pages();
}
if (!empty($_REQUEST['gid'])) {
    $thisurl = PA::$url . PA_ROUTE_GROUP_AD_CENTER . '?gid=' . $_REQUEST['gid'] . '&';
} else {
    $thisurl = PA::$url . PA_ROUTE_MANAGE_AD_CENTER . '?';
}
$class = $edit || !empty($form_data) ? 'class="display_true"' : 'class="display_false"';
if (@$_GET['open'] == 1) {
    $class = 'class="display_true"';
}
//$class = ($edit || !empty($form_data)) ? 'class="display_true"' : 'class="display_false"';
$legend_tag = $edit ? __("Edit Ad") : __("Create An Ad");
$ads_list = NULL;
if (!empty($links)) {
    $ads_list = '<table cellpadding="3" cellspacing="3">
function peopleaggregator_listAds($args)
{
    // global var $path_prefix has been removed - please, use PA::$path static variable
    require_once "api/Advertisement/Advertisement.php";
    // map 'page_type' arg to a page key like PAGE_HOMEPAGE
    $page_type = $args['page_type'];
    $page_key = NULL;
    foreach (Advertisement::get_pages() as $page) {
        if ($page['api_id'] == $page_type) {
            $page_key = $page['value'];
            break;
        }
    }
    if ($page_key === NULL) {
        throw new PAException(INVALID_ID, "Invalid advertisement page type '{$page_type}'.");
    }
    // build orientation map
    $orientation_map = array();
    foreach (Advertisement::get_orientations() as $ori) {
        $orientation_map[$ori['value']] = $ori['caption'];
    }
    $ads_out = array();
    foreach (Advertisement::get(NULL, array('page_id' => $page_key, 'is_active' => ACTIVE)) as $ad) {
        $ad_out = array("id" => "ad:" . $ad->ad_id, "title" => $ad->title, "description" => $ad->description, "orientation" => $ad->orientation);
        if (!empty($ad->ad_image)) {
            list($w, $h) = getimagesize(PA::$upload_path . "/" . $ad->ad_image);
            $ad_out['image'] = array("url" => api_get_url_of_file($ad->ad_image), "width" => $w, "height" => $h);
        }
        if (!empty($ad->url)) {
            $ad_out['url'] = $ad->url;
        }
        if (!empty($ad->javascript)) {
            $ad_out['javascript'] = $ad->javascript;
        }
        $ads_out[] = $ad_out;
    }
    return array("success" => TRUE, "msg" => "Retrieved " . count($ads_out) . " ad(s)", "ads" => $ads_out);
}