Вход Регистрация
Файл: upload/install/include/version/3.0.0beta1.php
Строк: 420
<?php

$hDir 
opendir(PHPFOX_DIR 'module');
while (
$sModuleFolder readdir($hDir))
{
    if (
$sModuleFolder == '.' || $sModuleFolder == '..' || $sModuleFolder == '.svn')
    {
        continue;
    }
    
    if (!
file_exists(PHPFOX_DIR 'module' PHPFOX_DS $sModuleFolder PHPFOX_DS 'install' PHPFOX_DS 'version' PHPFOX_DS 'v3.phpfox'))
    {
        
$this->_db()->update(Phpfox::getT('module'), array('is_active' => '0'), 'module_id = '' . $this->_db()->escape($sModuleFolder) . ''');
    }
}

$this->_db()->query('TRUNCATE TABLE ' Phpfox::getT('theme') . '');
$this->_db()->query('TRUNCATE TABLE ' Phpfox::getT('theme_style') . '');
$this->_db()->query('TRUNCATE TABLE ' Phpfox::getT('theme_css') . '');
$this->_db()->query('TRUNCATE TABLE ' Phpfox::getT('theme_template') . '');
$this->_db()->query('TRUNCATE TABLE ' Phpfox::getT('user_design_order') . '');
$this->_db()->query('TRUNCATE TABLE ' Phpfox::getT('user_dashboard') . '');
$this->_db()->query('TRUNCATE TABLE ' Phpfox::getT('notification') . '');

$this->_db()->update(Phpfox::getT('product'), array('is_active' => '0'), 'product_id NOT IN('phpfox', 'phpfox_installer')');

$this->_upgradeDatabase('3.0.0beta1');

        
$aRows = array(
            array(
                
'name' => 'Default',
                
'folder' => 'default',
                
'created' => '1212226813',
                
'is_active' => '1',
                
'is_default' => '1',
                
'total_column' => '3'
            
),
            array(
                
'name' => 'Cosmic',
                
'folder' => 'cosmic',
                
'created' => '1212226813',
                
'is_active' => '1',
                
'is_default' => '0',
                
'total_column' => '3'
            
)            
        );
        foreach (
$aRows as $aRow)
        {
            
$aInsert = array();
            foreach (
$aRow as $sKey => $sValue)
            {
                
$aInsert[$sKey] = $sValue;
            }
            
$this->_db()->insert(Phpfox::getT('theme'), $aInsert);
        }
        
        
$aRows = array(
            array(
                
'theme_id' => '1',
                
'name' => 'Default',
                
'folder' => 'default',
                
'created' => '1212227060',
                
'is_active' => '1',
                
'is_default' => '1',
                
'logo_image' => 'logo.png'
            
),
            array(
                
'theme_id' => '1',
                
'name' => 'Facebookish',
                
'folder' => 'facebookish',
                
'created' => '1212227060',
                
'is_active' => '1',
                
'is_default' => '0',
                
'logo_image' => 'logo.png'
            
),
            array(
                
'theme_id' => '1',
                
'name' => 'Altitude',
                
'folder' => 'altitude',
                
'created' => '1212227060',
                
'is_active' => '1',
                
'is_default' => '0',
                
'logo_image' => 'logo.png'
            
),
            array(
                
'theme_id' => '2',
                
'name' => 'Cosmic',
                
'folder' => 'cosmic',
                
'created' => '1212227060',
                
'is_active' => '1',
                
'is_default' => '0',
                
'logo_image' => 'logo.png'
            
),
            array(
                
'theme_id' => '1',
                
'name' => 'Density',
                
'folder' => 'density',
                
'created' => '1212227060',
                
'is_active' => '1',
                
'is_default' => '0',
                
'logo_image' => 'logo.png'
            
)            
        );
        foreach (
$aRows as $aRow)
        {
            
$aInsert = array();
            foreach (
$aRow as $sKey => $sValue)
            {
                
$aInsert[$sKey] = $sValue;
            }
            
$this->_db()->insert(Phpfox::getT('theme_style'), $aInsert);
        }

