Esempio n. 1
0
 /**
  * Finalize User Profile
  * @author Howard R <*****@*****.**>
  * @static
  * @param int $user_id
  * @return boolean
  */
 public static function finalize($user_id)
 {
     /** create folder **/
     $folder_path = wpl_items::get_path($user_id, 2);
     if (!wpl_folder::exists($folder_path)) {
         wpl_folder::create($folder_path);
     }
     /** Multilingual **/
     if (wpl_global::check_multilingual_status()) {
         $languages = wpl_addon_pro::get_wpl_languages();
         $current_language = wpl_global::get_current_language();
         foreach ($languages as $language) {
             wpl_global::switch_language($language);
             /** Generate Rendered Data **/
             wpl_users::generate_rendered_data($user_id);
             wpl_users::update_text_search_field($user_id);
         }
         /** Switch to current language again **/
         wpl_global::switch_language($current_language);
     } else {
         /** Generate Rendered Data **/
         wpl_users::generate_rendered_data($user_id);
         wpl_users::update_text_search_field($user_id);
     }
     /** Generate Email Files **/
     wpl_users::generate_email_files($user_id);
     /** throwing event **/
     wpl_events::trigger('user_finalized', $user_id);
     return true;
 }
Esempio n. 2
0
 /**
  * Generates wizard form using dbst fields
  * @author Howard R <*****@*****.**>
  * @param objects $fields
  * @param array $values
  * @param int $item_id
  * @param array $finds
  * @return void
  */
 public function generate_wizard_form($fields, $values, $item_id = 0, &$finds = array())
 {
     /** first validation **/
     if (!$fields) {
         return;
     }
     /** get files **/
     $path = WPL_ABSPATH . DS . 'libraries' . DS . 'dbst_wizard';
     $files = array();
     if (wpl_folder::exists($path)) {
         $files = wpl_folder::files($path, '.php$', false, false);
     }
     $wpllangs = wpl_global::check_multilingual_status() ? wpl_addon_pro::get_wpl_languages() : array();
     $has_more_details = false;
     foreach ($fields as $key => $field) {
         if (!$field) {
             return;
         }
         $done_this = false;
         $type = $field->type;
         $label = $field->name;
         $mandatory = $field->mandatory;
         $options = json_decode($field->options, true);
         $value = isset($values[$field->table_column]) ? stripslashes($values[$field->table_column]) : NULL;
         $kind = isset($values['kind']) ? $values['kind'] : NULL;
         $display = '';
         /** Specific **/
         if (trim($field->listing_specific) != '') {
             $specified_listings = explode(',', trim($field->listing_specific, ', '));
             self::$category_listing_specific_array[$field->id] = $specified_listings;
             if (!in_array($values['listing'], $specified_listings)) {
                 $display = 'display: none;';
             }
         } elseif (trim($field->property_type_specific) != '') {
             $specified_property_types = explode(',', trim($field->property_type_specific, ', '));
             self::$category_property_type_specific_array[$field->id] = $specified_property_types;
             if (!in_array($values['property_type'], $specified_property_types)) {
                 $display = 'display: none;';
             }
         } elseif (trim($field->user_specific) != '') {
             $specified_user_types = explode(',', trim($field->user_specific, ', '));
             self::$category_user_specific_array[$field->id] = $specified_user_types;
             if (!in_array($values['membership_type'], $specified_user_types)) {
                 $display = 'display: none;';
             }
         } elseif (isset($options['access'])) {
             foreach ($options['access'] as $access) {
                 if (!wpl_global::check_access($access)) {
                     $display = 'display: none;';
                     break;
                 }
             }
         }
         /** More Details **/
         if ($type == 'more_details' and !$has_more_details) {
             echo '<div class="wpl_listing_field_container wpl-pwizard-prow-' . $type . '" id="wpl_listing_field_container' . $field->id . '">';
             echo '<label for="wpl_c_' . $field->id . '"><span>' . __($label, WPL_TEXTDOMAIN) . '</span></label>';
             echo '<div id="wpl_more_details' . $field->id . '" style="display: none;" class="wpl-fields-more-details-block">';
             $has_more_details = true;
         } elseif ($type == 'more_details' and $has_more_details) {
             /** Only one details field is acceptable in each category **/
             continue;
         }
         /** Accesses **/
         if (isset($field->accesses) and trim($field->accesses) != '' and wpl_global::check_addon('membership')) {
             $accesses = explode(',', trim($field->accesses, ', '));
             $cur_membership_id = wpl_users::get_user_membership();
             if (!in_array($cur_membership_id, $accesses) and trim($field->accesses_message) == '') {
                 continue;
             } elseif (!in_array($cur_membership_id, $accesses) and trim($field->accesses_message) != '') {
                 echo '<div class="prow wpl_listing_field_container prow-' . $type . '" id="wpl_listing_field_container' . $field->id . '" style="' . $display . '">';
                 echo '<label for="wpl_c_' . $field->id . '">' . __($label, WPL_TEXTDOMAIN) . '</label>';
                 echo '<span class="wpl-access-blocked-message">' . __($field->accesses_message, WPL_TEXTDOMAIN) . '</span>';
                 echo '</div>';
                 continue;
             }
         }
         /** js validation **/
         self::$wizard_js_validation[$field->id] = self::generate_js_validation($field);
         if (isset($finds[$type])) {
             echo '<div class="prow wpl_listing_field_container prow-' . $type . '" id="wpl_listing_field_container' . $field->id . '" style="' . $display . '">';
             include $path . DS . $finds[$type];
             echo '</div>';
             continue;
         }
         echo '<div class="prow wpl_listing_field_container prow-' . $type . '" id="wpl_listing_field_container' . $field->id . '" style="' . $display . '">';
         foreach ($files as $file) {
             include $path . DS . $file;
             if ($done_this) {
                 $finds[$type] = $file;
                 break;
             }
         }
         echo '</div>';
     }
     if ($has_more_details) {
         echo '</div></div>';
     }
 }