$this->_db()->insert(Phpfox::getT('setting'), array(
        
'group_id' => null,
        
'module_id' => 'core',
        
'product_id' => 'phpfox',
        
'is_hidden' => '1',
        
'version_id' => '3.0.0beta1',
        
'type_id' => 'integer',
        
'var_name' => 'v3_legacy_upgrade',
        
'phrase_var_name' => 'setting_v3_legacy_upgrade',
        
'value_actual' => '1',
        
'value_default' => '0',
        
'ordering' => '0'
    
)
);

$aTitleUpdate = array(
    
'poll' => 'question_url',
    
'event' => 'title_url',
    
'photo' => 'title_url',
    
'quiz' => 'title_url',
    
'music_song' => 'title_url',
    
'music_album' => 'name_url',
    
'marketplace' => 'title_url'
);

foreach (
$aTitleUpdate as $sTable => $sField)
{
    
$this->_db()->query('ALTER TABLE ' Phpfox::getT($sTable) . '  CHANGE ' $sField ' ' $sField ' VARCHAR( 255 ) NULL DEFAULT NULL');
}

        
$aPageCategories = array (
          
=> 
          array (
            
'name' => 'Entertainment',
            
'categories' => 
            array (
              
=> 
              array (
                
'name' => 'Album',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Amateur Sports Team',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Book',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Book Store',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Concert Tour',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Concert Venue',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Fictional Character',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Library',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Magazine',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Movie',
                
'page_type' => '0',
              ),
              
10 => 
              array (
                
'name' => 'Movie Theater',
                
'page_type' => '0',
              ),
              
11 => 
              array (
                
'name' => 'Music Award',
                
'page_type' => '0',
              ),
              
12 => 
              array (
                
'name' => 'Music Chart',
                
'page_type' => '0',
              ),
              
13 => 
              array (
                
'name' => 'Music Video',
                
'page_type' => '0',
              ),
              
14 => 
              array (
                
'name' => 'Musical Instrument',
                
'page_type' => '0',
              ),
              
15 => 
              array (
                
'name' => 'Playlist',
                
'page_type' => '0',
              ),
              
16 => 
              array (
                
'name' => 'Professional Sports Team',
                
'page_type' => '0',
              ),
              
17 => 
              array (
                
'name' => 'Radio Station',
                
'page_type' => '0',
              ),
              
18 => 
              array (
                
'name' => 'Record Label',
                
'page_type' => '0',
              ),
              
19 => 
              array (
                
'name' => 'School Sports Team',
                
'page_type' => '0',
              ),
              
20 => 
              array (
                
'name' => 'Song',
                
'page_type' => '0',
              ),
              
21 => 
              array (
                
'name' => 'Sports League',
                
'page_type' => '0',
              ),
              
22 => 
              array (
                
'name' => 'Sports Venue',
                
'page_type' => '0',
              ),
              
23 => 
              array (
                
'name' => 'Studio',
                
'page_type' => '0',
              ),
              
24 => 
              array (
                
'name' => 'TV Channel',
                
'page_type' => '0',
              ),
              
25 => 
              array (
                
'name' => 'TV Network',
                
'page_type' => '0',
              ),
              
26 => 
              array (
                
'name' => 'TV Show',
                
'page_type' => '0',
              ),
              
27 => 
              array (
                
'name' => 'TV/Movie Award',
                
'page_type' => '0',
              ),
            ),
          ),
          
=> 
          array (
            
'name' => 'Brand or Product',
            
'categories' => 
            array (
              
=> 
              array (
                
'name' => 'Appliances',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Baby Goods/Kids Goods',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Bags/Luggage',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Building Materials',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Camera/Photo',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Cars',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Clothing',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Commercial Equipment',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Computers',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Drugs',
                
'page_type' => '0',
              ),
              
10 => 
              array (
                
'name' => 'Electronics',
                
'page_type' => '0',
              ),
              
11 => 
              array (
                
'name' => 'Food/Beverages',
                
'page_type' => '0',
              ),
              
12 => 
              array (
                
'name' => 'Furniture',
                
'page_type' => '0',
              ),
              
13 => 
              array (
                
'name' => 'Games/Toys',
                
'page_type' => '0',
              ),
              
14 => 
              array (
                
'name' => 'Health/Beauty',
                
'page_type' => '0',
              ),
              
15 => 
              array (
                
'name' => 'Home Decor',
                
'page_type' => '0',
              ),
              
16 => 
              array (
                
'name' => 'Household Supplies',
                
'page_type' => '0',
              ),
              
17 => 
              array (
                
'name' => 'Jewelry/Watches',
                
'page_type' => '0',
              ),
              
18 => 
              array (
                
'name' => 'Kitchen/Cooking',
                
'page_type' => '0',
              ),
              
19 => 
              array (
                
'name' => 'Movies/Music',
                
'page_type' => '0',
              ),
              
20 => 
              array (
                
'name' => 'Musical Instrument',
                
'page_type' => '0',
              ),
              
21 => 
              array (
                
'name' => 'Office Supplies',
                
'page_type' => '0',
              ),
              
22 => 
              array (
                
'name' => 'Outdoor Gear/Sporting Goods',
                
'page_type' => '0',
              ),
              
23 => 
              array (
                
'name' => 'Patio/Garden',
                
'page_type' => '0',
              ),
              
24 => 
              array (
                
'name' => 'Pet Supplies',
                
'page_type' => '0',
              ),
              
25 => 
              array (
                
'name' => 'Product/Service',
                
'page_type' => '0',
              ),
              
26 => 
              array (
                
'name' => 'Software',
                
'page_type' => '0',
              ),
              
27 => 
              array (
                
'name' => 'Tools/Equipment',
                
'page_type' => '0',
              ),
              
28 => 
              array (
                
'name' => 'Vitamins/Supplements',
                
'page_type' => '0',
              ),
              
29 => 
              array (
                
'name' => 'Website',
                
'page_type' => '0',
              ),
              
30 => 
              array (
                
'name' => 'Wine/Spirits',
                
'page_type' => '0',
              ),
            ),
          ),
          
=> 
          array (
            
'name' => 'Group or Community',
            
'categories' => 
            array (
              
=> 
              array (
                
'name' => 'Business',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Common Interest',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Entertainment & Arts ',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Geography',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Internet & Technology',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Just for Fun',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Music',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Organisations',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Sports & Recreation',
                
'page_type' => '1',
              ),
              
=> 
              array (
                
'name' => 'Student Groups',
                
'page_type' => '1',
              ),
            ),
          ),
          
=> 
          array (
            
'name' => 'Local Business or Place',
            
'categories' => 
            array (
              
=> 
              array (
                
'name' => 'Airport',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Arts/Entertainment/Nightlife',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Attractions/Things to Do',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Automotive',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Bank/Financial Services',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Bar',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Book Store',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Business Services',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Church/Religious Organization',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Club',
                
'page_type' => '0',
              ),
              
10 => 
              array (
                
'name' => 'Community/Government',
                
'page_type' => '0',
              ),
              
11 => 
              array (
                
'name' => 'Concert Venue',
                
'page_type' => '0',
              ),
              
12 => 
              array (
                
'name' => 'Education',
                
'page_type' => '0',
              ),
              
13 => 
              array (
                
'name' => 'Event Planning/Event Services',
                
'page_type' => '0',
              ),
              
14 => 
              array (
                
'name' => 'Food/Grocery',
                
'page_type' => '0',
              ),
              
15 => 
              array (
                
'name' => 'Health/Medical/Pharmacy',
                
'page_type' => '0',
              ),
              
16 => 
              array (
                
'name' => 'Home Improvement',
                
'page_type' => '0',
              ),
              
17 => 
              array (
                
'name' => 'Hospital/Clinic',
                
'page_type' => '0',
              ),
              
18 => 
              array (
                
'name' => 'Hotel',
                
'page_type' => '0',
              ),
              
19 => 
              array (
                
'name' => 'Landmark',
                
'page_type' => '0',
              ),
              
20 => 
              array (
                
'name' => 'Library',
                
'page_type' => '0',
              ),
              
21 => 
              array (
                
'name' => 'Local Business',
                
'page_type' => '0',
              ),
              
22 => 
              array (
                
'name' => 'Movie Theater',
                
'page_type' => '0',
              ),
              
23 => 
              array (
                
'name' => 'Museum/Art Gallery',
                
'page_type' => '0',
              ),
              
24 => 
              array (
                
'name' => 'Pet Services',
                
'page_type' => '0',
              ),
              
25 => 
              array (
                
'name' => 'Professional Services',
                
'page_type' => '0',
              ),
              
26 => 
              array (
                
'name' => 'Public Places',
                
'page_type' => '0',
              ),
              
27 => 
              array (
                
'name' => 'Real Estate',
                
'page_type' => '0',
              ),
              
28 => 
              array (
                
'name' => 'Restaurant/Cafe',
                
'page_type' => '0',
              ),
              
29 => 
              array (
                
'name' => 'School',
                
'page_type' => '0',
              ),
              
30 => 
              array (
                
'name' => 'Shopping/Retail',
                
'page_type' => '0',
              ),
              
31 => 
              array (
                
'name' => 'Spas/Beauty/Personal Care',
                
'page_type' => '0',
              ),
              
32 => 
              array (
                
'name' => 'Sports Venue',
                
'page_type' => '0',
              ),
              
33 => 
              array (
                
'name' => 'Sports/Recreation/Activities',
                
'page_type' => '0',
              ),
              
34 => 
              array (
                
'name' => 'Tours/Sightseeing',
                
'page_type' => '0',
              ),
              
35 => 
              array (
                
'name' => 'Transit Stop',
                
'page_type' => '0',
              ),
              
36 => 
              array (
                
'name' => 'Transportation',
                
'page_type' => '0',
              ),
              
37 => 
              array (
                
'name' => 'University',
                
'page_type' => '0',
              ),
            ),
          ),
          
=> 
          array (
            
'name' => 'Company, Organization, or Institution',
            
'categories' => 
            array (
              
=> 
              array (
                
'name' => 'Aerospace/Defense',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Automobiles and Parts',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Bank/Financial Institution',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Biotechnology',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Cause',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Chemicals',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Church/Religious Organization',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Community Organization',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Company',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Computers/Technology',
                
'page_type' => '0',
              ),
              
10 => 
              array (
                
'name' => 'Consulting/Business Services',
                
'page_type' => '0',
              ),
              
11 => 
              array (
                
'name' => 'Education',
                
'page_type' => '0',
              ),
              
12 => 
              array (
                
'name' => 'Energy/Utility',
                
'page_type' => '0',
              ),
              
13 => 
              array (
                
'name' => 'Engineering/Construction',
                
'page_type' => '0',
              ),
              
14 => 
              array (
                
'name' => 'Farming/Agriculture',
                
'page_type' => '0',
              ),
              
15 => 
              array (
                
'name' => 'Food/Beverages',
                
'page_type' => '0',
              ),
              
16 => 
              array (
                
'name' => 'Government Organization',
                
'page_type' => '0',
              ),
              
17 => 
              array (
                
'name' => 'Health/Beauty',
                
'page_type' => '0',
              ),
              
18 => 
              array (
                
'name' => 'Health/Medical/Pharmaceuticals',
                
'page_type' => '0',
              ),
              
19 => 
              array (
                
'name' => 'Industrials',
                
'page_type' => '0',
              ),
              
20 => 
              array (
                
'name' => 'Insurance Company',
                
'page_type' => '0',
              ),
              
21 => 
              array (
                
'name' => 'Internet/Software',
                
'page_type' => '0',
              ),
              
22 => 
              array (
                
'name' => 'Legal/Law',
                
'page_type' => '0',
              ),
              
23 => 
              array (
                
'name' => 'Media/News/Publishing',
                
'page_type' => '0',
              ),
              
24 => 
              array (
                
'name' => 'Mining/Materials',
                
'page_type' => '0',
              ),
              
25 => 
              array (
                
'name' => 'Non-Governmental Organization (NGO)',
                
'page_type' => '0',
              ),
              
26 => 
              array (
                
'name' => 'Non-Profit Organization',
                
'page_type' => '0',
              ),
              
27 => 
              array (
                
'name' => 'Organization',
                
'page_type' => '0',
              ),
              
28 => 
              array (
                
'name' => 'Political Organization',
                
'page_type' => '0',
              ),
              
29 => 
              array (
                
'name' => 'Political Party',
                
'page_type' => '0',
              ),
              
30 => 
              array (
                
'name' => 'Retail and Consumer Merchandise',
                
'page_type' => '0',
              ),
              
31 => 
              array (
                
'name' => 'School',
                
'page_type' => '0',
              ),
              
32 => 
              array (
                
'name' => 'Small Business',
                
'page_type' => '0',
              ),
              
33 => 
              array (
                
'name' => 'Telecommunication',
                
'page_type' => '0',
              ),
              
34 => 
              array (
                
'name' => 'Transport/Freight',
                
'page_type' => '0',
              ),
              
35 => 
              array (
                
'name' => 'Travel/Leisure',
                
'page_type' => '0',
              ),
              
36 => 
              array (
                
'name' => 'University',
                
'page_type' => '0',
              ),
            ),
          ),
          
=> 
          array (
            
'name' => 'Artist, Band or Public Figure',
            
'categories' => 
            array (
              
=> 
              array (
                
'name' => 'Actor/Director',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Artist',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Athlete',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Author',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Business Person',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Chef',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Coach',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Comedian',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Dancer',
                
'page_type' => '0',
              ),
              
=> 
              array (
                
'name' => 'Doctor',
                
'page_type' => '0',
              ),
              
10 => 
              array (
                
'name' => 'Editor',
                
'page_type' => '0',
              ),
              
11 => 
              array (
                
'name' => 'Entertainer',
                
'page_type' => '0',
              ),
              
12 => 
              array (
                
'name' => 'Fictional Character',
                
'page_type' => '0',
              ),
              
13 => 
              array (
                
'name' => 'Government Official',
                
'page_type' => '0',
              ),
              
14 => 
              array (
                
'name' => 'Journalist',
                
'page_type' => '0',
              ),
              
15 => 
              array (
                
'name' => 'Lawyer',
                
'page_type' => '0',
              ),
              
16 => 
              array (
                
'name' => 'Monarch',
                
'page_type' => '0',
              ),
              
17 => 
              array (
                
'name' => 'Musician/Band',
                
'page_type' => '0',
              ),
              
18 => 
              array (
                
'name' => 'News Personality',
                
'page_type' => '0',
              ),
              
19 => 
              array (
                
'name' => 'Politician',
                
'page_type' => '0',
              ),
              
20 => 
              array (
                
'name' => 'Producer',
                
'page_type' => '0',
              ),
              
21 => 
              array (
                
'name' => 'Public Figure',
                
'page_type' => '0',
              ),
              
22 => 
              array (
                
'name' => 'Teacher',
                
'page_type' => '0',
              ),
              
23 => 
              array (
                
'name' => 'Writer',
                
'page_type' => '0',
              ),
            ),
          ),
        );
        
        