Esempio n. 3
0
 /**
  * Finalize a property and render needed data
  * @author Howard <*****@*****.**>
  * @static
  * @param int $property_id
  * @param string $mode
  * @param int $user_id
  * @return boolean
  */
 public static function finalize($property_id, $mode = 'edit', $user_id = '')
 {
     $property = self::get_property_raw_data($property_id);
     $update_query = self::generate_finalize_query($property, $property_id);
     $update_query .= "`finalized`='1',";
     if (wpl_global::check_access('confirm', $user_id)) {
         $update_query .= "`confirmed`='1',";
     }
     $update_query = trim($update_query, ', ');
     $query = "UPDATE `#__wpl_properties` SET " . $update_query . " WHERE `id`='{$property_id}'";
     wpl_db::q($query, 'update');
     /** Remove Property Cache **/
     wpl_property::clear_property_cache($property_id);
     /** Multilingual **/
     if (wpl_global::check_multilingual_status()) {
         $languages = wpl_addon_pro::get_wpl_languages();
         $current_language = wpl_global::get_current_language();
         foreach ($languages as $language) {
             wpl_global::switch_language($language);
             wpl_property::update_text_search_field($property_id);
             wpl_property::update_alias($property);
             wpl_property::update_property_page_title($property);
             wpl_property::update_property_title($property);
             /** generate rendered data **/
             wpl_property::generate_rendered_data($property_id);
         }
         /** Switch to current language again **/
         wpl_global::switch_language($current_language);
     } else {
         wpl_property::update_text_search_field($property_id);
         wpl_property::update_alias($property);
         wpl_property::update_property_page_title($property);
         wpl_property::update_property_title($property);
         /** generate rendered data **/
         wpl_property::generate_rendered_data($property_id);
     }
     /** Fixes **/
     wpl_property::fix_aliases($property, $property_id);
     wpl_property::update_numbs($property_id, $property);
     /** throwing events **/
     if ($mode == 'add') {
         wpl_events::trigger('add_property', $property_id);
     } elseif ($mode == 'edit') {
         wpl_events::trigger('edit_property', $property_id);
     }
     if (wpl_global::check_access('confirm', $user_id)) {
         wpl_events::trigger('property_confirm', $property_id);
     }
     return true;
 }
Esempio n. 4
0
 /**
  * Returns column with multilingual columns
  * @author Howard <*****@*****.**>
  * @static
  * @param array $columns
  * @param string $table
  * @return array
  */
 public static function get_multilingual_columns($columns, $validation = true, $table = 'wpl_properties')
 {
     if (wpl_global::check_multilingual_status()) {
         $valid_columns = wpl_db::columns($table);
         $languages = wpl_addon_pro::get_wpl_languages();
         foreach ($columns as $column) {
             foreach ($languages as $language) {
                 $language_column = wpl_addon_pro::get_column_lang_name($column, $language, false);
                 if ($validation and in_array($language_column, $valid_columns)) {
                     $columns[] = $language_column;
                 } elseif (!$validation) {
                     $columns[] = $language_column;
                 }
             }
         }
     }
     return $columns;
 }
Esempio n. 5
0
<?php

/** no direct access **/
defined('_WPLEXEC') or die('Restricted access');
if ($type == 'languages' and !$done_this) {
    $languages = wpl_addon_pro::get_wpl_languages();
    $lang_options = wpl_addon_pro::get_wpl_language_options();
    $max_langs = max(wpl_global::get_setting('max_wpllangs'), count($languages));
    $wp_pages = wpl_global::get_wp_pages();
    ?>
<div class="prow wpl_setting_form_container wpl-setting-langs wpl_st_type<?php 
    echo $setting_record->type;
    ?>
 wpl_st_<?php 
    echo $setting_record->setting_name;
    ?>
"
    id="wpl_st_<?php 
    echo $setting_record->id;
    ?>
">
    <div class="languages-wp">
        <div class="wpl-btns-wp">
            <button onclick="wpl_languages_save();" class="wpl-button button-1">
                <?php 
    echo __('Save', WPL_TEXTDOMAIN);
    ?>
                <span class="ajax-inline-save" id="wpl_ajax_loader_<?php 
    echo $setting_record->id;
    ?>
"></span>