$iCnt 0;
        foreach (
$aPageCategories as $aCategory)
        {
            
$iCnt++;
            
$iInsertId $this->_db()->insert(Phpfox::getT('pages_type'), array(
                    
'is_active' => '1',
                    
'name' => $aCategory['name'],
                    
'time_stamp' => PHPFOX_TIME,
                    
'ordering' => $iCnt
                
)
            );
            
            
$iSubCnt 0;
            foreach (
$aCategory['categories'] as $aSub)
            {
                
$iSubCnt++;
                
$this->_db()->insert(Phpfox::getT('pages_category'), array(
                        
'type_id' => $iInsertId,
                        
'is_active' => '1',
                        
'name' => $aSub['name'],
                        
'page_type' => $aSub['page_type'],
                        
'ordering' => $iSubCnt
                    
)
                );
            }            
        }
    
        
$aAppCategories = array(
            
'Just for Fun',            
            
'Gaming',
            
'Sports',
            
'Utility',
            
'Education',
            
'Dating',
            
'Messaging',
            
'Chat',
            
'Music',
            
'Events',
            
'Alerts',
            
'Photo',
            
'Business',
            
'Video',
            
'Politics',
            
'Fashion',
            
'Food and Drink',
            
'Travel',
            
'Money',
            
'Mobile',
            
'Classified',
            
'File Sharing'
        
);        
        
sort($aAppCategories);
        
$iCategoryOrder 0;
        foreach (
$aAppCategories as $sCategory)
        {
            
$iCategoryOrder++;
            
$this->_db()->insert(Phpfox::getT('app_category'), array(                    
                    
'name' => $sCategory                    
                
)
            );
        }        

// Make all custom fields belong to "custom"        
$this->_db()->update(Phpfox::getT('custom_field'), array('module_id' => 'custom'), 'module_id != "custom"');
$bCompleted true;

?>
Онлайн: 2
Реклама