소스 검색

Merge branch 'master' of https://github.com/boonex/dolphin

AntonLV 12 년 전
부모
커밋
81e3e87274
100개의 변경된 파일과 240개의 추가작업 그리고 2265개의 파일을 삭제
  1. 0 57
      calendar.php
  2. 0 380
      categories.php
  3. 0 167
      inc/classes/BxDolAdminBuilder.php
  4. 0 265
      inc/classes/BxDolCalendar.php
  5. 0 214
      inc/classes/BxDolCategories.php
  6. 70 0
      inc/classes/BxDolConnection.php
  7. 0 5
      inc/classes/BxDolCronCmd.php
  8. 16 46
      inc/classes/BxDolForm.php
  9. 0 9
      inc/classes/BxDolLanguagesQuery.php
  10. 0 101
      inc/classes/BxDolMobileTemplate.php
  11. 0 1
      inc/classes/BxDolProfile.php
  12. 0 243
      inc/classes/BxDolTags.php
  13. 0 1
      inc/classes/BxDolTemplate.php
  14. 0 50
      inc/tags.inc.php
  15. 16 241
      install/sql/system.sql
  16. 0 6
      member.php
  17. 49 1
      modules/base/profile/classes/BxBaseModProfileModule.php
  18. 18 1
      modules/base/profile/classes/BxBaseModProfileSearchResult.php
  19. 0 14
      modules/boonex/antispam/install/config.php
  20. 0 9
      modules/boonex/developer/install/config.php
  21. 6 41
      modules/boonex/english/data/langs/system.xml
  22. 13 1
      modules/boonex/membership_pricing/install/sql/install.sql
  23. 5 1
      modules/boonex/membership_pricing/install/sql/uninstall.sql
  24. 3 1
      modules/boonex/notes/install/sql/enable.sql
  25. 2 1
      modules/boonex/organizations/classes/BxOrgsConfig.php
  26. 6 25
      modules/boonex/organizations/classes/BxOrgsSearchResult.php
  27. 2 0
      modules/boonex/organizations/install/langs/en.xml
  28. 3 1
      modules/boonex/organizations/install/sql/enable.sql
  29. 2 1
      modules/boonex/persons/classes/BxPersonsConfig.php
  30. 6 25
      modules/boonex/persons/classes/BxPersonsSearchResult.php
  31. 2 0
      modules/boonex/persons/install/langs/en.xml
  32. 3 1
      modules/boonex/persons/install/sql/enable.sql
  33. 0 14
      modules/boonex/profiler/install/config.php
  34. 0 105
      modules/boonex/russian/data/langs/system.xml
  35. 0 6
      modules/boonex/sites/install/config.php
  36. 1 1
      modules/boonex/sites/install/sql/enable.sql
  37. 0 2
      modules/boonex/sites/updates/update_100_200/install/config.php
  38. 0 14
      modules/boonex/smtpmailer/install/config.php
  39. 6 4
      modules/boonex/uni/data/template/studio/scripts/BxTemplStudioFunctions.php
  40. 0 19
      modules/boonex/uni/data/template/system/scripts/BxTemplCalendar.php
  41. 0 16
      modules/boonex/uni/data/template/system/scripts/BxTemplCategories.php
  42. 0 18
      modules/boonex/uni/data/template/system/scripts/BxTemplCategoriesModule.php
  43. 11 10
      modules/boonex/uni/data/template/system/scripts/BxTemplFunctions.php
  44. 0 16
      modules/boonex/uni/data/template/system/scripts/BxTemplTags.php
  45. 0 17
      modules/boonex/uni/data/template/system/scripts/BxTemplTagsModule.php
  46. 0 0
      plugins/tiny_mce/jquery.tinymce.js
  47. 0 0
      plugins/tiny_mce/langs/ar.js
  48. 0 0
      plugins/tiny_mce/langs/be.js
  49. 0 0
      plugins/tiny_mce/langs/bg.js
  50. 0 0
      plugins/tiny_mce/langs/ca.js
  51. 0 0
      plugins/tiny_mce/langs/cn.js
  52. 0 0
      plugins/tiny_mce/langs/cs.js
  53. 0 0
      plugins/tiny_mce/langs/cy.js
  54. 0 0
      plugins/tiny_mce/langs/da.js
  55. 0 0
      plugins/tiny_mce/langs/de.js
  56. 0 0
      plugins/tiny_mce/langs/el.js
  57. 0 0
      plugins/tiny_mce/langs/en.js
  58. 0 0
      plugins/tiny_mce/langs/es.js
  59. 0 0
      plugins/tiny_mce/langs/et.js
  60. 0 0
      plugins/tiny_mce/langs/eu.js
  61. 0 0
      plugins/tiny_mce/langs/fa.js
  62. 0 0
      plugins/tiny_mce/langs/fi.js
  63. 0 0
      plugins/tiny_mce/langs/fr.js
  64. 0 0
      plugins/tiny_mce/langs/gl.js
  65. 0 0
      plugins/tiny_mce/langs/he.js
  66. 0 0
      plugins/tiny_mce/langs/hu.js
  67. 0 0
      plugins/tiny_mce/langs/id.js
  68. 0 0
      plugins/tiny_mce/langs/it.js
  69. 0 0
      plugins/tiny_mce/langs/ja.js
  70. 0 0
      plugins/tiny_mce/langs/km.js
  71. 0 0
      plugins/tiny_mce/langs/ko.js
  72. 0 0
      plugins/tiny_mce/langs/lt.js
  73. 0 0
      plugins/tiny_mce/langs/lv.js
  74. 0 0
      plugins/tiny_mce/langs/mk.js
  75. 0 0
      plugins/tiny_mce/langs/nb.js
  76. 0 0
      plugins/tiny_mce/langs/nl.js
  77. 0 0
      plugins/tiny_mce/langs/no.js
  78. 0 0
      plugins/tiny_mce/langs/pl.js
  79. 0 0
      plugins/tiny_mce/langs/pt.js
  80. 0 0
      plugins/tiny_mce/langs/ro.js
  81. 0 0
      plugins/tiny_mce/langs/ru.js
  82. 0 0
      plugins/tiny_mce/langs/sk.js
  83. 0 0
      plugins/tiny_mce/langs/sl.js
  84. 0 0
      plugins/tiny_mce/langs/sq.js
  85. 0 0
      plugins/tiny_mce/langs/sv.js
  86. 0 0
      plugins/tiny_mce/langs/tr.js
  87. 0 0
      plugins/tiny_mce/langs/uk.js
  88. 0 0
      plugins/tiny_mce/langs/zh.js
  89. 0 5
      plugins/tiny_mce/plugins/advhr/css/advhr.css
  90. 0 1
      plugins/tiny_mce/plugins/advhr/editor_plugin.js
  91. 0 57
      plugins/tiny_mce/plugins/advhr/editor_plugin_src.js
  92. 0 43
      plugins/tiny_mce/plugins/advhr/js/rule.js
  93. 0 1
      plugins/tiny_mce/plugins/advhr/langs/ar_dlg.js
  94. 0 1
      plugins/tiny_mce/plugins/advhr/langs/be_dlg.js
  95. 0 1
      plugins/tiny_mce/plugins/advhr/langs/bg_dlg.js
  96. 0 1
      plugins/tiny_mce/plugins/advhr/langs/ca_dlg.js
  97. 0 1
      plugins/tiny_mce/plugins/advhr/langs/cn_dlg.js
  98. 0 1
      plugins/tiny_mce/plugins/advhr/langs/cs_dlg.js
  99. 0 1
      plugins/tiny_mce/plugins/advhr/langs/cy_dlg.js
  100. 0 1
      plugins/tiny_mce/plugins/advhr/langs/da_dlg.js

+ 0 - 57
calendar.php

@@ -1,57 +0,0 @@
-<?php
-
-// TODO: decide later what to do with profiles functionality
-
-require_once('./inc/header.inc.php');
-require_once( BX_DIRECTORY_PATH_INC  . 'design.inc.php' );
-require_once(BX_DIRECTORY_PATH_INC . 'admin.inc.php');
-require_once(BX_DIRECTORY_PATH_INC . 'db.inc.php');
-
-bx_import('BxDolProfileFields');
-bx_import('BxDolProfilesController');
-bx_import("BxTemplProfileView");
-bx_import("BxTemplProfileView");
-bx_import("BxTemplSearchProfile");
-
-check_logged();
-
-bx_import('BxDolTemplate');
-$oTemplate = BxDolTemplate::getInstance();
-$oTemplate->setPageNameIndex(7);
-$oTemplate->setPageParams(array(
-    'header' => _t('_People_Calendar')
-));
-$oTemplate->setPageContent('page_main_code', getBlockCode_Results(100));
-PageCode();
-
-function getBlockCode_Results($iBlockID) {
-    $sAction = strip_tags($_GET['action']);
-    switch ($sAction) {
-        case 'browse':
-            $sCode = getProfilesByDate($_GET['date']);
-            break;
-        default:
-            $sCode = getCalendar();
-    }
-    return $sCode;
-}
-
-function getProfilesByDate ($sDate) {
-    $sDate = strip_tags($sDate);
-    $aDateParams = explode('/', $sDate);
-    $oSearch = new BxTemplSearchProfile('calendar', (int)$aDateParams[0], (int)$aDateParams[1], (int)$aDateParams[2]);
-    $oSearch -> aConstants['linksTempl']['browseAll'] = 'calendar.php?';
-
-    $sCode = $oSearch->displayResultBlock();
-    return $oSearch->displaySearchBox('<div class="search_container">'
-        . $sCode . '</div>', $oSearch->showPagination(false, false, false));
-}
-
-function getCalendar () {
-    $oProfile = new BxBaseProfileGenerator(getLoggedId());
-    $mSearchRes = $oProfile->GenProfilesCalendarBlock();
-    list($sResults, $aDBTopMenu, $sPagination, $sTopFilter) = $mSearchRes;
-    return DesignBoxContent(_t('_People_Calendar'), $sResults, 1);
-}
-
-?>

+ 0 - 380
categories.php

@@ -1,380 +0,0 @@
-<?php
-
-// TODO: reconsider almost all functionality in this file, according to new concept it should NOT be separate page with all categories, every module has its own page with tags
-
-/***************************************************************************
-*                            Dolphin Smart Community Builder
-*                              -------------------
-*     begin                : Mon Mar 23 2006
-*     copyright            : (C) 2007 BoonEx Group
-*     website              : http://www.boonex.com
-* This file is part of Dolphin - Smart Community Builder
-*
-* Dolphin is free software; you can redistribute it and/or modify it under
-* the terms of the GNU General Public License as published by the
-* Free Software Foundation; either version 2 of the
-* License, or  any later version.
-*
-* Dolphin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-* without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-* See the GNU General Public License for more details.
-* You should have received a copy of the GNU General Public License along with Dolphin,
-* see license.txt file; if not, write to marketing@boonex.com
-***************************************************************************/
-
-define('BX_CATEG_ACTION_ALL', 'all');
-define('BX_CATEG_ACTION_COMMON', 'common');
-define('BX_CATEG_ACTION_USERS', 'users');
-define('BX_CATEG_ACTION_CALENDAR', 'calendar');
-define('BX_CATEG_ACTION_SEARCH', 'search');
-
-require_once( 'inc/header.inc.php' );
-require_once( BX_DIRECTORY_PATH_INC . 'design.inc.php' );
-
-bx_import('BxDolTemplate');
-bx_import('BxTemplCategories');
-bx_import('BxDolPageView');
-bx_import('BxTemplCalendar');
-
-$bAjaxMode = isset($_SERVER['HTTP_X_REQUESTED_WITH']) and $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ? true : false;
-
-function showCategories($aParam = array(), $iBoxId = 1, $sAction = '', $isBox = false, $bOrderPanel = false, $sTitle)
-{
-    $oCateg = new BxTemplCategories();
-
-    $oCateg->getTagObjectConfig($aParam);
-
-    if (empty($oCateg->aTagObjects))
-    {
-        if ($isBox)
-            return DesignBoxContent($sTitle, MsgBox(_t('_Empty')), 1);
-        else
-            return MsgBox(_t('_Empty'));
-    }
-
-    $aParam['type'] = isset($_GET['tags_mode']) && isset($oCateg->aTagObjects[$_GET['tags_mode']]) ? $_GET['tags_mode'] : $oCateg->getFirstObject();
-
-    $sCode = $oCateg->display($aParam, $iBoxId, $sAction, $bOrderPanel, getParam('categ_show_columns'));
-
-    if ($isBox)
-    {
-        $aCaptionMenu = $oCateg->getCategTopMenuHtml($aParam, $iBoxId, $sAction);
-        $sCode = DesignBoxContent($sTitle, $sCode, 1, $aCaptionMenu);
-        $sCode = '<div id="page_block_' . $iBoxId . '">' . $sCode . '<div class="clear_both"></div></div>';
-        return $sCode;
-    }
-    else
-        return array(
-            $sCode,
-            $oCateg->getCategTopMenu($aParam, $sAction),
-            array(),
-            ($sDate ? _t('_categ_by_day') . $sDate : '')
-        );
-}
-
-
-class CategoriesCalendar extends BxTemplCalendar
-{
-    function CategoriesCalendar($iYear, $iMonth)
-    {
-        parent::BxTemplCalendar($iYear, $iMonth);
-    }
-
-    function display() {
-        $aVars = array (
-            'bx_repeat:week_names' => $this->_getWeekNames (),
-            'bx_repeat:calendar_row' => $this->_getCalendar (),
-            'month_prev_url' => $this->getBaseUri () . "&year={$this->iPrevYear}&month={$this->iPrevMonth}",
-            'month_prev_name' => _t('_month_prev'),
-            'month_prev_icon' => getTemplateIcon('sys_back.png'),
-            'month_next_url' => $this->getBaseUri () . "&year={$this->iNextYear}&month={$this->iNextMonth}",
-            'month_next_name' => _t('_month_next'),
-            'month_next_icon' => getTemplateIcon('sys_next.png'),
-            'month_current' => $this->getTitle(),
-        );
-
-        $oSysTemplate = BxDolTemplate::getInstance();
-
-        $sHtml = $oSysTemplate->parseHtmlByName('calendar.html', $aVars);
-        $sHtml = preg_replace ('#<bx_repeat:events>.*?</bx_repeat:events>#s', '', $sHtml);
-        $oSysTemplate->addCss('calendar.css');
-        return $sHtml;
-    }
-
-    function getData()
-    {
-        $oDb = new BxDolDb();
-
-        return $oDb->getAll("SELECT *, DAYOFMONTH(`Date`) AS `Day`
-            FROM `sys_categories`
-            WHERE `Date` >= TIMESTAMP('{$this->iYear}-{$this->iMonth}-1')
-            AND `Date` < TIMESTAMP('{$this->iNextYear}-{$this->iNextMonth}-1')
-            AND `Owner` <> 0 AND `Status` = 'active'");
-    }
-
-    function getBaseUri()
-    {
-        return BX_DOL_URL_ROOT . 'categories.php?action=calendar';
-    }
-
-    function getBrowseUri()
-    {
-        return BX_DOL_URL_ROOT . 'categories.php?action=calendar';
-    }
-
-    function getEntriesNames ()
-    {
-        return array(_t('_categ_single'), _t('_categ_plural'));
-    }
-
-    function _getCalendar ()
-    {
-        $sBrowseUri = $this->getBrowseUri();
-        list ($sEntriesSingle, $sEntriesMul) = $this->getEntriesNames ();
-
-        $this->_getCalendarGrid($aCalendarGrid);
-        $aRet = array ();
-        for ($i = 0; $i < 6; $i++) {
-
-            $aRow = array ('bx_repeat:cell');
-            $isRowEmpty = true;
-
-            for ($j = $this->iWeekStart; $j < $this->iWeekEnd; $j++) {
-
-                $aCell = array ();
-
-                if ($aCalendarGrid[$i][$j]['today']) {
-                    $aCell['class'] = 'sys_cal_cell sys_cal_today';
-                    $aCell['day'] = $aCalendarGrid[$i][$j]['day'];
-                    $aCell['bx_if:num'] = array ('condition' => $aCalendarGrid[$i][$j]['num'], 'content' => array(
-                        'num' => $aCalendarGrid[$i][$j]['num'],
-                        'href' => $sBrowseUri . '&year=' . $this->iYear . '&month=' . $this->iMonth . '&day=' . $aCell['day'],
-                        'entries' => 1 == $aCalendarGrid[$i][$j]['num'] ? $sEntriesSingle : $sEntriesMul,
-                    ));
-                    $isRowEmpty = false;
-                } elseif (isset($aCalendarGrid[$i][$j]['day'])) {
-                    $aCell['class'] = 'sys_cal_cell';
-                    $aCell['day'] = $aCalendarGrid[$i][$j]['day'];
-                    $aCell['bx_if:num'] = array ('condition' => $aCalendarGrid[$i][$j]['num'], 'content' => array(
-                        'num' => $aCalendarGrid[$i][$j]['num'],
-                        'href' => $sBrowseUri . '&year=' . $this->iYear . '&month=' . $this->iMonth . '&day=' . $aCell['day'],
-                        'entries' => 1 == $aCalendarGrid[$i][$j]['num'] ? $sEntriesSingle : $sEntriesMul,
-                    ));
-                    $isRowEmpty = false;
-                } else {
-                    $aCell['class'] = 'sys_cal_cell_blank';
-                    $aCell['day'] = '';
-                    $aCell['bx_if:num'] = array ('condition' => false, 'content' => array(
-                        'num' => '',
-                        'href' => '',
-                        'entries' => '',
-                    ));
-                }
-
-                if ($aCell)
-                    $aRow['bx_repeat:cell'][] = $aCell;
-            }
-
-            if ($aRow['bx_repeat:cell'] && !$isRowEmpty) {
-                $aRet[] = $aRow;
-            }
-        }
-        return $aRet;
-    }
-
-}
-
-class CategoriesCalendarPage extends BxDolPageView
-{
-    var $sPage;
-
-    function CategoriesCalendarPage()
-    {
-        $this->sPage = 'categ_calendar';
-        parent::BxDolPageView($this->sPage);
-    }
-
-    function getBlockCode_Calendar($iBlockId)
-    {
-        $sYear = isset($_GET['year']) ? (int)$_GET['year'] : '';
-        $sMonth = isset($_GET['month']) ? (int)$_GET['month'] : '';
-        $oCalendar = new CategoriesCalendar($sYear, $sMonth);
-
-        return $oCalendar->display();
-    }
-
-    function getBlockCode_CategoriesDate($iBlockId)
-    {
-        if (isset($_GET['year']) && isset($_GET['month']) && isset($_GET['day']))
-        {
-            $aParam = array(
-                'pagination' => getParam('categ_perpage_browse'),
-                'date' => array(
-                    'year' => (int)$_GET['year'],
-                    'month' => (int)$_GET['month'],
-                    'day' => (int)$_GET['day']
-                )
-            );
-
-            return showCategories($aParam, $iBlockId, BX_CATEG_ACTION_CALENDAR, false, false, _t('_categ_caption_calendar'));
-        }
-        else
-            return MsgBox(_t('_Empty'));
-    }
-}
-
-class CategoriesSearchPage extends BxDolPageView {
-
-    var $aSearchForm;
-    var $oForm;
-    var $sPage;
-
-    function CategoriesSearchPage()
-    {
-        $this->sPage = 'categ_search';
-        parent::BxDolPageView($this->sPage);
-
-        bx_import('BxTemplFormView');
-        $this->aSearchForm = array(
-            'form_attrs' => array(
-                'name'     => 'form_search_categories',
-                'action'   => '',
-                'method'   => 'post',
-            ),
-
-            'params' => array (
-                'db' => array(
-                    'submit_name' => 'submit_form',
-                ),
-            ),
-
-            'inputs' => array(
-                'Keyword' => array(
-                    'type' => 'text',
-                    'name' => 'Keyword',
-                    'caption' => _t('_categ_caption_keyword'),
-                    'required' => true,
-                    'checker' => array (
-                        'func' => 'length',
-                        'params' => array(1, 100),
-                        'error' => _t ('_categ_err_keyword'),
-                    ),
-                    'db' => array (
-                        'pass' => 'Xss',
-                    ),
-                ),
-                'Submit' => array (
-                    'type' => 'submit',
-                    'name' => 'submit_form',
-                    'value' => _t('_Submit'),
-                    'colspan' => true,
-                ),
-            ),
-        );
-
-        $this->oForm = new BxTemplFormView($this->aSearchForm);
-        $this->oForm->initChecker();
-    }
-
-    function getBlockCode_Form() {
-        return BxDolTemplate::getInstance()->parseHtmlByName('search_tags_box.html', array('form' => $this->oForm->getCode()));
-    }
-
-    function getBlockCode_Founded($iBlockId)
-    {
-        $aParam = array(
-            'pagination' => getParam('categ_perpage_browse')
-        );
-        $sFilter = bx_get('filter');
-        if ($sFilter !== false)
-            $aParam['filter'] = process_db_input($sFilter);
-        else if ($this->oForm->isSubmittedAndValid())
-            $aParam['filter'] = $this->oForm->getCleanValue('Keyword');
-
-        if (isset($aParam['filter']))
-            return showCategories($aParam, $iBlockId, BX_CATEG_ACTION_SEARCH, false, false, _t('_categ_caption_founded_categ'));
-        else
-            return MsgBox(_t('_Empty'));
-    }
-}
-
-function getPage_All()
-{
-    $aParam = array(
-        'pagination' => getParam('categ_perpage_browse')
-    );
-
-    return showCategories($aParam, 1, BX_CATEG_ACTION_ALL, true, true, _t('_categ_caption_all'));
-}
-
-function getPage_Common()
-{
-    $aParam = array(
-        'pagination' => getParam('categ_perpage_browse'),
-        'common' => true,
-    );
-
-    return showCategories($aParam, 1, BX_CATEG_ACTION_COMMON, true, false, _t('_categ_caption_common'));
-}
-
-function getPage_Users()
-{
-    $aParam = array(
-        'pagination' => getParam('categ_perpage_browse'),
-        'common' => false
-    );
-
-    return showCategories($aParam, 1, BX_CATEG_ACTION_USERS, true, false, _t('_categ_caption_users'));
-}
-
-function getPage_Calendar()
-{
-    $oCalendarPage = new CategoriesCalendarPage();
-
-    return $oCalendarPage->getCode();
-}
-
-function getPage_Search()
-{
-    $oSearchPage = new CategoriesSearchPage();
-
-    return $oSearchPage->getCode();
-}
-
-$sAction = empty($_GET['action']) ? '' : $_GET['action'];
-switch ($sAction)
-{
-    case BX_CATEG_ACTION_COMMON:
-        $sContent = getPage_Common();
-        break;
-
-    case BX_CATEG_ACTION_USERS:
-        $sContent = getPage_Users();
-        break;
-
-    case BX_CATEG_ACTION_CALENDAR:
-        $sContent = getPage_Calendar();
-        break;
-
-    case BX_CATEG_ACTION_SEARCH:
-        $sContent = getPage_Search();
-        break;
-
-    default:
-        $sContent = getPage_All();
-}
-
-if (!$bAjaxMode) {
-    $oTemplate = BxDolTemplate::getInstance();
-    $oTemplate->setPageNameIndex(25);
-    $oTemplate->setPageParams(array(
-        'header' => _t('_Categories'),
-        'header_text' => _t('_Categories'),
-    ));
-    $oTemplate->setPageContent('page_main_code', $sContent);
-
-    check_logged();
-    PageCode();
-}
-else
-    echo $sContent;

+ 0 - 167
inc/classes/BxDolAdminBuilder.php

@@ -1,167 +0,0 @@
-<?php
-/***************************************************************************
-*                            Dolphin Smart Community Builder
-*                              -----------------
-*     begin                : Mon Mar 23 2006
-*     copyright            : (C) 2006 BoonEx Group
-*     website              : http://www.boonex.com/
-* This file is part of Dolphin - Smart Community Builder
-*
-* Dolphin is free software. This work is licensed under a Creative Commons Attribution 3.0 License. 
-* http://creativecommons.org/licenses/by/3.0/
-*
-* Dolphin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-* without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-* See the Creative Commons Attribution 3.0 License for more details. 
-* You should have received a copy of the Creative Commons Attribution 3.0 License along with Dolphin, 
-* see license.txt file; if not, write to marketing@boonex.com
-***************************************************************************/
-
-
-class BxDolAdminBuilder {
-
-    var $_aContainers;
-    var $_sPostUrl;
-    var $_sTable;
-    var $_sFieldOrder = '`order`';
-    var $_sFieldContainer = '`active`';
-    var $_sFieldId = '`id`';
-    var $_sFieldTitle = '`title`';
-
-	/**
-     * Constructor
-	 * @param array $aContainers - containers, id as key and title as value
-	 */
-	function BxDolAdminBuilder($sTable, $sPostUrl, $aContainers) {
-        $this->_sPostUrl = $sPostUrl;
-        $this->_sTable = $sTable;
-        $this->_aContainers = $aContainers;
-	}
-
-    /**
-     * Process post actions here
-     */
-    function handlePostActions ($aData) {        
-        switch ($aData['action']) {
-            case 'SaveItemsOrder':
-                $this->postSaveItemsOrder ($aData);
-                break;
-        }
-    }
-
-    /**
-     * Post action: SaveItemsOrder
-     */
-    function postSaveItemsOrder ($aData) {        
-        if (!is_array($aData['cont_names']) || !is_array($aData['cont_data']))
-            return;
-        foreach ($aData['cont_names'] as $i => $sKey) {
-            $aIds = $this->_filterIds(explode(',', $aData['cont_data'][$i]));
-            $this->saveItemsOrderForContainer($sKey, $aIds);
-        }
-        echo 'ok';
-    }
-
-    /**
-     * Get ready to print builder page
-     */
-    function getBuilderPage () {
-
-        $sContanersIds = '';
-        $aContainersForTemplate = array ();
-        foreach ($this->_aContainers as $sKey => $sTitle) {
-            $sContanersIds .= '#bx-sort-cont-' . $sKey . ',';
-            $aContainersForTemplate[] = array (
-                'id' => $sKey,
-                'title' => $sTitle,                
-                'bx_repeat:items' => $this->_generateItemsForContainer($sKey),
-            );
-        }
-        $a = array (
-            'post_url' => $this->_sPostUrl,
-            'containers_ids' => substr($sContanersIds, 0, -1),
-            'bx_repeat:containers' => $aContainersForTemplate,
-        );
-        $this->addExternalResources ();
-        return $GLOBALS['oAdmTemplate']->parseHtmlByName('mobile_builder_page.html', $a);
-    }
-
-    /**
-     * Add external recources, like JS and CSS file
-     */
-    function addExternalResources () {
-        $GLOBALS['oAdmTemplate']->addJs(array(
-            'ui.core.js', 
-            'ui.sortable.js'
-        ));
-        $GLOBALS['oAdmTemplate']->addCss(array(
-            'mobile.css',
-            'mobile_builder.css',
-        ));
-    }
-
-    function _filterIds ($a) {
-        $aRet = array ();
-        foreach ($a as $iId) {
-            if (!$iId || $iId < 0)
-                continue;
-            $aRet[] = $iId;
-        }
-        return $aRet;
-    }
-
-    function _generateItemsForContainer ($sKey) {
-        $a = $this->getItemsForContainer ($sKey);
-        foreach ($a as $i => $r) {
-            $a[$i]['item'] = $this->getItem($r);
-        }
-        return $a;
-    }
-
-    /**
-     * Override this function to return data for particular container, defined in costructor.
-     * Each record must have 'id' and 'title' record at least.
-     * @param $sKey container id
-     * @return array
-     */
-    function getItemsForContainer ($sKey) {
-        // !!! override this
-        return array (
-            array ('id' => 1, 'title' => 'Opa1'),
-            array ('id' => 2, 'title' => 'Opa2'),
-        );        
-    }
-
-
-    /**
-     * Override this function to return real item for dragging
-     * @param $aItem array of item properties from database
-     * @return ready html
-     */
-    function getItem ($aItem) {
-        // !!! override this 
-        return $aItem['title'];
-    }
-
-    /**
-     * Override this function to save items order to database, but by default it should be fine in most situations
-     * @param $sKey container id
-     * @param $aOrderedIds arrayy of ids in the right order
-     * @return number of affected rows$aData
-     */
-    function saveItemsOrderForContainer($sKey, $aOrderedIds) {
-        global $MySQL;
-
-        if (!isset($this->_aContainers[$sKey]))
-            return false;
-
-        $iRet = 0;
-        $i = 1;  
-        foreach ($aOrderedIds as $iId) {         
-            $iRet += $MySQL->query("UPDATE {$this->_sTable} SET {$this->_sFieldOrder} = $i, {$this->_sFieldContainer} = '$sKey' WHERE {$this->_sFieldId} = " . (int)$iId);
-            ++$i;
-        }
-        return $iRet;
-    }
-}
-

+ 0 - 265
inc/classes/BxDolCalendar.php

@@ -1,265 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-/**
- * Calendar for your module content
- *
- * Related classes:
- *  BxBaseCalendar - calendar base representation
- *  BxTemplCalendar - custom template representation
- *
- *
- *
- * To add calendar to your content you need to inherit this class and override the following methods:
- * \code
- *  getEntriesNames ()
- *  getData ()
- *  getBaseUri ()
- *  getBrowseUri ()
- * \endcode
- *
- * see each function documentation for more information.
- *
- *
- *
- * Example of usage:
- * After overriding this class and adding necessary methods use thje following code to disp;lay calendar:
- * This code is called from module class:
- *
- * \code
- * function actionCalendar ($iYear = '', $iMonth = '') {
- *     bx_import ('Calendar', $this->_aModule);
- *     $oCalendar = bx_instance ($this->_aModule['class_prefix'] . 'Calendar', array ($iYear, $iMonth, $this->_oDb, $this->_oTemplate, $this->_oConfig));
- *     echo $oCalendar->display();
- * }
- * \endcode
- *
- *
- *
- * Memberships/ACL:
- * vote - ACTION_ID_VOTE
- *
- *
- *
- * Alerts:
- * this class don't risa any alert
- *
- */
-class BxDolCalendar extends BxDol {
-
-    var $iYear, $iMonth, $iPrevYear, $iPrevMonth, $iNextYear, $iNextMonth;
-    var $iFirstWeekDay, $iNumDaysInMonth, $sMonthName, $iWeekStart, $iWeekEnd;
-
-    function BxDolCalendar ($iYear, $iMonth) {
-        parent::BxDol();
-
-        // input values
-        $this->iYear = (int)$iYear ? (int)$iYear : date('Y');
-        $this->iMonth = (int)$iMonth ? (int)$iMonth : date('m');
-        $this->iDay = date('d');
-
-        $this->sMonthName = strftime('%B', mktime(0, 0, 0, $this->iMonth+1, $iDay, $this->iYear));
-        $this->iNumDaysInMonth = date('t', mktime(0, 0, 0, $this->iMonth+1, $iDay, $this->iYear));
-        $this->iFirstWeekDay = (int)date('w', mktime(0, 0, 0, $this->iMonth, 1, $this->iYear));
-
-        // previous month year, month
-        $this->iPrevYear = $this->iYear;
-        $this->iPrevMonth = $this->iMonth - 1;
-        if ( $this->iPrevMonth <= 0 ) {
-            $this->iPrevMonth = 12;
-            $this->iPrevYear--;
-        }
-        // next month year, month
-        $this->iNextYear = $this->iYear;
-        $this->iNextMonth = $this->iMonth + 1;
-        if ( $this->iNextMonth > 12 ) {
-            $this->iNextMonth = 1;
-            $this->iNextYear++;
-        }
-
-        // week config
-        list ($this->iWeekStart, $this->iWeekEnd) = (getParam('sys_calendar_starts_sunday') == 'on') ? array (0, 7) : array (1, 8);
-        if ($this->iFirstWeekDay < $this->iWeekStart)
-            $this->iFirstWeekDay = $this->iWeekEnd-1;
-    }
-
-    function _getWeekNames ($isMiniMode = false)
-    {
-        $sPostfix = '';
-        if ($isMiniMode)
-            $sPostfix = '_mini';
-        if(0 == $this->iWeekStart)
-            $aWeek[] = array('name' => _t('_week_sun' . $sPostfix));
-        $aWeek[] = array('name' => _t('_week_mon' . $sPostfix));
-        $aWeek[] = array('name' => _t('_week_tue' . $sPostfix));
-        $aWeek[] = array('name' => _t('_week_wed' . $sPostfix));
-        $aWeek[] = array('name' => _t('_week_thu' . $sPostfix));
-        $aWeek[] = array('name' => _t('_week_fri' . $sPostfix));
-        $aWeek[] = array('name' => _t('_week_sat' . $sPostfix));
-        if(8 == $this->iWeekEnd)
-            $aWeek[] = array('name' => _t('_week_sun' . $sPostfix));
-        return $aWeek;
-    }
-
-    function _getCalendarGrid (&$aCalendarGrid) {
-
-        // fill calendar with events
-        $aEvents = $this->getData();
-        $aCalendar = array ();
-
-        foreach ($aEvents as $a) {
-            $aCalendar[$a['Day']] += 1;
-        }
-
-        // make calendar grid
-        $aCalendarGrid = array ();
-        $iCurrentDay = 0;
-        for ($i = 0; $i < 6; $i++) {
-            for ($j = $this->iWeekStart; $j < $this->iWeekEnd; $j++) {
-                if ($this->iFirstWeekDay == $j || $i > 0 || $iCurrentDay > 0) {
-                    ++$iCurrentDay;
-                    if ($iCurrentDay > $this->iNumDaysInMonth) break 2;
-                    $aCalendarGrid[$i][$j]['day'] = $iCurrentDay;
-                    $aCalendarGrid[$i][$j]['today'] = ($this->iYear == date('Y') && $this->iMonth == date('m') && $iCurrentDay == $this->iDay);
-                    $aCalendarGrid[$i][$j]['num'] = isset($aCalendar[$iCurrentDay]) && $aCalendar[$iCurrentDay] > 0 ? $aCalendar[$iCurrentDay] : '';
-                }
-            }
-        }
-    }
-
-    function _getCalendar () {
-
-        $sBrowseUri = $this->getBrowseUri();
-        list ($sEntriesSingle, $sEntriesMul) = $this->getEntriesNames ();
-
-        $this->_getCalendarGrid($aCalendarGrid);
-        $aRet = array ();
-        for ($i = 0; $i < 6; $i++) {
-
-            $aRow = array ('bx_repeat:cell');
-            $isRowEmpty = true;
-
-            for ($j = $this->iWeekStart; $j < $this->iWeekEnd; $j++) {
-
-                $aCell = array ();
-
-                if ($aCalendarGrid[$i][$j]['today']) {
-                    $aCell['class'] = 'sys_cal_cell sys_cal_today';
-                    $aCell['day'] = $aCalendarGrid[$i][$j]['day'];
-                    $aCell['bx_if:num'] = array ('condition' => $aCalendarGrid[$i][$j]['num'], 'content' => array(
-                        'num' => $aCalendarGrid[$i][$j]['num'],
-                        'href' => $sBrowseUri . $this->iYear . '/' . $this->iMonth . '/' . $aCell['day'],
-                        'entries' => 1 == $aCalendarGrid[$i][$j]['num'] ? $sEntriesSingle : $sEntriesMul,
-                    ));
-                    $isRowEmpty = false;
-                } elseif (isset($aCalendarGrid[$i][$j]['day'])) {
-                    $aCell['class'] = 'sys_cal_cell';
-                    $aCell['day'] = $aCalendarGrid[$i][$j]['day'];
-                    $aCell['bx_if:num'] = array ('condition' => $aCalendarGrid[$i][$j]['num'], 'content' => array(
-                        'num' => $aCalendarGrid[$i][$j]['num'],
-                        'href' => $sBrowseUri . $this->iYear . '/' . $this->iMonth . '/' . $aCell['day'],
-                        'entries' => 1 == $aCalendarGrid[$i][$j]['num'] ? $sEntriesSingle : $sEntriesMul,
-                    ));
-                    $isRowEmpty = false;
-                } else {
-                    $aCell['class'] = 'sys_cal_cell_blank';
-                    $aCell['day'] = '';
-                    $aCell['bx_if:num'] = array ('condition' => false, 'content' => array(
-                        'num' => '',
-                        'href' => '',
-                        'entries' => '',
-                    ));
-                }
-
-                if ($aCell)
-                    $aRow['bx_repeat:cell'][] = $aCell;
-            }
-
-            if ($aRow['bx_repeat:cell'] && !$isRowEmpty) {
-                $aRet[] = $aRow;
-            }
-        }
-        return $aRet;
-    }
-
-
-    function getTitle () {
-        return $this->sMonthName . ', ' . $this->iYear;
-    }
-
-
-    // override function below to implement your own calendar
-
-    /**
-     * return records for current month, there is mandatory field `Day` - a day for current row
-     * use the following class variables to pass to your database query
-     * $this->iYear, $this->iMonth, $this->iNextYear, $this->iNextMonth
-     *
-     * for example:
-     * \code
-     * return $db->getAll ("
-     *  SELECT *, DAYOFMONTH(FROM_UNIXTIME(`EventStart`)) AS `Day`
-     *  FROM `my_table`
-     *  WHERE `Date` >= UNIX_TIMESTAMP('{$this->iYear}-{$this->iMonth}-1') AND `Date` < UNIX_TIMESTAMP('{$this->iNextYear}-{$this->iNextMonth}-1') AND `Status` = 'approved'");
-     * \endcode
-     */
-    function getData () {
-        // override this func
-        return array();
-    }
-
-    /**
-     * deprecated
-     *
-     * return html for data unit for some day, it is:
-     * - icon 32x32 with link if data have associated image, use $GLOBALS['oFunctions']->sysIcon() to return small icon
-     * - data title with link if data have no associated image
-     */
-    function getUnit (&$aData) {
-        // override this func
-        return '';
-    }
-
-    /**
-     * return base calendar url
-     * year and month will be added to this url automatically
-     * so if your base url is /m/some_module/calendar/, it will be transormed to
-     * /m/some_module/calendar/YEAR/MONTH, like /m/some_module/calendar/2009/3
-     */
-    function getBaseUri () {
-        // override this func
-        return BX_DOL_URL_ROOT;
-    }
-
-    /**
-     * return browse entries url
-     * year and month and day will be added to this url automatically
-     * so if your base url is /m/some_module/browse/calendar/, it will be transormed to
-     * /m/some_module/browse/calendar/YEAR/MONTH/DAY, like /m/some_module/browse/calendar/2009/3/15
-     */
-    function getBrowseUri () {
-        // override this func
-        return '';
-    }
-
-    /**
-     * return entries names in single and plural forms,
-     * for example: ('event', 'events') or ('profile', 'profiles')
-     */
-    function getEntriesNames () {
-        // override this func
-        return array(_t('_item'), _t('_items'));
-    }
-
-    /**
-     * return url for previous/next month
-     */
-    function getMonthUrl ($isNextMoths, $isMiniMode = false) {
-        return $this->getBaseUri () . ($isNextMoths ? "{$this->iNextYear}/{$this->iNextMonth}" : "{$this->iPrevYear}/{$this->iPrevMonth}");
-    }
-}

+ 0 - 214
inc/classes/BxDolCategories.php

@@ -1,214 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-bx_import('BxDolTags');
-
-define("CATEGORIES_DIVIDER", ';');
-
-class BxDolCategories extends BxDolTags {
-    var $sAutoApprovePrefix;
-
-    function BxDolCategories ($iPossOwner = 0) {
-        parent::BxDolTags();
-        $this->iViewer = (int)$iPossOwner > 0 ? (int)$iPossOwner : $this->iViewer;
-        $this->sCacheFile = 'sys_objects_categories';
-        $this->sNonParseParams = 'tags_non_parsable';
-        $this->sCacheTable = 'sys_objects_categories';
-        $this->sTagTable = 'sys_categories';
-        $this->aTagFields = array(
-            'id' => 'ID',
-            'type' => 'Type',
-            'tag' => 'Category',
-            'owner' => 'Owner',
-            'status' => 'Status',
-            'date' => 'Date'
-        );
-        $this->sAutoApprovePrefix = 'category_auto_app_';
-        $this->bToLower = false;
-    }
-
-    function getGroupChooser ($sType, $iOwnerId = 0, $bForm = false, $sCustomValues = '') {
-        $a = $this->getCategoriesList ($sType, $iOwnerId, $bForm);
-        $a = array('' => _t('_sys_please_select')) + (is_array($a) ? $a : array());
-
-        $aCustomValues = $this->explodeTags($sCustomValues);
-        foreach($aCustomValues as $iIndex => $sValue)
-            $a[$sValue] = $sValue;
-
-        return array(
-            'type' => 'select_box',
-                'name' => 'Categories',
-                'caption' => _t('_Categories'),
-                'values' => $a,
-                'required' => true,
-                'checker' => array (
-                    'func' => 'avail',
-                    'error' => _t ('_sys_err_categories'),
-                ),
-                'db' => array (
-                    'pass' => 'Categories',
-                ),
-            );
-    }
-
-    function getCategoriesList ($sType, $iOwnerId = 0, $bForm = false) {
-        $oDb = BxDolDb::getInstance();
-        $this->getTagObjectConfig();
-        $sType = array_key_exists($sType, $this->aTagObjects) === true ? $sType : 'bx_photos';
-        $iOwnerId = (int)$iOwnerId;
-        $sqlQuery = $oDb->prepare("SELECT `cat`.`{$this->aTagFields['tag']}`
-                     FROM `{$this->sTagTable}` `cat`
-                     WHERE (`cat`.`{$this->aTagFields['owner']}` = 0 OR `cat`.`{$this->aTagFields['owner']}` = ?)
-                     AND `cat`.`{$this->aTagFields['type']}` = ? AND `cat`.`{$this->aTagFields['status']}` = 'active'
-                     __sqlAdd__
-                     GROUP BY `cat`.`{$this->aTagFields['tag']}`", $iOwnerId, $sType);
-
-        $aAddSql = array();
-
-        if (getParam($this->sAutoApprovePrefix . $sType) != 'on')
-            $aAddSql[] = " AND `cat`.`{$this->aTagFields['status']}` = 'active'";
-
-        $sqlAdd = '';
-        foreach ($aAddSql as $sValue)
-            $sqlAdd .= $sValue;
-
-        $sqlQuery = str_replace('__sqlAdd__', $sqlAdd, $sqlQuery);
-
-        $a = $oDb->getAll($sqlQuery);
-        foreach ($a as $aList) {
-            if ($bForm)
-                $aCatList[$aList[$this->aTagFields['tag']]] = $aList[$this->aTagFields['tag']];
-            else
-                $aCatList[] = $aList[$this->aTagFields['tag']];
-        }
-        return $aCatList;
-    }
-
-    function getTagList($aParam) {
-        $oDb = BxDolDb::getInstance();
-        $sLimit = '';
-        $aTotalTags = array();
-        $sGroupBy = "GROUP BY `{$this->aTagFields['tag']}`";
-
-        if (isset($aParam['limit']))
-        {
-            $sLimit = 'LIMIT ';
-            if (isset($aParam['start']))
-                $sLimit .= (int)$aParam['start'] . ', ';
-            $sLimit .= (int)$aParam['limit'];
-        }
-
-        $sCondition = $this->_getSelectCondition($aParam);
-
-        if (isset($aParam['orderby']))
-        {
-            if ($aParam['orderby'] == 'popular')
-                $sGroupBy .= " ORDER BY `count` DESC, `{$this->aTagFields['tag']}` ASC";
-            else if ($aParam['orderby'] == 'recent')
-                $sGroupBy .= " ORDER BY `{$this->aTagFields['date']}` DESC, `{$this->aTagFields['tag']}` ASC";
-        }
-
-        $sDiffCount = '';
-
-        $sqlQuery = "SELECT
-            `tgs`.`{$this->aTagFields['tag']}` as `{$this->aTagFields['tag']}`,
-            `tgs`.`{$this->aTagFields['date']}` as `{$this->aTagFields['date']}`,
-            COUNT(`tgs`.`{$this->aTagFields['id']}`) AS `count`
-            FROM `{$this->sTagTable}` `tgs` $sCondition $sGroupBy $sLimit";
-
-        $aTags = $oDb->getAll($sqlQuery);
-        foreach ($aTags as $aTag) {
-            if ((int)$aTag['count'] > 0)
-                $aTotalTags[$aTag[$this->aTagFields['tag']]] = (int)$aTag['count'];
-        }
-
-        return $aTotalTags;
-    }
-
-    function getTagsCount($aParam) {
-
-        $sCondition = $this->_getSelectCondition($aParam);
-        $sqlQuery = "SELECT count(DISTINCT `tgs`.`{$this->aTagFields['tag']}`) AS `count` FROM
-            `{$this->sTagTable}` `tgs` {$sCondition}";
-
-        $oDb = BxDolDb::getInstance();
-        return $oDb->getOne($sqlQuery);
-    }
-
-    function _getSelectCondition($aParam)
-    {
-        $sCondition = "WHERE `tgs`.`{$this->aTagFields['owner']}` != 0";
-
-        if (!$aParam)
-            return $sCondition;
-
-        $oDb = BxDolDb::getInstance();
-
-        if (isset($aParam['common'])) {
-            $aUnitsCommon = $this->_getCommonCategories($aParam['type']);
-            $sCondition .= " AND `tgs`.`{$this->aTagFields['tag']}` " . (!$aParam['common'] ? 'NOT' : '') .
-                " IN (" . $oDb->implode_escape($aUnitsCommon) . ")";
-        }
-
-        if (isset($aParam['type']) && $aParam['type'])
-            $sCondition .= $oDb->prepare(" AND `tgs`.`{$this->aTagFields['type']}` = ?", $aParam['type']);
-
-        if (isset($aParam['status']) && $aParam['status'])
-            $sCondition .= $oDb->prepare(" AND tgs.`{$this->aTagFields['status']}` = ?", $aParam['status']);
-        else
-            $sCondition .= " AND tgs.`{$this->aTagFields['status']}` = 'active'";
-
-        if (isset($aParam['filter']) && $aParam['filter'])
-            $sCondition .= " AND `tgs`.`{$this->aTagFields['tag']}` LIKE '%" . $oDb->escape($aParam['filter']) . "%'";
-
-        if (isset($aParam['date']) && $aParam['date'])
-            $sCondition .= $oDb->prepare(" AND DATE(`tgs`.`{$this->aTagFields['date']}`) = DATE(?)", $aParam['date']['year'] . '-' . $aParam['date']['month'] . '-' . $aParam['date']['day']);
-
-        return $sCondition;
-    }
-
-    function _getCommonCategories($sModule = '') {
-        $oDb = BxDolDb::getInstance();
-
-        $sCondModule = $sModule ? $oDb->prepare(" AND `Type` = ?", $sModule) : '';
-        $aCtegories = $oDb->getAll("SELECT `Category` FROM `sys_categories` WHERE `Owner` = 0 $sCondModule");
-
-        $aResult = array();
-        foreach ($aCtegories as $aCategory)
-            $aResult[] = $aCategory['Category'];
-        return $aResult;
-    }
-
-    function _insertTags ($aTagsSet) {
-        $oDb = BxDolDb::getInstance();
-
-        $aTags = $this->explodeTags($aTagsSet['tagString']);
-        if( !$aTags )
-            return;
-        $sFields = '';
-        foreach ($this->aTagFields as $sKey => $sValue)
-            $sFields .= $sValue .', ';
-
-        $aCommonCat = $this->_getCommonCategories($aTagsSet['type']);
-        $bAutoApprove = getParam($this->sAutoApprovePrefix . $aTagsSet['type']) == 'on';
-        $aTagsSet['owner'] = $this->iViewer;
-        $sFields = trim($sFields, ', ');
-        $sValues = '';
-        foreach( $aTags as $sTag )
-        {
-            $aTagsSet['tag'] = addslashes( $sTag );
-            $aTagsSet['status'] = $bAutoApprove || in_array($aTagsSet['tag'], $aCommonCat) ? 'active' : 'passive';
-            $sValues .= $oDb->prepare("(?, ?, ?, ?, ?, CURRENT_TIMESTAMP), ", $aTagsSet['id'], $aTagsSet['type'], $aTagsSet['tag'], $aTagsSet['owner'], $aTagsSet['status']);
-        }
-        $sValues = trim($sValues, ', ');
-
-        $sqlQuery = "INSERT INTO `{$this->sTagTable}` ($sFields) VALUES $sValues";
-        $oDb->res($sqlQuery);
-    }
-}
-

+ 70 - 0
inc/classes/BxDolConnection.php

@@ -43,6 +43,21 @@ define('BX_CONNECTIONS_TYPE_ONE_WAY', 'one-way');
 define('BX_CONNECTIONS_TYPE_MUTUAL', 'mutual');
 
 
+/**
+ * Connections content type: content
+ */
+define('BX_CONNECTIONS_CONTENT_TYPE_CONTENT', 'content');
+
+/**
+ * Connections content type: initiators
+ */
+define('BX_CONNECTIONS_CONTENT_TYPE_INITIATORS', 'initiators');
+
+/**
+ * Connections content type: common
+ */
+define('BX_CONNECTIONS_CONTENT_TYPE_COMMON', 'common');
+
 /** 
  * @page objects 
  * @section connection Connection
@@ -262,6 +277,27 @@ class BxDolConnection extends BxDol implements iBxDolFactoryObject {
         return true;
     }
 
+    /**
+     * Compound function, which calls getCommonContent, getConnectedContent or getConnectedInitiators depending on $sContentType
+     * @param $sContentType content type to get BX_CONNECTIONS_CONTENT_TYPE_CONTENT, BX_CONNECTIONS_CONTENT_TYPE_INITIATORS or BX_CONNECTIONS_CONTENT_TYPE_COMMON
+     * @param $iId1 one content or initiator
+     * @param $iId2 second content or initiator only in case of BX_CONNECTIONS_CONTENT_TYPE_COMMON content type
+     * @param $isMutual get mutual connections only
+     * @return array of available connections
+     */    
+    public function getConnectionsAsArray ($sContentType, $iId1, $iId2, $isMutual = false, $iStart = 0, $iLimit = BX_CONNECTIONS_LIST_LIMIT, $iOrder = BX_CONNECTIONS_ORDER_NONE)
+    {
+        if (BX_CONNECTIONS_CONTENT_TYPE_COMMON == $sContentType)
+            return $this->getCommonContent($iId1, $iId2, $isMutual, $iStart, $iLimit, $iOrder);
+
+        if (BX_CONNECTIONS_CONTENT_TYPE_INITIATORS == $sContentType)
+            $sMethod = 'getConnectedInitiators';
+        else
+            $sMethod = 'getConnectedContent';
+
+        return $this->$sMethod($iId1, $isMutual, $iStart, $iLimit, $iOrder);
+    }
+
     /**
      * Get common content IDs between two initiators
      * @param $iInitiator1 one initiator
@@ -293,6 +329,23 @@ class BxDolConnection extends BxDol implements iBxDolFactoryObject {
         return $this->_oQuery->getConnectedInitiators($iContent, $isMutual, $iStart, $iLimit, $iOrder);
     }
 
+    /**
+     * Similar to getConnectionsAsArray, but for getCommonContentAsSQLParts, getConnectedContentAsSQLParts or getConnectedInitiatorsAsSQLParts methods
+     * @see getConnectionsAsArray
+     */    
+    public function getConnectionsAsSQLParts ($sContentType, $sContentTable, $sContentField, $iId1, $iId2, $isMutual = false, $iStart = 0, $iLimit = BX_CONNECTIONS_LIST_LIMIT, $iOrder = BX_CONNECTIONS_ORDER_NONE)
+    {
+        if (BX_CONNECTIONS_CONTENT_TYPE_COMMON == $sContentType)
+            return $this->getCommonContentAsSQLParts($sContentTable, $sContentField, $iId1, $iId2, $isMutual);
+
+        if (BX_CONNECTIONS_CONTENT_TYPE_INITIATORS == $sContentType)
+            $sMethod = 'getConnectedInitiatorsAsSQLParts';
+        else
+            $sMethod = 'getConnectedContentAsSQLParts';
+
+        return $this->$sMethod($sContentTable, $sContentField, $iId1, $isMutual);
+    }
+
     /**
      * Get necessary parts of SQL query to use connections in other queries
      * @param $sContentTable content table or alias
@@ -329,6 +382,23 @@ class BxDolConnection extends BxDol implements iBxDolFactoryObject {
         return $this->_oQuery->getConnectedInitiatorsSQLParts($sContentTable, $sContentField, $iContent, $isMutual);
     }
 
+    /**
+     * Similar to getConnectionsAsArray, but for getCommonContentAsCondition, getConnectedContentAsCondition or getConnectedInitiatorsAsCondition methods
+     * @see getConnectionsAsArray
+     */    
+    public function getConnectionsAsCondition ($sContentType, $sContentField, $iId1, $iId2, $isMutual = false)
+    {
+        if (BX_CONNECTIONS_CONTENT_TYPE_COMMON == $sContentType)
+            return $this->getCommonContentAsCondition($sContentField, $iId1, $iId2, $isMutual);
+
+        if (BX_CONNECTIONS_CONTENT_TYPE_INITIATORS == $sContentType)
+            $sMethod = 'getConnectedInitiatorsAsCondition';
+        else
+            $sMethod = 'getConnectedContentAsCondition';
+
+        return $this->$sMethod($sContentField, $iId1, $isMutual);
+    }
+
     /**
      * Get necessary condition array to use connections in search classes
      * @param $sContentField content table field name

+ 0 - 5
inc/classes/BxDolCronCmd.php

@@ -33,7 +33,6 @@ class BxDolCronCmd extends BxDolCron {
 
     function clean_database()
     {
-        $db_clean_visits = (int) getParam("db_clean_members_visits");
         $db_clean_mem_levels = (int) getParam("db_clean_mem_levels");
 
         //clear from `sys_acl_levels_members`
@@ -44,10 +43,6 @@ class BxDolCronCmd extends BxDolCron {
         if (db_res("DELETE FROM `sys_messages` WHERE FIND_IN_SET('sender', `Trash`) AND FIND_IN_SET('recipient', `Trash`)"))
             db_res("OPTIMIZE TABLE `sys_messages`");
 
-        //clear from `sys_ip_members_visits`
-        if (db_res("DELETE FROM `sys_ip_members_visits` WHERE `DateTime` < NOW() - INTERVAL $db_clean_visits DAY"))
-            db_res("OPTIMIZE TABLE `sys_ip_members_visits`");
-
         // clear ban table
         if (db_res("DELETE FROM `sys_admin_ban_list` WHERE `DateTime` + INTERVAL `Time` SECOND < NOW()"))
             db_res("OPTIMIZE TABLE `sys_admin_ban_list`");

+ 16 - 46
inc/classes/BxDolForm.php

@@ -143,8 +143,6 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *      - XssHtml - this text cam have HTML tags, so perform XSS vulnerabilies cleaning before saving to database.
  *      - All - do not perform any conversion and pass text as it is, be careful with this, use it only when no other function can be used, and make all necessary security checking by yourself.
  *      - Preg - perform regular expression on the text before saving data to database, regular expression can be provided in db_params field.
- *      - Tags - tags are validated and correctly joined using delimiter symbol.
- *      - Categories - categories are validated and correctly joined using delimiter symbol.
  *      - Boolean - this is used for checkboxes with 'on' value which need to be converted into boolean value.
  *      - Set - convert set of values into bit integer before saving to database, and restore bit integer into array of values upon restoration from database, it can be used for select_multiple and checkbox_set field types. 
  *      Please note that values for this field must be 1,2,4,8,... (values of power of 2); the max number of values are 31 for 32bit hardware and 63 for 64bit hardware.
@@ -196,7 +194,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Can be used here: Length, Preg, Avail, Email 
  *          Make no sense to use it here: Date, DateTime, Captcha
  *      - db_pass
- *          Can be used here: Int, Float, Xss, All, Preg, Tags, Categories 
+ *          Can be used here: Int, Float, Xss, All, Preg
  *          Make no sense to use it here: Date, DateTime, XssHtml, Boolean, Set
  * 
  * password - password input field. It is displayed as HTML input element with invisible input.
@@ -211,7 +209,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Date, DateTime, Captcha, Email.
  *      - db_pass
  *          Can be used here: Xss, All. 
- *          Make no sense to use it here: Int, Float, Date, DateTime, XssHtml, Boolean, Set, Preg, Tags, Categories.
+ *          Make no sense to use it here: Int, Float, Date, DateTime, XssHtml, Boolean, Set, Preg.
  * 
  * textarea - multiline input field. It can be displayed as regular textarea field or as visual HTML editor.
  *      Parameters:
@@ -228,7 +226,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Can be used here: Length, Preg, Avail 
  *          Make no sense to use it here: Email, Date, DateTime, Captcha
  *      - db_pass
- *          Can be used here: Int, Float, Xss, XssHtml, All, Preg, Tags, Categories 
+ *          Can be used here: Int, Float, Xss, XssHtml, All, Preg
  *          Make no sense to use it here: Date, DateTime, Boolean, Set
  * 
  * number - number input field. It is displayed as HTL text input, but with limited width. Also some browsers can add additional controls to this field.
@@ -243,7 +241,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Int, Float 
- *          Make no sense to use it here: Xss, XssHtml, All, Preg, Tags, Categories, Date, DateTime, Boolean, Set
+ *          Make no sense to use it here: Xss, XssHtml, All, Preg, Date, DateTime, Boolean, Set
  *  
  * select - select one from all available values. It is displayed as HTML combo-box.
  *      Parameters:
@@ -257,7 +255,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Int, Float, Xss, All, Preg 
- *          Make no sense to use it here: Date, DateTime, Tags, Categories, XssHtml, Boolean, Set
+ *          Make no sense to use it here: Date, DateTime, XssHtml, Boolean, Set
  *  
  * select_multiple - select one, multiple or all items from all available values. It is displayed as HTML multiple selection input.
  *      Parameters:
@@ -271,7 +269,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Int 
- *          Make no sense to use it here: Float, Xss, All, Preg, Date, DateTime, Tags, Categories, XssHtml, Boolean, Set
+ *          Make no sense to use it here: Float, Xss, All, Preg, Date, DateTime, XssHtml, Boolean, Set
  * 
  * switcher - on/off switcher. It is displayed as custom HTML element with own styles, but on background it works as regular HTML checkbox element. 
  *      Parameters:
@@ -285,7 +283,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Int, Float, Xss, All, Preg, Boolean 
- *          Make no sense to use it here: Date, DateTime, Tags, Categories, XssHtml, Set
+ *          Make no sense to use it here: Date, DateTime, XssHtml, Set
  * 
  * checkbox - one checkbox. Displayed as HTML checkbox input element.
  *      Parameters:
@@ -299,7 +297,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Int, Float, Xss, All, Preg, Boolean 
- *          Make no sense to use it here: Date, DateTime, Tags, Categories, XssHtml, Set
+ *          Make no sense to use it here: Date, DateTime, XssHtml, Set
  * 
  * checkbox_set - set of checkboxes. It is displayed as set of checkboxes. It is displayed in one row if number of items is equal or less than 3 or every item is displayed on new line if there is more than 3 items in the set.
  *      Parameters:
@@ -313,7 +311,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Int 
- *          Make no sense to use it here: Float, Xss, All, Preg, Date, DateTime, Tags, Categories, XssHtml, Boolean, Set
+ *          Make no sense to use it here: Float, Xss, All, Preg, Date, DateTime, XssHtml, Boolean, Set
  *  
  * radio_set - set of radio buttons. It is displayed as set of radio buttons. It is displayed in one row if number of items is equal or less than 3 or every item is displayed on new line if there is more than 3 items in the set.
  *      Parameters:
@@ -327,7 +325,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Int, Float, Xss, All, Preg 
- *          Make no sense to use it here: Date, DateTime, Tags, Categories, XssHtml, Boolean, Set
+ *          Make no sense to use it here: Date, DateTime, XssHtml, Boolean, Set
  * 
  * slider - select some numeric value within the range using slider control. It is displayed as jQuery UI HTML control, but on background it works as regular HTML text input element.
  *      Parameters:
@@ -345,7 +343,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Preg, Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Int, Float 
- *          Make no sense to use it here: Xss, XssHtml, All, Preg, Tags, Categories, Date, DateTime, Boolean, Set
+ *          Make no sense to use it here: Xss, XssHtml, All, Preg, Date, DateTime, Boolean, Set
  * 
  * doublerange - select range values within the range using slider control.
  *      Parameters:
@@ -363,7 +361,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Preg, Email, Date, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Xss, All, Preg 
- *          Make no sense to use it here: Int, Float, XssHtml, Tags, Categories, Date, DateTime, Boolean, Set
+ *          Make no sense to use it here: Int, Float, XssHtml, Date, DateTime, Boolean, Set
  * 
  * datepicker - date selection control. It is displayed as HTML text input control, when clicking on this input then popup with date selector control is appeared.
  *      Parameters:
@@ -377,7 +375,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Length, Preg, Avail, Email, DateTime, Captcha
  *      - db_pass
  *          Can be used here: Date 
- *          Make no sense to use it here: Int, Float, Xss, All, Preg, Tags, Categories, DateTime, XssHtml, Boolean, Set
+ *          Make no sense to use it here: Int, Float, Xss, All, Preg, DateTime, XssHtml, Boolean, Set
  * 
  * datetime - date/time selection control.
  *      Parameters:
@@ -391,7 +389,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Length, Preg, Avail, Email, Date, Captcha
  *      - db_pass
  *          Can be used here: DateTime 
- *          Make no sense to use it here: Int, Float, Xss, All, Preg, Tags, Categories, Date, XssHtml, Boolean, Set
+ *          Make no sense to use it here: Int, Float, Xss, All, Preg, Date, XssHtml, Boolean, Set
  * 
  * captcha - image captcha. Displayed as image with some text along with HTML text input for entering displayed on the image text.
  *      Parameters:
@@ -405,7 +403,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Make no sense to use it here: Length, Preg, Avail, Email, Date, DateTime
  *      - db_pass
  *          Can be used here: Xss, All, Preg 
- *          Make no sense to use it here: Int, Float, Tags, Categories, Date, DateTime, XssHtml, Boolean, Set
+ *          Make no sense to use it here: Int, Float, Date, DateTime, XssHtml, Boolean, Set
  *  
  * hidden - hidden input field. Displayed as hidden HTML input.
  *      Parameters:
@@ -418,7 +416,7 @@ define('BX_DATA_VALUES_ADDITIONAL', 'LKey2'); ///< Use additional values for dat
  *          Can be used here: Length, Preg, Avail, Email, Date, DateTime 
  *          Make no sense to use it here: Captcha
  *      - db_pass
- *          Can be used here: Int, Float, Xss, All, Preg, Tags, Categories, Date, DateTime, XssHtml, Boolean 
+ *          Can be used here: Int, Float, Xss, All, Preg, Date, DateTime, XssHtml, Boolean 
  *          Make no sense to use it here: Set
  * 
  * file - file upload input. Displayed as file upload HTML input.
@@ -1437,34 +1435,6 @@ class BxDolFormCheckerHelper {
         }
         return '';
     }
-    function passTags ($s) {
-        if (is_array($s)) {
-            $a = array ();
-            foreach ($s as $k => $v) {
-                $a[$k] = $this->_passTags ($v);
-            }
-            return $a;
-        }
-        return $this->_passTags($s);
-    }
-    function _passTags ($s) {
-        require_once(BX_DIRECTORY_PATH_INC . 'tags.inc.php');
-        $sTags = $this->passXss ($s);
-        $aTags = explodeTags($sTags);
-        return implode(",", $aTags);
-    }
-    function passCategories ($aa) {
-        if (is_array($aa)) {
-            $a = array ();
-            foreach ($aa as $k => $v)
-                if ($v)
-                    $a[$k] = $this->passXss ($v);
-        } else {
-            $a = $this->passXss ($aa);
-        }
-        return is_array($a) ? implode(CATEGORIES_DIVIDER, $a) : $a;
-
-    }
     function passBoolean ($s) {
         if (is_array($s)) {
             $a = array ();

+ 0 - 9
inc/classes/BxDolLanguagesQuery.php

@@ -263,15 +263,6 @@ class BxDolLanguagesQuery extends BxDolDb implements iBxDolSingleton {
 
         return (int)$this->getOne("SELECT FOUND_ROWS()");
     }
-    /*
-     * The method is not used anywhere right now. 
-     */
-    function getStringParams($iKeyId) {
-        $iKeyId = (int)$iKeyId;
-        $sSql = $this->prepare("SELECT `IDParam`, `Description` FROM `sys_localization_string_params` WHERE `IDKey`=? ORDER BY `IDParam`", $iKeyId);
-
-        return $this->getPairs($sSql, 'IDParam', 'Description');
-    }
 }
 
 /** @} */

+ 0 - 101
inc/classes/BxDolMobileTemplate.php

@@ -1,101 +0,0 @@
-<?php
-
-/***************************************************************************
-*                            Dolphin Smart Community Builder
-*                              -------------------
-*     begin                : Mon Mar 23 2006
-*     copyright            : (C) 2007 BoonEx Group
-*     website              : http://www.boonex.com
-* This file is part of Dolphin - Smart Community Builder
-*
-* Dolphin is free software; you can redistribute it and/or modify it under
-* the terms of the GNU General Public License as published by the
-* Free Software Foundation; either version 2 of the
-* License, or  any later version.
-*
-* Dolphin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-* without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-* See the GNU General Public License for more details.
-* You should have received a copy of the GNU General Public License along with Dolphin,
-* see license.txt file; if not, write to marketing@boonex.com
-***************************************************************************/
-
-bx_import('BxDolModuleTemplate');
-
-class BxDolMobileTemplate extends BxDolModuleTemplate {
-
-    var $_aMobileJs = array ('jquery.js');
-    var $_aMobileCss = array ('mobile.css');
-
-	/*
-	 * Constructor.
-	 */
-	function BxDolMobileTemplate(&$oConfig, &$oDb, $sRootPath = BX_DIRECTORY_PATH_ROOT, $sRootUrl = BX_DOL_URL_ROOT) {
-		parent::BxDolModuleTemplate($oConfig, $oDb, $sRootPath, $sRootUrl);
-	}
-
-	function addMobileCss($mixedFiles) {
-        if (is_array($mixedFiles))
-            $this->_aMobileJs = array_merge($this->_aMobileJs, $mixedFiles);
-        else
-            $this->_aMobileJs[] = $mixedFiles;
-	}
-
-	function addMobileJs($mixedFiles) {
-        if (is_array($mixedFiles))
-            $this->_aMobileCss = array_merge($this->_aMobileCss, $mixedFiles);
-        else
-            $this->_aMobileCss[] = $mixedFiles;
-	}
-    
-    function pageCode ($sTitle, $isDesignBox = true, $isWrap = true) {
-
-        global $_page;        
-        global $_page_cont;
-
-        $GLOBALS['BxDolTemplateJs'] = array ();
-        $GLOBALS['BxDolTemplateCss'] = array ();
-        $this->addCss($this->_aMobileCss);
-        $this->addJs($this->_aMobileJs);
-
-        $sOutput = $this->pageEnd();
-
-        if ($isDesignBox) {
-            $aVars = array ('content' => $sOutput);
-            $sOutput = $this->parseHtmlByName('mobile_box.html', $aVars); 
-        }
-
-        if ($isWrap) {
-            $aVars = array ('content' => $sOutput);
-            $sOutput = $this->parseHtmlByName('mobile_page_padding.html', $aVars);
-        }
-
-        $iNameIndex = 11;
-        $_page['name_index'] = $iNameIndex; 
-        $_page['header'] = $sTitle ? $sTitle : $GLOBALS['site']['title'];
-        $_page_cont[$iNameIndex]['page_main_code'] = $sOutput;
-
-        PageCode($this);
-    }
-
-    function displayNoData($sCaption = false) {
-        $this->displayMsg(_t('_Empty'), $sCaption);
-    }
-
-    function displayAccessDenied($sCaption = false) {
-        $this->displayMsg(_t('_Access denied'), $sCaption);
-    }
-
-    function displayPageNotFound() {
-        header("HTTP/1.0 404 Not Found");
-        $this->displayMsg(_t('_sys_request_page_not_found_cpt'));
-    }
-
-    function displayMsg($sMsg, $bTranslateMsg = false, $sTitle = false, $bTranslateMsg = false) {
-        $sMsg = $bTranslateMsg ? _t($sMsg) : $sMsg;
-        $sTitle = $bTranslateMsg ? _t($sTitle) : $sTitle;
-        echo $sMsg;        
-	    $this->pageCode($sTitle ? $sTitle : $sMsg);
-    }
-}
-

+ 0 - 1
inc/classes/BxDolProfile.php

@@ -249,7 +249,6 @@ class BxDolProfile extends BxDol implements iBxDolProfile {
         // delete associated content 
         // TODO: remake deletion of associated content
         $this->_oQuery->res("DELETE FROM `sys_acl_levels_members` WHERE `IDMember` = {$ID}");
-        $this->_oQuery->res("DELETE FROM `sys_tags` WHERE `ObjID` = {$ID} AND `Type` = 'profile'");
 
         // delete profile
         if (!$this->_oQuery->delete($ID))

+ 0 - 243
inc/classes/BxDolTags.php

@@ -1,243 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-define('BX_DOL_TAGS_DIVIDER', ';,');
-
-class BxDolTags extends BxDol {
-    var $iViewer;
-
-    var $sCacheFile;
-    var $sNonParseParams;
-
-    var $sCacheTable;
-    var $sTagTable;
-    var $aTagFields;
-
-    var $aTagObjects = array();
-
-    var $sTagsDivider = BX_DOL_TAGS_DIVIDER;
-    var $bToLower = true;
-
-    function BxDolTags () {
-        parent::BxDol();
-
-        $this->iViewer = getLoggedId();
-
-        $this->sCacheFile = 'sys_objects_tag';
-        $this->sNonParseParams = 'tags_non_parsable';
-        $this->sCacheTable = 'sys_objects_tag';
-        $this->sTagTable = 'sys_tags';
-        $this->aTagFields = array(
-            'id' => 'ObjID',
-            'type' => 'Type',
-            'tag' => 'Tag',
-            'date' => 'Date'
-        );
-        $this->aObjFields = array(
-            'id' => 'ID',
-            'name' => 'ObjectName',
-            'query' => 'Query',
-            'perm_param' => 'PermalinkParam',
-            'perm_enable' => 'EnabledPermalink',
-            'perm_disable' => 'DisabledPermalink',
-            'lang_key' => 'LangKey'
-        );
-    }
-
-    function getTagObjectConfig ($aParam = array()) {
-        $oDb = BxDolDb::getInstance();
-
-        if (!empty($aParam)) {
-            $sqlQuery = "SELECT obj.*
-                FROM  `{$this->sCacheTable}` obj LEFT JOIN  `{$this->sTagTable}` tgs
-                ON obj.`{$this->aObjFields['name']}` = tgs.`{$this->aTagFields['type']}` " .
-                $this->_getSelectCondition($aParam) . " GROUP BY obj.`{$this->aObjFields['name']}` ORDER BY obj.`ID`";
-            $this->aTagObjects = $oDb->getAllWithKey($sqlQuery, 'ObjectName');
-        } else {
-            $this->aTagObjects = $oDb->fromCache($this->sCacheFile, 'getAllWithKey',
-                "SELECT * FROM `{$this->sCacheTable}`", 'ObjectName');
-        }
-    }
-
-    function explodeTags ($sText) {
-        $aTags = preg_split( '/['.$this->sTagsDivider.']/', $sText, 0, PREG_SPLIT_NO_EMPTY );
-        foreach( $aTags as $iInd => $sTag ) {
-            if( strlen( $sTag ) < 3 )
-                unset( $aTags[$iInd] );
-            else
-                $aTags[$iInd] = $this->bToLower ? mb_strtolower( $sTag , 'UTF-8') : $sTag;
-        }
-        $aTags = array_unique($aTags);
-        $sTagsNotParsed = getParam( $this->sNonParseParams );
-        $aTagsNotParsed = preg_split( '/[, ]/', $sTagsNotParsed, 0, PREG_SPLIT_NO_EMPTY );
-
-        $aTags = array_diff( $aTags, $aTagsNotParsed ); //drop non parsable tags
-        return $aTags;
-    }
-
-    function reparseObjTags( $sType, $iID ) {
-        $this->getTagObjectConfig();
-        $oDb = BxDolDb::getInstance();
-
-        $iID = (int)$iID;
-        if ($iID > 0 && array_key_exists($sType, $this->aTagObjects) && isset($this->aTagObjects[$sType]['Query'])) {
-            $sQuery = $oDb->prepare("DELETE FROM `{$this->sTagTable}` WHERE `{$this->aTagFields['id']}` = ? AND `{$this->aTagFields['type']}` = ?", $iID, $sType);
-            $oDb->res($sQuery);
-            $sqlQuery = str_replace('{iID}', $oDb->escape($iID), $this->aTagObjects[$sType]['Query']);
-            $sTags = $oDb->getOne($sqlQuery);
-            if( !strlen( $sTags ) )
-                return;
-            $aTagsSet = array(
-                'id' => $iID,
-                'type' => $sType,
-                'tagString' => $sTags,
-                'date' => 'CURRENT_TIMESTAMP'
-            );
-            $this->_insertTags($aTagsSet);
-        }
-    }
-
-    function getTagList($aParam)
-    {
-        $oDb = BxDolDb::getInstance();
-        $sLimit = '';
-        $aTotalTags = array();
-        $sJoin = isset($aParam['admin']) ? $this->_getProfileJoin(isset($aParam['admin'])) : '';
-        $sGroupBy = "GROUP BY `{$this->aTagFields['tag']}`";
-
-        if (isset($aParam['limit']) && (int)$aParam['limit'])
-        {
-            $sLimit = 'LIMIT ';
-            if (isset($aParam['start']) && (int)$aParam['start'])
-                $sLimit .= (int)$aParam['start'] . ', ';
-            $sLimit .= (int)$aParam['limit'];
-        }
-
-        $sCondition = $this->_getSelectCondition($aParam);
-
-        if (isset($aParam['orderby']))
-        {
-            if ($aParam['orderby'] == 'popular')
-                $sGroupBy .= " ORDER BY `count` DESC, `{$this->aTagFields['tag']}` ASC";
-            else if ($aParam['orderby'] == 'recent')
-                $sGroupBy .= " ORDER BY `{$this->aTagFields['date']}` DESC, `{$this->aTagFields['tag']}` ASC";
-        }
-
-        $sqlQuery = "SELECT
-            `tgs`.`{$this->aTagFields['tag']}` as `{$this->aTagFields['tag']}`,
-            `tgs`.`{$this->aTagFields['date']}` as `{$this->aTagFields['date']}`,
-            COUNT(`tgs`.`{$this->aTagFields['id']}`) AS `count`
-            FROM `{$this->sTagTable}` `tgs` $sJoin $sCondition $sGroupBy $sLimit";
-        $aTotalTags = $oDb->getPairs($sqlQuery, $this->aTagFields['tag'], 'count');
-
-        if(isset($aParam['orderby']) && $aParam['orderby'] == 'popular')
-            ksort($aTotalTags);
-
-        return $aTotalTags;
-    }
-
-    function getTagsCount($aParam)
-    {
-        $oDb = BxDolDb::getInstance();
-        $sCondition = $this->_getSelectCondition($aParam);
-        $sJoin = isset($aParam['admin']) ? $this->_getProfileJoin(isset($aParam['admin'])) : '';
-        $sqlQuery = "SELECT count(DISTINCT `tgs`.`{$this->aTagFields['tag']}`) AS `count` FROM
-            `{$this->sTagTable}` `tgs` $sJoin {$sCondition}";
-
-        return $oDb->getOne($sqlQuery);
-    }
-
-    function getFirstObject()
-    {
-        if ($this->aTagObjects)
-        {
-            $aKeys = array_keys($this->aTagObjects);
-            return $aKeys[0];
-        }
-
-        return '';
-    }
-
-    function getHrefWithType($sType)
-    {
-        $aCurrent = $this->aTagObjects[$sType];
-        $bPermalinks = getParam($aCurrent['PermalinkParam'])=='on' ? true : false;
-
-        return $bPermalinks ? $aCurrent['EnabledPermalink'] : $aCurrent['DisabledPermalink'];
-    }
-
-    function _getSelectCondition($aParam)
-    {
-        $oDb = BxDolDb::getInstance();
-
-        $sCondition = "WHERE `tgs`.`{$this->aTagFields['tag']}` IS NOT NULL";
-
-        if (!$aParam)
-            return $sCondition;
-
-        if (isset($aParam['type']) && $aParam['type'])
-            $sCondition .= $oDb->prepare(" AND `tgs`.`{$this->aTagFields['type']}` = ?", $aParam['type']);
-
-        if (isset($this->aTagFields['owner']))
-        {
-            $sCondition .= ' AND ';
-
-            if (isset($aParam['admin']))
-            {
-                if ($aParam['admin'])
-                    $sCondition .= $oDb->prepare('(`profiles`.`Role` & ?)', BX_DOL_ROLE_ADMIN);
-                else
-                    $sCondition .= $oDb->prepare('NOT (`profiles`.`Role` & ?)', BX_DOL_ROLE_ADMIN);
-            }
-            else
-                $sCondition .= "`tgs`.`{$this->aTagFields['owner']}` <> 0";
-        }
-
-        if (isset($aParam['filter']) && $aParam['filter'])
-            $sCondition .= " AND `tgs`.`{$this->aTagFields['tag']}` LIKE '%" . $oDb->escape($aParam['filter']) . "%'";
-
-        if (isset($aParam['date']) && $aParam['date'])
-            $sCondition .= $oDb->prepare(" AND DATE(`tgs`.`{$this->aTagFields['date']}`) = DATE(?)", $aParam['date']['year'] . '-' . $aParam['date']['month'] . '-' . $aParam['date']['day']);
-
-        return $sCondition;
-    }
-
-    function _getProfileJoin($bAdmin)
-    {
-        if (isset($this->aTagFields['owner']) && $bAdmin)
-            return "INNER JOIN `Profiles` `profiles` ON `tgs`.`{$this->aTagFields['owner']}` = `profiles`.`ID`";
-
-        return '';
-    }
-
-    function _insertTags ($aTagsSet) {
-        $oDb = BxDolDb::getInstance();
-
-        $aTags = $this->explodeTags( $aTagsSet['tagString'] );
-        if( !$aTags )
-            return;
-        $sFields = '';
-        foreach ($this->aTagFields as $sKey => $sValue)
-            $sFields .= $sValue .', ';
-
-        $sFields = trim($sFields, ', ');
-        $sValues = '';
-        foreach( $aTags as $sTag ) {
-            $sTag = trim($sTag);
-            $aTagsSet['tag'] = $sTag;
-            $sQuery = $oDb->prepare("SELECT COUNT(*) FROM `sys_tags`
-                WHERE `ObjID` = ? AND `Type` = ? AND `Tag` = ?", $aTagsSet['id'], $aTagsSet['type'], $aTagsSet['tag']);
-            if( !$oDb->getOne($sQuery) ) {
-                 $sValues  = $oDb->prepare("(?, ?, ?, ?)", $aTagsSet['id'], $aTagsSet['type'], $aTagsSet['tag'], $aTagsSet['date']);
-                 $sqlQuery = "INSERT INTO `{$this->sTagTable}` ($sFields) VALUES $sValues";
-                 $oDb->res($sqlQuery);
-            }
-        }
-    }
-}
-

+ 0 - 1
inc/classes/BxDolTemplate.php

@@ -23,7 +23,6 @@ define('BX_PAGE_DEFAULT', 0); ///< default, regular page
 define('BX_PAGE_CLEAR', 2); ///< clear page, without any headers and footers
 define('BX_PAGE_POPUP', 44); ///< popup page, without any headers and footers
 define('BX_PAGE_TRANSITION', 150); ///< transition page with redirect to display some msg, like 'please wait', without headers footers
-define('BX_PAGE_MOBILE', 11); ///< mobile page
 
 /**
  * Template engine.

+ 0 - 50
inc/tags.inc.php

@@ -1,50 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-
-function explodeTags( $text ) {
-
-    //$text = preg_replace( '/[^a-zA-Z0-9_\'-]/', ' ', $text );
-
-    $aTags = preg_split( '/[' . BX_DOL_TAGS_DIVIDER . ']/', $text, 0, PREG_SPLIT_NO_EMPTY );
-
-    foreach( $aTags as $iInd => $sTag )
-    {
-        if( strlen( $sTag ) < 3 )
-            unset( $aTags[$iInd] );
-        else
-            $aTags[$iInd] = trim(mb_strtolower( $sTag , 'UTF-8'));
-    }
-    $aTags = array_unique( $aTags );
-    $sTagsNotParsed = getParam( 'tags_non_parsable' );
-    $aTagsNotParsed = preg_split( '/[' . BX_DOL_TAGS_DIVIDER . ']/', $sTagsNotParsed, 0, PREG_SPLIT_NO_EMPTY );
-
-    $aTags = array_diff( $aTags, $aTagsNotParsed ); //drop non parsable tags
-
-    return $aTags;
-}
-
-function storeTags( $iID, $sTags, $sType ) {
-    $oDb = BxDolDb::getInstance();
-
-    $sQuery = $oDb->prepare("DELETE FROM `sys_tags` WHERE `ID` = ? AND `Type` = ?", $iID, $sType);
-    $oDb->res($sQuery);
-
-    $aTags = explodeTags($sTags);
-    foreach ($aTags as $sTag) {
-        $sQuery = $oDb->prepare("INSERT INTO `sys_tags` VALUES (?, ?, ?, CURRENT_TIMESTAMP)", $sTag, $iID, $sType);
-        $oDb->res($sQuery, 0);
-    }
-}
-
-function reparseObjTags( $sType, $iID ) {
-    bx_import('BxDolTags');
-    $oTags = new BxDolTags();
-    $oTags->reparseObjTags($sType, $iID);
-}
-

+ 16 - 241
install/sql/system.sql

@@ -7,27 +7,13 @@ SET @sSysVersion = '8.0.0';
 -- --------------------------------------------------------
 
 SET NAMES 'utf8';
-DROP TABLE IF EXISTS `sys_categories`, `sys_keys`, `sys_objects_editor`, `sys_objects_captcha`, `sys_objects_social_sharing`, `sys_objects_categories`, `sys_objects_cmts`, `sys_cmts_images`, `sys_cmts_images_preview`, `sys_cmts_images2entries`, `sys_email_templates`, `sys_options`, sys_options_types, `sys_options_categories`, `sys_ip_members_visits`, `sys_localization_categories`, `sys_localization_keys`, `sys_localization_languages`, `sys_localization_string_params`, `sys_localization_strings`, `sys_acl_actions`, `sys_acl_actions_track`, `sys_acl_matrix`, `sys_acl_level_prices`, `sys_acl_levels`, `sys_sessions`, `sys_acl_levels_members`, `sys_objects_search`, `sys_stat_site`, `sys_alerts`, `sys_alerts_handlers`, `sys_injections`, `sys_injections_admin`, `sys_modules`, `sys_modules_file_tracks`, `sys_permalinks`, `sys_objects_privacy`, `sys_privacy_defaults`, `sys_privacy_groups`, `sys_tags`, `sys_objects_tag`, `sys_transactions`, `sys_objects_auths`, `sys_objects_vote`, `sys_objects_view`, `sys_cron_jobs`, `sys_menu_mobile`, `sys_menu_mobile_pages`, `sys_objects_storage`, `sys_objects_uploader`, `sys_storage_user_quotas`, `sys_storage_tokens`, `sys_storage_ghosts`, `sys_storage_mime_types`, `sys_objects_transcoder_images`, `sys_transcoder_images_files`, `sys_transcoder_images_filters`, `sys_accounts`, `sys_profiles`, `sys_objects_form`, `sys_form_displays`, `sys_form_inputs`, `sys_form_display_inputs`, `sys_form_pre_lists`, `sys_form_pre_values`, `sys_menu_templates`, `sys_objects_menu`, `sys_menu_sets`, `sys_menu_items`, `sys_objects_grid`, `sys_grid_fields`, `sys_grid_actions`, `sys_objects_connection`, `sys_profiles_conn_subscriptions`, `sys_profiles_conn_friends`, `sys_objects_page`, `sys_pages_layouts`, `sys_pages_design_boxes`, `sys_pages_blocks`, `sys_images`, `sys_std_pages`, `sys_std_widgets`, `sys_std_pages_widgets`;
+DROP TABLE IF EXISTS `sys_keys`, `sys_objects_editor`, `sys_objects_captcha`, `sys_objects_social_sharing`, `sys_objects_cmts`, `sys_cmts_images`, `sys_cmts_images_preview`, `sys_cmts_images2entries`, `sys_email_templates`, `sys_options`, sys_options_types, `sys_options_categories`, `sys_localization_categories`, `sys_localization_keys`, `sys_localization_languages`, `sys_localization_strings`, `sys_acl_actions`, `sys_acl_actions_track`, `sys_acl_matrix`, `sys_acl_levels`, `sys_sessions`, `sys_acl_levels_members`, `sys_objects_search`, `sys_stat_site`, `sys_alerts`, `sys_alerts_handlers`, `sys_injections`, `sys_injections_admin`, `sys_modules`, `sys_modules_file_tracks`, `sys_permalinks`, `sys_objects_privacy`, `sys_privacy_defaults`, `sys_privacy_groups`, `sys_objects_auths`, `sys_objects_vote`, `sys_objects_view`, `sys_cron_jobs`, `sys_objects_storage`, `sys_objects_uploader`, `sys_storage_user_quotas`, `sys_storage_tokens`, `sys_storage_ghosts`, `sys_storage_mime_types`, `sys_objects_transcoder_images`, `sys_transcoder_images_files`, `sys_transcoder_images_filters`, `sys_accounts`, `sys_profiles`, `sys_objects_form`, `sys_form_displays`, `sys_form_inputs`, `sys_form_display_inputs`, `sys_form_pre_lists`, `sys_form_pre_values`, `sys_menu_templates`, `sys_objects_menu`, `sys_menu_sets`, `sys_menu_items`, `sys_objects_grid`, `sys_grid_fields`, `sys_grid_actions`, `sys_objects_connection`, `sys_profiles_conn_subscriptions`, `sys_profiles_conn_friends`, `sys_objects_page`, `sys_pages_layouts`, `sys_pages_design_boxes`, `sys_pages_blocks`, `sys_images`, `sys_std_pages`, `sys_std_widgets`, `sys_std_pages_widgets`;
 ALTER DATABASE DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
 
 
 -- --------------------------------------------------------
 
 
-CREATE TABLE `sys_categories` (
-  `Category` varchar(32) NOT NULL default '',
-  `ID` int(10) unsigned NOT NULL default '0',
-  `Type` varchar(20) NOT NULL default 'photo',
-  `Owner` int(10) unsigned NOT NULL,
-  `Status` enum('active', 'passive') NOT NULL default 'active',
-  `Date` timestamp NOT NULL default CURRENT_TIMESTAMP,
-  PRIMARY KEY  (`Category`, `ID`, `Type`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-
--- --------------------------------------------------------
-
-
 CREATE TABLE `sys_keys` (
   `key` varchar(32) NOT NULL,
   `data` text NOT NULL,
@@ -52,7 +38,7 @@ CREATE TABLE `sys_objects_editor` (
 
 
 INSERT INTO `sys_objects_editor` (`object`, `title`, `skin`, `override_class_name`, `override_class_file`) VALUES
-('sys_tinymce', 'TinyMCE', 'default', 'BxTemplEditorTinyMCE', ''),
+('sys_tinymce', 'TinyMCE', 'lightgray', 'BxTemplEditorTinyMCE', ''),
 ('sys_cleditor', 'CLEditor', '', 'BxTemplEditorCLEditor', '');
 
 
@@ -104,23 +90,6 @@ CREATE TABLE `sys_objects_auths` (
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
 
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_objects_categories`
---
-
-CREATE TABLE `sys_objects_categories` (
-  `ID` int(10) unsigned NOT NULL auto_increment,
-  `ObjectName` varchar(50) NOT NULL,
-  `Query` text  NOT NULL,
-  `PermalinkParam` varchar(50) NOT NULL default '',
-  `EnabledPermalink` varchar(100) NOT NULL default '',
-  `DisabledPermalink` varchar(100) NOT NULL default '',
-  `LangKey` varchar(100) NOT NULL default '',
-  PRIMARY KEY (`ID`)
-) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
-
 -- --------------------------------------------------------
 
 --
@@ -278,8 +247,6 @@ SET @iCategoryId = LAST_INSERT_ID();
 INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
 (@iCategoryId, 'lang_default', '_adm_stg_cpt_option_lang_default', '', 'select', 'PHP:bx_import(''BxDolLanguages''); $aValues = BxDolLanguages::getInstance()->getLanguages(false, true); $aResult = array(); foreach($aValues as $sKey => $sValue) $aResult[] = array(\'key\' => $sKey, \'value\' => $sValue); return $aResult;', '', '', 1),
 
-(@iCategoryId, 'sys_calendar_starts_sunday', '_adm_stg_cpt_option_sys_calendar_starts_sunday', '', 'checkbox', '', '', '', 2),
-
 (@iCategoryId, 'sys_format_date', '_adm_stg_cpt_option_sys_format_date', 'D MMM YYYY', 'digit', '', '', '', 3),
 (@iCategoryId, 'sys_format_time', '_adm_stg_cpt_option_sys_format_time', 'HH:mm', 'digit', '', '', '', 4),
 (@iCategoryId, 'sys_format_datetime', '_adm_stg_cpt_option_sys_format_datetime', 'D MMM YYYY h:mm:ss a', 'digit', '', '', '', 5),
@@ -327,17 +294,6 @@ INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `ex
 (@iCategoryId, 'sys_template_cache_compress_enable', '_adm_stg_cpt_option_sys_template_cache_compress_enable', 'on', 'checkbox', '', '', '', 14);
 
 
---
--- CATEGORY: Categories
---
-INSERT INTO `sys_options_categories`(`type_id`, `name`, `caption`, `hidden`, `order`) VALUES (@iTypeId, 'categories', '_adm_stg_cpt_category_categories', 0, 5);
-SET @iCategoryId = LAST_INSERT_ID();
-
-INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
-(@iCategoryId, 'categ_perpage_browse', '_adm_stg_cpt_option_categ_perpage_browse', '30', 'digit', '', '', '', 1),
-(@iCategoryId, 'categ_show_columns', '_adm_stg_cpt_option_categ_show_columns', '5', 'digit', '', '', '', 2);
-
-
 --
 -- CATEGORY: General
 --
@@ -399,7 +355,6 @@ INSERT INTO `sys_options_categories`(`type_id`, `name`, `caption`, `hidden`, `or
 SET @iCategoryId = LAST_INSERT_ID();
 
 INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
-(@iCategoryId, 'db_clean_members_visits', 'Delete stored members IPs older than (days)', '90', 'digit', '', '', '', 1),
 (@iCategoryId, 'db_clean_mem_levels', 'Delete membership levels expired for (days)', '30', 'digit', '', '', '', 2);
 
 
@@ -410,7 +365,6 @@ INSERT INTO `sys_options_categories`(`type_id`, `name`, `caption`, `hidden`, `or
 SET @iCategoryId = LAST_INSERT_ID();
 
 INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
-(@iCategoryId, 'enable_member_store_ip', '_adm_stg_cpt_option_enable_member_store_ip', 'on', 'checkbox', '', '', '', 1),
 (@iCategoryId, 'sys_security_impact_threshold_log', '_adm_stg_cpt_option_sys_security_impact_threshold_log', '-1', 'digit', '', '', '', 4),
 (@iCategoryId, 'sys_security_impact_threshold_block', '_adm_stg_cpt_option_sys_security_impact_threshold_block', '-1', 'digit', '', '', '', 5),
 (@iCategoryId, 'sys_security_form_token_enable', '_adm_stg_cpt_option_sys_security_form_token_enable', 'on', 'checkbox', '', '', '', 6),
@@ -446,40 +400,9 @@ INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `ex
 (@iCategoryId, 'sys_storage_s3_domain', '_adm_stg_cpt_option_sys_storage_s3_domain', '', 'digit', '', '', '', 5);
 
 
---
--- CATEGORY: Tags
---
-INSERT INTO `sys_options_categories`(`type_id`, `name`, `caption`, `hidden`, `order`) VALUES (@iTypeId, 'tags', '_adm_stg_cpt_category_tags', 0, 14);
-SET @iCategoryId = LAST_INSERT_ID();
-
-INSERT INTO `sys_options`(`category_id`, `name`, `caption`, `value`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
-(@iCategoryId, 'tags_non_parsable', '_adm_stg_cpt_option_tags_non_parsable', 'hi, hey, hello, all, i, i''m, i''d, am, for, in, to, a, the, on, it''s, is, my, of, are, from, i''m, me, you, and, we, not, will, at, where, there', 'text', '', '', '', 1),
-(@iCategoryId, 'tags_perpage_browse', '_adm_stg_cpt_option_tags_perpage_browse', '30', 'digit', '', '', '', 2),
-(@iCategoryId, 'tags_show_limit', '_adm_stg_cpt_option_tags_show_limit', '50', 'digit', '', '', '', 3);
-
-
 -- --------------------------------------------------------
 
 
---
--- Table structure for table `sys_ip_members_visits`
---
-
-CREATE TABLE `sys_ip_members_visits` (
-  `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `MemberID` int(10) unsigned NOT NULL,
-  `From` int(10) unsigned NOT NULL,
-  `DateTime` datetime NOT NULL,
-  PRIMARY KEY (`ID`),
-  KEY `From` (`From`)
-) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_localization_categories`
---
-
 CREATE TABLE `sys_localization_categories` (
   `ID` int(6) unsigned NOT NULL auto_increment,
   `Name` varchar(255) NOT NULL default '',
@@ -487,20 +410,10 @@ CREATE TABLE `sys_localization_categories` (
   UNIQUE KEY `Name` (`Name`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
---
--- Dumping data for table `sys_localization_categories`
---
-
 INSERT INTO `sys_localization_categories` VALUES
 (1, 'System'),
 (2, 'Custom');
 
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_localization_keys`
---
-
 CREATE TABLE `sys_localization_keys` (
   `ID` int(10) unsigned NOT NULL auto_increment,
   `IDCategory` int(6) unsigned NOT NULL default '0',
@@ -510,12 +423,6 @@ CREATE TABLE `sys_localization_keys` (
   FULLTEXT KEY `KeyFilter` (`Key`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_localization_languages`
---
-
 CREATE TABLE `sys_localization_languages` (
   `ID` int(10) unsigned NOT NULL auto_increment,
   `Name` varchar(5) NOT NULL default '',
@@ -526,26 +433,6 @@ CREATE TABLE `sys_localization_languages` (
   UNIQUE KEY `Name` (`Name`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_localization_string_params`
---
-
-CREATE TABLE `sys_localization_string_params` (
-  `IDKey` int(10) unsigned NOT NULL default '0',
-  `IDParam` tinyint(3) unsigned NOT NULL default '0',
-  `Description` varchar(255) NOT NULL default '',
-  PRIMARY KEY  (`IDKey`,`IDParam`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_localization_strings`
---
-
 CREATE TABLE `sys_localization_strings` (
   `IDKey` int(10) unsigned NOT NULL default '0',
   `IDLanguage` int(10) unsigned NOT NULL default '0',
@@ -664,19 +551,6 @@ INSERT INTO `sys_acl_matrix` (`IDLevel`, `IDAction`) VALUES
 (@iPremium, 13);
 
 
-
-CREATE TABLE `sys_acl_level_prices` (
-  `id` int(11) NOT NULL auto_increment,
-  `IDLevel` int(10) unsigned NOT NULL DEFAULT '0',
-  `Days` int(10) unsigned NOT NULL default '1',
-  `Price` float unsigned NOT NULL default '1',
-  `Order` int(11) NOT NULL,
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `type` (`IDLevel`,`Days`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-
-
 CREATE TABLE `sys_acl_levels` (
   `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
   `Name` varchar(100) NOT NULL default '',
@@ -807,65 +681,6 @@ CREATE TABLE `sys_objects_search` (
 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;
 
 
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_tags`
---
-
-CREATE TABLE `sys_tags` (
-  `Tag` varchar(32) NOT NULL default '',
-  `ObjID` int(10) unsigned NOT NULL default '0',
-  `Type` varchar(20) NOT NULL default 'profile',
-  `Date` timestamp NOT NULL default CURRENT_TIMESTAMP,
-  PRIMARY KEY  (`Tag`,`ObjID`,`Type`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
---
--- Dumping data for table `sys_tags`
---
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_objects_tag`
---
-
-CREATE TABLE `sys_objects_tag` (
-  `ID` int(10) unsigned NOT NULL auto_increment,
-  `ObjectName` varchar(50) NOT NULL,
-  `Query` text NOT NULL,
-  `PermalinkParam` varchar(50) NOT NULL default '',
-  `EnabledPermalink` varchar(100) NOT NULL default '',
-  `DisabledPermalink` varchar(100) NOT NULL default '',
-  `LangKey` varchar(100) NOT NULL default '',
-  PRIMARY KEY  (`ID`)
-) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
-
--- --------------------------------------------------------
-
---
--- Table structure for table `sys_transactions`
---
-
-CREATE TABLE `sys_transactions` (
-  `ID` bigint(20) unsigned NOT NULL auto_increment,
-  `IDMember` int(10) unsigned NOT NULL default '0',
-  `IDProvider` smallint(6) unsigned NOT NULL default '0',
-  `gtwTransactionID` varchar(32) NOT NULL default '',
-  `Date` datetime NOT NULL default '0000-00-00 00:00:00',
-  `Amount` float unsigned NOT NULL default '0',
-  `Currency` varchar(3) NOT NULL default 'USD',
-  `Status` enum('pending','approved','declined') NOT NULL default 'pending',
-  `Data` text NOT NULL,
-  `Description` tinytext,
-  `Note` tinytext,
-  PRIMARY KEY  (`ID`),
-  KEY `IDMember` (`IDMember`),
-  KEY `IDProvider` (`IDProvider`),
-  KEY `gtwTransactionID` (`gtwTransactionID`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
 -- --------------------------------------------------------
 
 --
@@ -1171,46 +986,6 @@ INSERT INTO `sys_cron_jobs` (`name`, `time`, `class`, `file`, `eval`) VALUES
 
 -- --------------------------------------------------------
 
-CREATE TABLE IF NOT EXISTS `sys_menu_mobile_pages` (
-  `id` int(11) NOT NULL AUTO_INCREMENT,
-  `page` varchar(32) NOT NULL,
-  `title` varchar(255) NOT NULL,
-  `order` int(11) NOT NULL,
-  PRIMARY KEY (`id`),
-  UNIQUE KEY `page` (`page`)
-) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
-
-INSERT INTO `sys_menu_mobile_pages` (`id`, `page`, `title`, `order`) VALUES
-(1, 'homepage', '_adm_mobile_page_homepage', 1),
-(2, 'profile', '_adm_mobile_page_profile', 2);
-
-CREATE TABLE IF NOT EXISTS `sys_menu_mobile` (
-  `id` int(11) NOT NULL AUTO_INCREMENT,
-  `type` varchar(32) NOT NULL,
-  `page` varchar(32) NOT NULL,
-  `title` varchar(255) NOT NULL,
-  `icon` varchar(255) NOT NULL,
-  `action` int(11) NOT NULL,
-  `action_data` varchar(255) NOT NULL,
-  `eval_bubble` text NOT NULL,
-  `eval_hidden` text NOT NULL,
-  `order` int(11) NOT NULL,
-  `active` int(11) NOT NULL,
-  PRIMARY KEY (`id`)
-) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
-
-INSERT INTO `sys_menu_mobile` (`type`, `page`, `title`, `icon`, `action`, `action_data`, `eval_bubble`, `eval_hidden`, `order`, `active`) VALUES
-('system', 'homepage', '_sys_mobile_status', 'home_status.png', 1, '', '', '', 1, 1),
-('system', 'homepage', '_sys_mobile_mail', 'home_messages.png', 3, '', 'return getNewLettersNum({member_id});', '', 2, 1),
-('system', 'homepage', '_sys_mobile_friends', 'home_friends.png', 4, '', 'return getFriendRequests({member_id});', '', 3, 1),
-('system', 'homepage', '_sys_mobile_info', 'home_info.png', 5, '', '', '', 4, 1),
-('system', 'homepage', '_sys_mobile_search', 'home_search.png', 6, '', '', '', 5, 1),
-('system', 'profile', '_sys_mobile_profile_info', '', 5, '', '', '', 1, 1),
-('system', 'profile', '_sys_mobile_profile_contact', '', 3, '', '', '', 2, 1),
-('system', 'profile', '_sys_mobile_profile_friends', '', 4, '', 'return getFriendNumber(''{profile_id}'');', '', 3, 1);
-
--- --------------------------------------------------------
-
 CREATE TABLE IF NOT EXISTS `sys_objects_storage` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `object` varchar(64) NOT NULL,
@@ -2765,7 +2540,8 @@ INSERT INTO `sys_menu_templates` (`id`, `template`, `title`) VALUES
 (10, 'menu_inline.html', '_sys_menu_template_title_inline'),
 (11, 'menu_interactive_vertical.html', '_sys_menu_template_title_interactive_vertical'),
 (12, 'menu_account_popup.html', '_sys_menu_template_title_account_popup'),
-(13, 'menu_account_notifications.html', '_sys_menu_template_title_account_notifications');
+(13, 'menu_account_notifications.html', '_sys_menu_template_title_account_notifications'),
+(14, 'menu_floating_blocks_big.html', '_sys_menu_template_title_floating_blocks_big');
 
 CREATE TABLE IF NOT EXISTS `sys_objects_menu` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -2789,8 +2565,8 @@ INSERT INTO `sys_objects_menu` (`object`, `title`, `set_name`, `module`, `templa
 ('sys_footer', '_sys_menu_title_footer', 'sys_footer', 'system', 2, 0, 1, '', ''),
 ('sys_toolbar_site', '_sys_menu_title_toolbar_site', 'sys_toolbar_site', 'system', 5, 0, 1, '', ''),
 ('sys_toolbar_member', '_sys_menu_title_toolbar_member', 'sys_toolbar_member', 'system', 5, 0, 1, 'BxTemplMenuToolbar', ''),
-('sys_account', '_sys_menu_title_account', 'sys_account_links', 'system', 3, 0, 1, '', ''),
-('sys_add_content', '_sys_menu_title_add_content', 'sys_add_content_links', 'system', 4, 0, 1, '', ''),
+('sys_account', '_sys_menu_title_account', 'sys_account_links', 'system', 7, 0, 1, '', ''),
+('sys_add_content', '_sys_menu_title_add_content', 'sys_add_content_links', 'system', 14, 0, 1, '', ''),
 ('sys_add_profile', '_sys_menu_title_add_profile', 'sys_add_profile_links', 'system', 4, 0, 1, '', ''),
 ('sys_account_settings_submenu', '_sys_menu_title_account_settings', 'sys_account_settings', 'system', 8, 0, 1, '', ''),
 ('sys_account_settings_more', '_sys_menu_title_account_settings_more', 'sys_account_settings_more', 'system', 4, 0, 1, '', ''),
@@ -2865,10 +2641,11 @@ INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `tit
 
 -- simple menu in account popup
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES
-('sys_account_links', 'system', 'dashboard', '_sys_menu_item_title_system_dashboard', '_sys_menu_item_title_dashboard', 'page.php?i=dashboard', '', '', '', '', 2147483646, 1, 1, 1),
-('sys_account_links', 'system', 'profile', '_sys_menu_item_title_system_profile', '_sys_menu_item_title_profile', '{member_url}', '', '', '', '', 2147483646, 1, 1, 2),
-('sys_account_links', 'system', 'account-settings', '_sys_menu_item_title_system_account_settings', '_sys_menu_item_title_account_settings', 'member.php', '', '', '', '', 2147483646, 1, 1, 3),
-('sys_account_links', 'system', 'logout', '_sys_menu_item_title_system_logout', '_sys_menu_item_title_logout', 'logout.php', '', '', '', '', 2147483646, 1, 1, 4);
+('sys_account_links', 'system', 'dashboard', '_sys_menu_item_title_system_dashboard', '_sys_menu_item_title_dashboard', 'page.php?i=dashboard', '', '', 'dashboard', '', 2147483646, 1, 1, 1),
+('sys_account_links', 'system', 'profile', '_sys_menu_item_title_system_profile', '_sys_menu_item_title_profile', '{member_url}', '', '', 'user', '', 2147483646, 1, 1, 2),
+('sys_account_links', 'system', 'account-settings', '_sys_menu_item_title_system_account_settings', '_sys_menu_item_title_account_settings', 'member.php', '', '', 'cog', '', 2147483646, 1, 1, 3),
+('sys_account_links', 'system', 'add-content', '_sys_menu_item_title_system_add_content', '_sys_menu_item_title_add_content', 'page.php?i=add-content', '', '', 'plus', '', 2147483646, 1, 1, 4),
+('sys_account_links', 'system', 'logout', '_sys_menu_item_title_system_logout', '_sys_menu_item_title_logout', 'logout.php', '', '', 'sign-out', '', 2147483646, 1, 1, 5);
 
 -- account settings menu
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES
@@ -3221,7 +2998,9 @@ INSERT INTO `sys_objects_page` (`object`, `uri`, `title_system`, `title`, `modul
 ('sys_account_settings_delete', 'account-settings-delete', '_sys_page_title_system_account_settings_delete', '_sys_page_title_account_settings_delete', 'system', 5, 2147483647, 1, 'page.php?i=account-settings-delete', '', '', '', 0, 1, 0, 'BxTemplPageAccount', ''),
 ('sys_account_profile_switcher', 'account-profile-switcher', '_sys_page_title_system_account_profile_switcher', '_sys_page_title_account_profile_switcher', 'system', 5, 2147483647, 1, 'page.php?i=account-profile-switcher', '', '', '', 0, 1, 0, 'BxTemplPageAccount', ''),
 ('sys_unsubscribe_notifications', 'unsubscribe-notifications', '_sys_page_title_system_unsubscribe_notifications', '_sys_page_title_unsubscribe_notifications', 'system', 5, 2147483647, 1, 'page.php?i=unsubscribe-notifications', '', '', '', 0, 1, 0, '', ''),
-('sys_unsubscribe_news', 'unsubscribe-news', '_sys_page_title_system_unsubscribe_news', '_sys_page_title_unsubscribe_news', 'system', 5, 2147483647, 1, 'page.php?i=unsubscribe-news', '', '', '', 0, 1, 0, '', '');
+('sys_unsubscribe_news', 'unsubscribe-news', '_sys_page_title_system_unsubscribe_news', '_sys_page_title_unsubscribe_news', 'system', 5, 2147483647, 1, 'page.php?i=unsubscribe-news', '', '', '', 0, 1, 0, '', ''),
+('sys_add_content', 'add-content', '_sys_page_title_system_add_content', '_sys_page_title_add_content', 'system', 5, 2147483647, 1, 'page.php?i=add-content', '', '', '', 0, 1, 0, '', '');
+
 
 
 CREATE TABLE IF NOT EXISTS `sys_pages_layouts` (
@@ -3323,8 +3102,9 @@ INSERT INTO `sys_pages_blocks` (`object`, `cell_id`, `module`, `title`, `designb
 
 ('sys_unsubscribe_notifications', 1, 'system', '_sys_page_block_title_unsubscribe_notifications', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:25:"unsubscribe_notifications";s:6:"params";a:0:{}s:5:"class";s:19:"TemplServiceAccount";}', 0, 1, 1),
 
-('sys_unsubscribe_news', 1, 'system', '_sys_page_block_title_unsubscribe_news', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:16:"unsubscribe_news";s:6:"params";a:0:{}s:5:"class";s:19:"TemplServiceAccount";}', 0, 1, 1);
+('sys_unsubscribe_news', 1, 'system', '_sys_page_block_title_unsubscribe_news', 11, 2147483647, 'service', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:16:"unsubscribe_news";s:6:"params";a:0:{}s:5:"class";s:19:"TemplServiceAccount";}', 0, 1, 1),
 
+('sys_add_content', 1, 'system', '_sys_page_block_title_add_content', 11, 2147483647, 'menu', 'sys_add_content', 0, 1, 1);
 
 -- --------------------------------------------------------
 
@@ -3420,11 +3200,6 @@ INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
 (3, 'builder_permissions', '_adm_page_cpt_builder_permissions', '_adm_page_cpt_builder_permissions', 'pi-builder-permissions.png');
 SET @iIdBuilderPermissions = LAST_INSERT_ID();
 
-INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
-(3, 'builder_mobile', '_adm_page_cpt_builder_mobile', '_adm_page_cpt_builder_mobile', 'pi-builder-mobile.png');
-SET @iIdBuilderMobile = LAST_INSERT_ID();
-
-
 --
 -- Dumping data for table `sys_std_widgets` and `sys_std_pages_widgets`
 -- Home Page

+ 0 - 6
member.php

@@ -37,12 +37,6 @@ if (isset($_POST['ID'])) { // login form is submitted
         $oAccount = BxDolAccount::getInstance($oForm->getCleanValue('ID'));
         $aAccount = bx_login($oAccount->id(), ($oForm->getCleanValue('rememberMe') ? true : false));
 
-        // Storing IP Address // TODO: move somewhere
-        if (getParam('enable_member_store_ip') == 'on') {
-            $iCurLongIP = sprintf("%u", ip2long(getVisitorIP()));
-            db_res("INSERT INTO `sys_ip_members_visits` SET `MemberID` = '{$aAccount['id']}', `From`='{$iCurLongIP}', `DateTime`=NOW()");
-        }
-
         $sUrlRelocate = $oForm->getCleanValue('relocate');
         if (!$sUrlRelocate || BX_DOL_URL_ROOT == $sUrlRelocate || basename($sUrlRelocate) == 'join.php' || 0 != strncmp($sUrlRelocate, BX_DOL_URL_ROOT, strlen(BX_DOL_URL_ROOT)))
             $sUrlRelocate = BX_DOL_ROLE_ADMIN == $oForm->getRole() ? BX_DOL_URL_STUDIO . 'launcher.php' : BX_DOL_URL_ROOT . 'member.php';

+ 49 - 1
modules/base/profile/classes/BxBaseModProfileModule.php

@@ -103,6 +103,50 @@ class BxBaseModProfileModule extends BxBaseModGeneralModule implements iBxDolPro
         );
     }
 
+    public function serviceBrowseConnectionsQuick ($iProfileId, $sObjectConnections = 'sys_profiles_friends', $sConnectionsType = 'content', $iMutual = false, $iProfileId2 = 0)
+    {
+        // get connections object
+        bx_import('BxDolConnection');
+        $oConnection = BxDolConnection::getObjectInstance($sObjectConnections);
+        if (!$oConnection)
+            return '';
+
+        // set some vars
+        $iLimit = empty($this->_oConfig->CNF['PARAM_NUM_CONNECTIONS_QUICK']) ? 4 : getParam($this->_oConfig->CNF['PARAM_NUM_CONNECTIONS_QUICK']);
+        if (!$iLimit)
+            $iLimit = 4;
+        $iStart = (int)bx_get('start');
+
+        // get connections array
+        $a = $oConnection->getConnectionsAsArray ($sConnectionsType, $iProfileId, $iProfileId2, $iMutual, (int)bx_get('start'), $iLimit + 1, BX_CONNECTIONS_ORDER_ADDED_DESC);
+        if (!$a)
+            return '';
+
+        // get paginate object
+        bx_import('BxTemplPaginate');
+        $oPaginate = new BxTemplPaginate(array(
+            'on_change_page' => "return !loadDynamicBlockAutoPaginate(this, '{start}', '{per_page}');",
+            'num' => count($a),
+            'per_page' => $iLimit,
+            'start' => $iStart,
+        ));
+
+        // remove last item from connection array, because we've got one more item for pagination calculations only
+        if (count($a) > $iLimit)
+            array_pop($a);
+
+        // get profiles HTML
+        bx_import('BxDolProfile');
+        $s = '';
+        foreach ($a as $iProfileId) {
+            $o = BxDolProfile::getInstance($iProfileId);
+            $s .= $o->getUnit();
+        }
+
+        // return profiles + paginate
+        return $s . (!$iStart && $oPaginate->getNum() <= $iLimit ?  '' : $oPaginate->getSimplePaginate());
+    } 
+
     public function serviceEntityEditCover ($iContentId = 0) 
     {
         return $this->_serviceEntityForm ('editDataForm', $iContentId, $this->_oConfig->CNF['OBJECT_FORM_ENTRY_DISPLAY_EDIT_COVER']);
@@ -133,7 +177,11 @@ class BxBaseModProfileModule extends BxBaseModGeneralModule implements iBxDolPro
         if (!$aContentInfo)
             return false;
         
-        return 'TODO: friends here';
+        bx_import('BxDolConnection');
+        $s = $this->serviceBrowseConnectionsQuick ($aContentInfo['profile_id'], 'sys_profiles_friends', BX_CONNECTIONS_CONTENT_TYPE_CONTENT, true);
+        if (!$s)
+            return MsgBox(_t('_sys_txt_empty'));
+        return $s;
     }
 
     // ====== PERMISSION METHODS

+ 18 - 1
modules/base/profile/classes/BxBaseModProfileSearchResult.php

@@ -13,11 +13,28 @@ bx_import('BxBaseModGeneralSearchResult');
 
 class BxBaseModProfileSearchResult extends BxBaseModGeneralSearchResult 
 {
-    function __construct($sMode = '', $aParams = array()) 
+    public function __construct($sMode = '', $aParams = array()) 
     {
         parent::__construct($sMode, $aParams);
         $this->sCenterContentUnitSelector = '.bx-base-pofile-unit';
     }
+
+    protected function _setConnectionsConditions ($aParams)
+    {           
+        bx_import('BxDolConnection');
+        $oConnection = isset($aParams['object']) ? BxDolConnection::getObjectInstance($aParams['object']) : false;
+        if (!$oConnection || !isset($aParams['profile']) || !(int)$aParams['profile'])
+            return false;
+
+        $sContentType = isset($aParams['type']) ? $aParams['type'] : BX_CONNECTIONS_CONTENT_TYPE_CONTENT;
+        $isMutual = isset($aParams['mutual']) ? $aParams['mutual'] : false;
+        $a = $oConnection->getConnectionsAsCondition ($sContentType, 'id', (int)$aParams['profile'], (int)$aParams['profile2'], $isMutual);
+
+        $this->aCurrent['restriction'] = array_merge($this->aCurrent['restriction'], $a['restriction']);
+        $this->aCurrent['join'] = array_merge($this->aCurrent['join'], $a['join']);
+
+        return true;
+    }
 }
 
 /** @} */

+ 0 - 14
modules/boonex/antispam/install/config.php

@@ -49,9 +49,7 @@ $aConfig = array(
 		'recompile_profile_fields' => 0,
 		'recompile_comments' => 0,
 		'recompile_member_actions' => 0,
-		'recompile_tags' => 0,
 		'recompile_votes' => 0,
-		'recompile_categories' => 0,
 		'recompile_search' => 0,
 		'recompile_injections' => 0,
 		'recompile_permalinks' => 0,
@@ -71,9 +69,7 @@ $aConfig = array(
 		'recompile_profile_fields' => 0,
 		'recompile_comments' => 0,
 		'recompile_member_actions' => 0,
-		'recompile_tags' => 0,
 		'recompile_votes' => 0,
-		'recompile_categories' => 0,
 		'recompile_search' => 0,
 		'recompile_injections' => 0,
 		'recompile_permalinks' => 0,
@@ -91,9 +87,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
         'recompile_alerts' => 0,
@@ -109,9 +103,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
         'recompile_alerts' => 0,
@@ -129,12 +121,6 @@ $aConfig = array(
 	 */
 	'language_category' => 'Antispam',
 
-	/**
-	 * Permissions Section
-	 */
-    'install_permissions' => array(),
-    'uninstall_permissions' => array(),
-
 	/**
 	 * Introduction and Conclusion Section.
 	 */

+ 0 - 9
modules/boonex/developer/install/config.php

@@ -50,9 +50,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 1,
         'recompile_alerts' => 0,
@@ -72,9 +70,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
         'recompile_alerts' => 0,
@@ -95,11 +91,6 @@ $aConfig = array(
      * Category for language keys.
      */
     'language_category' => 'BoonEx Developer',
-    /**
-     * Permissions Section
-     */
-    'install_permissions' => array(),
-    'uninstall_permissions' => array(),
     /**
      * Introduction and Conclusion Section.
      */

+ 6 - 41
modules/boonex/english/data/langs/system.xml

@@ -17,8 +17,6 @@
 	<string name="_CONTACT_H1"><![CDATA[Contact]]></string>
 	<string name="_Can not delete comments with replies"><![CDATA[Cannot delete comments with replies]]></string>
 	<string name="_Cancel"><![CDATA[Cancel]]></string>
-	<string name="_Categories"><![CDATA[Categories]]></string>
-	<string name="_Category"><![CDATA[Category]]></string>
 	<string name="_Content"><![CDATA[Content]]></string>
 	<string name="_Count"><![CDATA[Count]]></string>
 	<string name="_DELETE_SUCCESS"><![CDATA[You account was successfully deleted]]></string>
@@ -60,7 +58,6 @@
 	<string name="_No"><![CDATA[No]]></string>
 	<string name="_No actions allowed for this membership"><![CDATA[No actions allowed for this membership]]></string>
 	<string name="_No such comment"><![CDATA[No such comment]]></string>
-	<string name="_People_Calendar"><![CDATA[Calendar]]></string>
 	<string name="_Period"><![CDATA[Period]]></string>
 	<string name="_Please Wait"><![CDATA[Please Wait]]></string>
 	<string name="_Please enter n1-n2 characters"><![CDATA[Please enter {0}-{1} characters]]></string>
@@ -79,8 +76,6 @@
 	<string name="_Subject"><![CDATA[Subject]]></string>
 	<string name="_Submit"><![CDATA[Submit]]></string>
 	<string name="_Success"><![CDATA[Success]]></string>
-	<string name="_Tag"><![CDATA[Tag]]></string>
-	<string name="_Tags"><![CDATA[Tags]]></string>
 	<string name="_There_are_no_comments_yet"><![CDATA[There are no comments yet]]></string>
 	<string name="_Times allowed"><![CDATA[Times allowed]]></string>
 	<string name="_Title"><![CDATA[Title]]></string>
@@ -1079,7 +1074,6 @@
 	<string name="_adm_reg_title"><![CDATA[<a href="https://www.boonex.com/paymentprovider/payment">Purchase a Dolphin License</a> and Register Your Site.]]></string>
 	<string name="_adm_scs_operation_done"><![CDATA[]]></string>
 	<string name="_adm_stg_cpt_category_cache"><![CDATA[Cache]]></string>
-	<string name="_adm_stg_cpt_category_categories"><![CDATA[Categories]]></string>
 	<string name="_adm_stg_cpt_category_general"><![CDATA[General]]></string>
 	<string name="_adm_stg_cpt_category_languages"><![CDATA[Languages]]></string>
 	<string name="_adm_stg_cpt_category_massmailer"><![CDATA[Massmailer]]></string>
@@ -1090,15 +1084,11 @@
 	<string name="_adm_stg_cpt_category_site_settings"><![CDATA[Site Settings]]></string>
 	<string name="_adm_stg_cpt_category_storage"><![CDATA[Storage]]></string>
 	<string name="_adm_stg_cpt_category_system"><![CDATA[System]]></string>
-	<string name="_adm_stg_cpt_category_tags"><![CDATA[Tags]]></string>
 	<string name="_adm_stg_cpt_category_templates"><![CDATA[Templates]]></string>
 	<string name="_adm_stg_cpt_option_boonex_aff_id"><![CDATA[My BoonEx Affiliate ID]]></string>
-	<string name="_adm_stg_cpt_option_categ_perpage_browse"><![CDATA[Number of categories to show on browse pages]]></string>
-	<string name="_adm_stg_cpt_option_categ_show_columns"><![CDATA[Number of columns to show categories]]></string>
 	<string name="_adm_stg_cpt_option_currency_code"><![CDATA[Currency code (for checkout system)]]></string>
 	<string name="_adm_stg_cpt_option_currency_sign"><![CDATA[Currency sign (for display purposes only)]]></string>
 	<string name="_adm_stg_cpt_option_enable_gd"><![CDATA[Use GD library for image processing]]></string>
-	<string name="_adm_stg_cpt_option_enable_member_store_ip"><![CDATA[When a member login into dolphin that the IP address from that person will be saved into the database]]></string>
 	<string name="_adm_stg_cpt_option_enable_template"><![CDATA[Show Template Switcher]]></string>
 	<string name="_adm_stg_cpt_option_expire_notification_days"><![CDATA[Number of days before membership expiration to notify members ( -1 = after expiration )]]></string>
 	<string name="_adm_stg_cpt_option_expire_notify_once"><![CDATA[Notify members about membership expiration only once (every day otherwise)]]></string>
@@ -1112,7 +1102,6 @@
 	<string name="_adm_stg_cpt_option_site_title"><![CDATA[Site Title]]></string>
 	<string name="_adm_stg_cpt_option_sys_cache_memcache_host"><![CDATA[Memcached server host]]></string>
 	<string name="_adm_stg_cpt_option_sys_cache_memcache_port"><![CDATA[Memcached server port]]></string>
-	<string name="_adm_stg_cpt_option_sys_calendar_starts_sunday"><![CDATA[Does Calender start on Sunday?]]></string>
 	<string name="_adm_stg_cpt_option_sys_db_cache_enable"><![CDATA[Enable DB cache]]></string>
 	<string name="_adm_stg_cpt_option_sys_db_cache_engine"><![CDATA[DB cache engine (other than File option may require custom server setup)]]></string>
 	<string name="_adm_stg_cpt_option_sys_format_date"><![CDATA[Date Format]]></string>
@@ -1147,9 +1136,6 @@
 	<string name="_adm_stg_cpt_option_sys_template_cache_js_enable"><![CDATA[Enable cache for JS files]]></string>
 	<string name="_adm_stg_cpt_option_sys_template_page_width_max"><![CDATA[Max page width(in pixels)]]></string>
 	<string name="_adm_stg_cpt_option_sys_template_page_width_min"><![CDATA[Min page width(in pixels)]]></string>
-	<string name="_adm_stg_cpt_option_tags_non_parsable"><![CDATA[Non-parsable tags (type all tags in lower case, delimit them by comma)]]></string>
-	<string name="_adm_stg_cpt_option_tags_perpage_browse"><![CDATA[Number of tags to show on browse pages]]></string>
-	<string name="_adm_stg_cpt_option_tags_show_limit"><![CDATA[Number of tags to show limit]]></string>
 	<string name="_adm_stg_cpt_option_template"><![CDATA[Default Template]]></string>
 	<string name="_adm_stg_cpt_option_use_like_operator"><![CDATA[Use operator LIKE for search (recommended for small content)]]></string>
 	<string name="_adm_stg_cpt_type_system"><![CDATA[System]]></string>
@@ -1237,7 +1223,6 @@
 	<string name="_adm_txt_modules_process_success"><![CDATA[Done]]></string>
 	<string name="_adm_txt_modules_recompile_alerts"><![CDATA[Recompiling alerts:]]></string>
 	<string name="_adm_txt_modules_recompile_browse"><![CDATA[Recompiling browse:]]></string>
-	<string name="_adm_txt_modules_recompile_categories"><![CDATA[Recompiling categories:]]></string>
 	<string name="_adm_txt_modules_recompile_comments"><![CDATA[Recompiling comments:]]></string>
 	<string name="_adm_txt_modules_recompile_global_paramaters"><![CDATA[Recompiling global paramaters:]]></string>
 	<string name="_adm_txt_modules_recompile_injections"><![CDATA[Recompiling injections:]]></string>
@@ -1250,7 +1235,6 @@
 	<string name="_adm_txt_modules_recompile_profile_fields"><![CDATA[Recompiling profile fields:]]></string>
 	<string name="_adm_txt_modules_recompile_search"><![CDATA[Recompiling search:]]></string>
 	<string name="_adm_txt_modules_recompile_site_stats"><![CDATA[Recompiling site statistics:]]></string>
-	<string name="_adm_txt_modules_recompile_tags"><![CDATA[Recompiling tags:]]></string>
 	<string name="_adm_txt_modules_recompile_votes"><![CDATA[Recompiling votes:]]></string>
 	<string name="_adm_txt_modules_show_conclusion"><![CDATA[Conclusion from vendor:]]></string>
 	<string name="_adm_txt_modules_show_introduction"><![CDATA[Introduction from vendor:]]></string>
@@ -1275,23 +1259,8 @@
 	<string name="_adm_wgt_cpt_polyglot"><![CDATA[Polyglot]]></string>
 	<string name="_adm_wgt_cpt_settings"><![CDATA[Settings]]></string>
 	<string name="_adm_wgt_cpt_store"><![CDATA[Store]]></string>
-	<string name="_all_tags"><![CDATA[All Tags]]></string>
 	<string name="_are you sure?"><![CDATA[Are you sure?]]></string>
 	<string name="_bottom_text"><![CDATA[2002-{0}. Product of <a class="bottom_text" href="http://www.boonex.com/">BoonEx Group</a>.]]></string>
-	<string name="_categ_by_day"><![CDATA[Categories By Day: ]]></string>
-	<string name="_categ_caption_all"><![CDATA[All Categories]]></string>
-	<string name="_categ_caption_calendar"><![CDATA[Calendar]]></string>
-	<string name="_categ_caption_common"><![CDATA[Common Categories]]></string>
-	<string name="_categ_caption_keyword"><![CDATA[Keyword]]></string>
-	<string name="_categ_caption_users"><![CDATA[User Categories]]></string>
-	<string name="_categ_err_keyword"><![CDATA[Please specify keyword from 1 to 100 characters]]></string>
-	<string name="_categ_order_none"><![CDATA[None]]></string>
-	<string name="_categ_order_order_by"><![CDATA[Order by: ]]></string>
-	<string name="_categ_order_popular"><![CDATA[Popular]]></string>
-	<string name="_categ_order_recent"><![CDATA[Recent]]></string>
-	<string name="_categ_plural"><![CDATA[Categories]]></string>
-	<string name="_categ_single"><![CDATA[Category]]></string>
-	<string name="_categ_users"><![CDATA[User Categories]]></string>
 	<string name="_cmt_block_comments_title"><![CDATA[Comments ({0})]]></string>
 	<string name="_cmt_browse_all"><![CDATA[All]]></string>
 	<string name="_cmt_browse_friends"><![CDATA[Friends]]></string>
@@ -1328,7 +1297,6 @@
 	<string name="_month_next"><![CDATA[Next Month]]></string>
 	<string name="_month_prev"><![CDATA[Previous Month]]></string>
 	<string name="_no limit"><![CDATA[no limit]]></string>
-	<string name="_popular_tags"><![CDATA[Popular Tags]]></string>
 	<string name="_powered_by"><![CDATA[Powered by]]></string>
 	<string name="_see_more"><![CDATA[see more]]></string>
 	<string name="_show_replacement"><![CDATA[Show]]></string>
@@ -1433,7 +1401,6 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_designbox_13"><![CDATA[Content + background + padding]]></string>
 	<string name="_sys_designbox_2"><![CDATA[Empty box]]></string>
 	<string name="_sys_designbox_3"><![CDATA[Content + background]]></string>
-	<string name="_sys_err_categories"><![CDATA[please specify at least one category]]></string>
 	<string name="_sys_et_txt_about_us"><![CDATA[About us]]></string>
 	<string name="_sys_et_txt_body_activation"><![CDATA[<bx_include_auto:_email_header.html />
 <p>Hello,</p>
@@ -1685,6 +1652,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_account_settings_email"><![CDATA[Email]]></string>
 	<string name="_sys_menu_item_title_account_settings_info"><![CDATA[Account]]></string>
 	<string name="_sys_menu_item_title_account_settings_pwd"><![CDATA[Password]]></string>
+	<string name="_sys_menu_item_title_add_content"><![CDATA[Add...]]></string>
 	<string name="_sys_menu_item_title_cmts_item_delete"><![CDATA[Delete]]></string>
 	<string name="_sys_menu_item_title_cmts_item_edit"><![CDATA[Edit]]></string>
 	<string name="_sys_menu_item_title_cmts_item_reply"><![CDATA[]]></string>
@@ -1702,6 +1670,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_item_title_system_account_settings_email"><![CDATA[Email]]></string>
 	<string name="_sys_menu_item_title_system_account_settings_info"><![CDATA[Account]]></string>
 	<string name="_sys_menu_item_title_system_account_settings_pwd"><![CDATA[Password]]></string>
+	<string name="_sys_menu_item_title_system_add_content"><![CDATA[Add Content]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_delete"><![CDATA[Delete]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_edit"><![CDATA[Edit]]></string>
 	<string name="_sys_menu_item_title_system_cmts_item_reply"><![CDATA[Reply]]></string>
@@ -1729,6 +1698,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_menu_set_title_toolbar_site"><![CDATA[Toolbar Site]]></string>
 	<string name="_sys_menu_template_title_buttons_hor"><![CDATA[Horizontal Buttons]]></string>
 	<string name="_sys_menu_template_title_floating_blocks"><![CDATA[Floating Blocks]]></string>
+	<string name="_sys_menu_template_title_floating_blocks_big"><![CDATA[Floating Blocks Big]]></string>
 	<string name="_sys_menu_template_title_footer"><![CDATA[Footer Links]]></string>
 	<string name="_sys_menu_template_title_hor"><![CDATA[Horizontal Links]]></string>
 	<string name="_sys_menu_template_title_inline"><![CDATA[Inline]]></string>
@@ -1774,6 +1744,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_page_block_title_account_settings_info"><![CDATA[Edit Account]]></string>
 	<string name="_sys_page_block_title_account_settings_menu"><![CDATA[Account Settings]]></string>
 	<string name="_sys_page_block_title_account_settings_pwd"><![CDATA[Change Password]]></string>
+	<string name="_sys_page_block_title_add_content"><![CDATA[Add Content]]></string>
 	<string name="_sys_page_block_title_confirm_email"><![CDATA[Email Confirmation]]></string>
 	<string name="_sys_page_block_title_create_account"><![CDATA[Create Account]]></string>
 	<string name="_sys_page_block_title_dashboard"><![CDATA[Dashboard]]></string>
@@ -1789,6 +1760,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_page_title_account_settings_email"><![CDATA[Email Settings]]></string>
 	<string name="_sys_page_title_account_settings_info"><![CDATA[Edit Account]]></string>
 	<string name="_sys_page_title_account_settings_pwd"><![CDATA[Change Password]]></string>
+	<string name="_sys_page_title_add_content"><![CDATA[Add Content]]></string>
 	<string name="_sys_page_title_confirm_email"><![CDATA[Email Confirmation]]></string>
 	<string name="_sys_page_title_create_account"><![CDATA[Create Account]]></string>
 	<string name="_sys_page_title_dashboard"><![CDATA[Dashboard]]></string>
@@ -1801,6 +1773,7 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_page_title_system_account_settings_email"><![CDATA[Email Settings]]></string>
 	<string name="_sys_page_title_system_account_settings_info"><![CDATA[Edit Account]]></string>
 	<string name="_sys_page_title_system_account_settings_pwd"><![CDATA[Change Password]]></string>
+	<string name="_sys_page_title_system_add_content"><![CDATA[Add Content]]></string>
 	<string name="_sys_page_title_system_confirm_email"><![CDATA[Email Confirmation]]></string>
 	<string name="_sys_page_title_system_create_account"><![CDATA[Create Account]]></string>
 	<string name="_sys_page_title_system_dashboard"><![CDATA[Dashboard]]></string>
@@ -1933,14 +1906,6 @@ If it is not enabled then please consider implement this optimization, since it
 	<string name="_sys_uploader_upload_canceled"><![CDATA[Too bad. Upload canceled.]]></string>
 	<string name="_sys_edit_profile"><![CDATA[Edit profile]]></string>
 	<string name="_sys_x_days"><![CDATA[{0} days]]></string>
-	<string name="_tags_by_day"><![CDATA[Tags By Day: ]]></string>
-	<string name="_tags_caption_keyword"><![CDATA[Keyword]]></string>
-	<string name="_tags_caption_module"><![CDATA[Module]]></string>
-	<string name="_tags_err_keyword"><![CDATA[Please specify keyword from 1 to 100 characters]]></string>
-	<string name="_tags_founded_tags"><![CDATA[Search Results]]></string>
-	<string name="_tags_plural"><![CDATA[Tags]]></string>
-	<string name="_tags_recent"><![CDATA[Recently Added Tags]]></string>
-	<string name="_tags_single"><![CDATA[Tag]]></string>
 	<string name="_to"><![CDATA[to]]></string>
 	<string name="_top"><![CDATA[Top]]></string>
 	<string name="_uknown"><![CDATA[unknown]]></string>

+ 13 - 1
modules/boonex/membership_pricing/install/sql/install.sql

@@ -1,3 +1,14 @@
+
+CREATE TABLE `sys_acl_level_prices` (
+  `id` int(11) NOT NULL auto_increment,
+  `IDLevel` int(10) unsigned NOT NULL DEFAULT '0',
+  `Days` int(10) unsigned NOT NULL default '1',
+  `Price` float unsigned NOT NULL default '1',
+  `Order` int(11) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `type` (`IDLevel`,`Days`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+
 INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `override_class_name`, `override_class_file`) VALUES
 ('sys_studio_acl_prices', 'Sql', 'SELECT * FROM `sys_acl_level_prices` WHERE 1 ', 'sys_acl_level_prices', 'id', 'Order', '', '', 100, NULL, 'start', '', 'Days,Price', '', 'like', '', '', 'BxTemplStudioPermissionsPrices', '');
 
@@ -10,4 +21,5 @@ INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `confirm`, `order`) VALUES
 ('sys_studio_acl_prices', 'independent', 'add', '_adm_prm_btn_add_price', '', 0, 1),
 ('sys_studio_acl_prices', 'single', 'edit', '', 'pencil', 0, 1),
-('sys_studio_acl_prices', 'single', 'delete', '', 'remove', 1, 2);
+('sys_studio_acl_prices', 'single', 'delete', '', 'remove', 1, 2);
+

+ 5 - 1
modules/boonex/membership_pricing/install/sql/uninstall.sql

@@ -1,3 +1,7 @@
+
+DROP TABLE IF EXISTS `sys_acl_level_prices`;
+
 DELETE FROM `sys_objects_grid` WHERE `object`='sys_studio_acl_prices';
 DELETE FROM `sys_grid_fields` WHERE `object`='sys_studio_acl_prices';
-DELETE FROM `sys_grid_actions` WHERE `object`='sys_studio_acl_prices';
+DELETE FROM `sys_grid_actions` WHERE `object`='sys_studio_acl_prices';
+

+ 3 - 1
modules/boonex/notes/install/sql/enable.sql

@@ -117,9 +117,11 @@ SET @iSiteMenuOrder = (SELECT `order` FROM `sys_menu_items` WHERE `set_name` = '
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
 ('sys_site', 'bx_notes', 'notes-home', '_bx_notes_menu_item_title_system_entries_home', '_bx_notes_menu_item_title_entries_home', 'page.php?i=notes-home', '', '', 'file-text col-red3', 'bx_notes_submenu', 2147483647, 1, 1, IFNULL(@iSiteMenuOrder, 0) + 1);
 
+-- MENU: add to "add content" menu
+
 SET @iAddMenuOrder = (SELECT `order` FROM `sys_menu_items` WHERE `set_name` = 'sys_add_content_links' AND `active` = 1 ORDER BY `order` DESC LIMIT 1);
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('sys_add_content_links', 'bx_notes', 'create-note', '_bx_notes_menu_item_title_system_create_entry', '_bx_notes_menu_item_title_create_entry', 'page.php?i=create-note', '', '', '', '', 2147483647, 1, 1, IFNULL(@iAddMenuOrder, 0) + 1);
+('sys_add_content_links', 'bx_notes', 'create-note', '_bx_notes_menu_item_title_system_create_entry', '_bx_notes_menu_item_title_create_entry', 'page.php?i=create-note', '', '', 'file-text col-red3', '', 2147483647, 1, 1, IFNULL(@iAddMenuOrder, 0) + 1);
 
 
 -- MENU: actions menu for view entry 

+ 2 - 1
modules/boonex/organizations/classes/BxOrgsConfig.php

@@ -55,7 +55,8 @@ class BxOrgsConfig extends BxBaseModProfileConfig
             // some params
             'PARAM_AUTOAPPROVAL' => 'bx_organizations_autoapproval',
             'PARAM_DEFAULT_ACL_LEVEL' => 'bx_organizations_default_acl_level',
-            'PARAM_NUM_RSS' => '', // TODO:
+            'PARAM_NUM_RSS' => 'bx_organizations_num_rss',
+            'PARAM_NUM_CONNECTIONS_QUICK' => 'bx_organizations_num_connections_quick',
 
             // objects
             'OBJECT_STORAGE' => 'bx_organizations_pics',

+ 6 - 25
modules/boonex/organizations/classes/BxOrgsSearchResult.php

@@ -63,35 +63,16 @@ class BxOrgsSearchResult extends BxBaseModProfileSearchResult
         switch ($sMode) {
 
             case 'connections':
-                bx_import('BxDolConnection');
-                $oConnection = isset($aParams['object']) ? BxDolConnection::getObjectInstance($aParams['object']) : false;
-                if ($oConnection && isset($aParams['profile']) && (int)$aParams['profile']) {
-
+                if ($this->_setConnectionsConditions($aParams)) {
                     $oProfile = BxDolProfile::getInstance($aParams['profile']);
+                    $oProfile2 = isset($aParams['profile2']) ? BxDolProfile::getInstance($aParams['profile2']) : null;
 
-                    $sMethod = 'getConnectedContentAsCondition';
-                    if (isset($aParams['type']) && $aParams['type'] == 'initiators')
-                        $sMethod = 'getConnectedInitiatorsAsCondition';
-
-                    if (isset($aParams['type']) && $aParams['type'] == 'common') {
-
-                        $a = $oConnection->getCommonContentAsCondition('id', (int)$aParams['profile'], (int)$aParams['profile2'], isset($aParams['mutual']) ? $aParams['mutual'] : false);
-                        $oProfile2 = BxDolProfile::getInstance($aParams['profile2']);
-                        if ($oProfile && $oProfile2)
-                            $this->aCurrent['title'] = _t('_bx_orgs_page_title_browse_connections_mutual', $oProfile->getDisplayName(), $oProfile2->getDisplayName());
-
-                    } else {
+                    if (isset($aParams['type']) && $aParams['type'] == 'common' && $oProfile && $oProfile2)
+                        $this->aCurrent['title'] = _t('_bx_orgs_page_title_browse_connections_mutual', $oProfile->getDisplayName(), $oProfile2->getDisplayName());
+                    elseif ((!isset($aParams['type']) || $aParams['type'] != 'common') && $oProfile)
+                        $this->aCurrent['title'] = _t('_bx_orgs_page_title_browse_connections', $oProfile->getDisplayName());
 
-                        $a = $oConnection->$sMethod('id', (int)$aParams['profile'], isset($aParams['mutual']) ? $aParams['mutual'] : false);
-                        if ($oProfile)
-                            $this->aCurrent['title'] = _t('_bx_orgs_page_title_browse_connections', $oProfile->getDisplayName());
-
-                    }
-
-                    $this->aCurrent['restriction'] = array_merge($this->aCurrent['restriction'], $a['restriction']);
-                    $this->aCurrent['join'] = array_merge($this->aCurrent['join'], $a['join']);
                     $this->aCurrent['rss']['link'] = 'modules/?r=orgs/rss/' . $sMode . '/' . $aParams['object'] . '/' . $aParams['type'] . '/' . (int)$aParams['profile'] . '/' . (int)$aParams['profile2'] . '/' . (int)$aParams['mutual'];
-
                 }
                 break;
 

+ 2 - 0
modules/boonex/organizations/install/langs/en.xml

@@ -5,6 +5,8 @@
 
 	<string name="_bx_orgs_option_autoapproval"><![CDATA[Activate all organizations after creation automatically]]></string>
 	<string name="_bx_orgs_option_default_acl_level"><![CDATA[Default level to assign after organizations's profile creation]]></string>
+	<string name="_bx_orgs_option_num_connections_quick"><![CDATA[Number of items in friends block]]></string>
+	<string name="_bx_orgs_option_num_rss"><![CDATA[Number of items in RSS feed]]></string>
 
 	<string name="_bx_orgs_form_profile"><![CDATA[Organizations]]></string>
 	<string name="_bx_orgs_form_profile_display_add"><![CDATA[Add Organization]]></string>

+ 3 - 1
modules/boonex/organizations/install/sql/enable.sql

@@ -12,7 +12,9 @@ SET @iCategId = LAST_INSERT_ID();
 
 INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
 ('bx_organizations_autoapproval', 'on', @iCategId, '_bx_orgs_option_autoapproval', 'checkbox', '', '', '', 1),
-('bx_organizations_default_acl_level', '2', @iCategId, '_bx_orgs_option_default_acl_level', 'select', 'PHP:bx_import(''BxDolAcl''); return BxDolAcl::getInstance()->getMemberships(false, true);', '', '', 2);
+('bx_organizations_default_acl_level', '2', @iCategId, '_bx_orgs_option_default_acl_level', 'select', 'PHP:bx_import(''BxDolAcl''); return BxDolAcl::getInstance()->getMemberships(false, true);', '', '', 2),
+('bx_organizations_num_connections_quick', '4', @iCategId, '_bx_orgs_option_num_connections_quick', 'digit', '', '', '', 10),
+('bx_organizations_num_rss', '10', @iCategId, '_bx_orgs_option_num_rss', 'digit', '', '', '', 12);
 
 -- STORAGES & TRANSCODERS
 

+ 2 - 1
modules/boonex/persons/classes/BxPersonsConfig.php

@@ -55,7 +55,8 @@ class BxPersonsConfig extends BxBaseModProfileConfig
             // some params
             'PARAM_AUTOAPPROVAL' => 'bx_persons_autoapproval',
             'PARAM_DEFAULT_ACL_LEVEL' => 'bx_persons_default_acl_level',
-            'PARAM_NUM_RSS' => '', // TODO:
+            'PARAM_NUM_RSS' => 'bx_persons_num_rss',
+            'PARAM_NUM_CONNECTIONS_QUICK' => 'bx_persons_num_connections_quick',
 
             // objects
             'OBJECT_STORAGE' => 'bx_persons_pictures',

+ 6 - 25
modules/boonex/persons/classes/BxPersonsSearchResult.php

@@ -63,35 +63,16 @@ class BxPersonsSearchResult extends BxBaseModProfileSearchResult
         switch ($sMode) {
 
             case 'connections':
-                bx_import('BxDolConnection');
-                $oConnection = isset($aParams['object']) ? BxDolConnection::getObjectInstance($aParams['object']) : false;
-                if ($oConnection && isset($aParams['profile']) && (int)$aParams['profile']) {
-
+                if ($this->_setConnectionsConditions($aParams)) {
                     $oProfile = BxDolProfile::getInstance($aParams['profile']);
+                    $oProfile2 = isset($aParams['profile2']) ? BxDolProfile::getInstance($aParams['profile2']) : null;
 
-                    $sMethod = 'getConnectedContentAsCondition';
-                    if (isset($aParams['type']) && $aParams['type'] == 'initiators')
-                        $sMethod = 'getConnectedInitiatorsAsCondition';
-
-                    if (isset($aParams['type']) && $aParams['type'] == 'common') {
-
-                        $a = $oConnection->getCommonContentAsCondition('id', (int)$aParams['profile'], (int)$aParams['profile2'], isset($aParams['mutual']) ? $aParams['mutual'] : false);
-                        $oProfile2 = BxDolProfile::getInstance($aParams['profile2']);
-                        if ($oProfile && $oProfile2)
-                            $this->aCurrent['title'] = _t('_bx_persons_page_title_browse_connections_mutual', $oProfile->getDisplayName(), $oProfile2->getDisplayName());
-
-                    } else {
+                    if (isset($aParams['type']) && $aParams['type'] == 'common' && $oProfile && $oProfile2)
+                        $this->aCurrent['title'] = _t('_bx_persons_page_title_browse_connections_mutual', $oProfile->getDisplayName(), $oProfile2->getDisplayName());
+                    elseif ((!isset($aParams['type']) || $aParams['type'] != 'common') && $oProfile)
+                        $this->aCurrent['title'] = _t('_bx_persons_page_title_browse_connections', $oProfile->getDisplayName());
 
-                        $a = $oConnection->$sMethod('id', (int)$aParams['profile'], isset($aParams['mutual']) ? $aParams['mutual'] : false);
-                        if ($oProfile)
-                            $this->aCurrent['title'] = _t('_bx_persons_page_title_browse_connections', $oProfile->getDisplayName());
-
-                    }
-
-                    $this->aCurrent['restriction'] = array_merge($this->aCurrent['restriction'], $a['restriction']);
-                    $this->aCurrent['join'] = array_merge($this->aCurrent['join'], $a['join']);
                     $this->aCurrent['rss']['link'] = 'modules/?r=persons/rss/' . $sMode . '/' . $aParams['object'] . '/' . $aParams['type'] . '/' . (int)$aParams['profile'] . '/' . (int)$aParams['profile2'] . '/' . (int)$aParams['mutual'];
-
                 }
                 break;
 

+ 2 - 0
modules/boonex/persons/install/langs/en.xml

@@ -5,6 +5,8 @@
 
 	<string name="_bx_persons_option_autoapproval"><![CDATA[Activate all persons after creation automatically]]></string>
 	<string name="_bx_persons_option_default_acl_level"><![CDATA[Default member's level to assign after person's profile creation]]></string>
+	<string name="_bx_persons_option_num_connections_quick"><![CDATA[Number of items in friends block]]></string>
+	<string name="_bx_persons_option_num_rss"><![CDATA[Number of items in RSS feed]]></string>
 
 	<string name="_bx_persons_form_profile"><![CDATA[Persons]]></string>
 	<string name="_bx_persons_form_profile_display_add"><![CDATA[Add Person]]></string>

+ 3 - 1
modules/boonex/persons/install/sql/enable.sql

@@ -12,7 +12,9 @@ SET @iCategId = LAST_INSERT_ID();
 
 INSERT INTO `sys_options` (`name`, `value`, `category_id`, `caption`, `type`, `extra`, `check`, `check_error`, `order`) VALUES
 ('bx_persons_autoapproval', 'on', @iCategId, '_bx_persons_option_autoapproval', 'checkbox', '', '', '', 1),
-('bx_persons_default_acl_level', '2', @iCategId, '_bx_persons_option_default_acl_level', 'select', 'PHP:bx_import(''BxDolAcl''); return BxDolAcl::getInstance()->getMemberships(false, true);', '', '', 2);
+('bx_persons_default_acl_level', '2', @iCategId, '_bx_persons_option_default_acl_level', 'select', 'PHP:bx_import(''BxDolAcl''); return BxDolAcl::getInstance()->getMemberships(false, true);', '', '', 2),
+('bx_persons_num_connections_quick', '4', @iCategId, '_bx_persons_option_num_connections_quick', 'digit', '', '', '', 10),
+('bx_persons_num_rss', '10', @iCategId, '_bx_persons_option_num_rss', 'digit', '', '', '', 12);
 
 -- STORAGES & TRANSCODERS
 

+ 0 - 14
modules/boonex/profiler/install/config.php

@@ -49,9 +49,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_search' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
@@ -71,9 +69,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_search' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
@@ -91,9 +87,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
         'recompile_alerts' => 0,
@@ -109,9 +103,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
         'recompile_alerts' => 0,
@@ -129,12 +121,6 @@ $aConfig = array(
      */
     'language_category' => 'Boonex Profiler',
 
-    /**
-     * Permissions Section
-     */
-    'install_permissions' => array(),
-    'uninstall_permissions' => array(),
-
     /**
      * Introduction and Conclusion Section.
      */

+ 0 - 105
modules/boonex/russian/data/langs/system.xml

@@ -250,7 +250,6 @@
 	<string name="_Subject"><![CDATA[Subject]]></string>
 	<string name="_Successfully uploaded"><![CDATA[Successfully uploaded!]]></string>
 	<string name="_Suspend account"><![CDATA[Suspend account]]></string>
-	<string name="_sys_tags_note"><![CDATA[Enter a few words delimited by commas]]></string>
 	<string name="_Text"><![CDATA[Text]]></string>
 	<string name="_Terms_of_use"><![CDATA[Terms]]></string>
 	<string name="_Tell a friend"><![CDATA[Invite a friend]]></string>
@@ -870,13 +869,6 @@ We may update our Privacy Statement from time to time so please visit this page
 	<string name="_please_select"><![CDATA[please select]]></string>
 	<string name="_Please_Select_"><![CDATA[Please Select...]]></string>
 	<string name="_associated_image"><![CDATA[associated image]]></string>
-	<string name="_add_category"><![CDATA[add category]]></string>
-	<string name="_edit_category"><![CDATA[edit category]]></string>
-	<string name="_characters_left"><![CDATA[characters left]]></string>
-	<string name="_category_deleted"><![CDATA[category deleted]]></string>
-	<string name="_category_delete_failed"><![CDATA[failed to delete the category]]></string>
-	<string name="_category_successfully_added"><![CDATA[category successfully added]]></string>
-	<string name="_failed_to_add_category"><![CDATA[failed to add category]]></string>
 	<string name="_changes_successfully_applied"><![CDATA[changes successfully applied]]></string>
 	<string name="_comment_added_successfully"><![CDATA[comment added successfully]]></string>
 	<string name="_failed_to_add_comment"><![CDATA[failed to add comment]]></string>
@@ -888,7 +880,6 @@ We may update our Privacy Statement from time to time so please visit this page
 	<string name="_UPLOAD_MEDIA"><![CDATA[UPLOAD MEDIA]]></string>
 	<string name="_MEDIA_GALLERY_H"><![CDATA[profile media gallery]]></string>
 	<string name="_Showing results:"><![CDATA[Showing results: <b>{0}</b> - <b>{1}</b> of <b>{2}</b>]]></string>
-	<string name="_Category"><![CDATA[Category]]></string>
 	<string name="_Created"><![CDATA[Founded]]></string>
 	<string name="_Members count"><![CDATA[Members]]></string>
 	<string name="_View all members"><![CDATA[View all members]]></string>
@@ -912,7 +903,6 @@ We may update our Privacy Statement from time to time so please visit this page
 	<string name="_Choose"><![CDATA[Choose]]></string>
 	<string name="_Open join"><![CDATA[Open join]]></string>
 	<string name="_Name is required"><![CDATA[Name is required]]></string>
-	<string name="_Category is required"><![CDATA[Category is required]]></string>
 	<string name="_Country is required"><![CDATA[Country is required]]></string>
 	<string name="_City is required"><![CDATA[City is required]]></string>
 	<string name="_About is required"><![CDATA[Group title is required]]></string>
@@ -952,7 +942,6 @@ We may update our Privacy Statement from time to time so please visit this page
 	<string name="_Next page"><![CDATA[Next page]]></string>
 	<string name="_Previous page"><![CDATA[Previous page]]></string>
 	<string name="_By Author"><![CDATA[Author: <b><a href="{0}">{0}</a></b>]]></string>
-	<string name="_in Category"><![CDATA[<img src="{0}" alt="" /><a href="{1}">{2}</a>]]></string>
 	<string name="_comments N"><![CDATA[<img src="{0}" />{1} comments]]></string>
 	<string name="_Videos"><![CDATA[Videos]]></string>
 	<string name="_N times"><![CDATA[{0} time(s)]]></string>
@@ -965,7 +954,6 @@ We may update our Privacy Statement from time to time so please visit this page
 	<string name="_Blocked Me"><![CDATA[Blocked Me]]></string>
 	<string name="_My Videos"><![CDATA[My Videos]]></string>
 	<string name="_My Friends"><![CDATA[My Friends]]></string>
-	<string name="_Add Category"><![CDATA[Add Category]]></string>
 	<string name="_New Post"><![CDATA[New Post]]></string>
 	<string name="_Add Post"><![CDATA[Add Post]]></string>
 	<string name="_Send Message"><![CDATA[Send Message]]></string>
@@ -1043,7 +1031,6 @@ We may update our Privacy Statement from time to time so please visit this page
 	<string name="_This Week"><![CDATA[This Week]]></string>
 	<string name="_This Month"><![CDATA[This Month]]></string>
 	<string name="_This Year"><![CDATA[This Year]]></string>
-	<string name="_No tags found here"><![CDATA[No tags found here]]></string>
 	<string name="_New Today"><![CDATA[New Today]]></string>
 	<string name="_Count"><![CDATA[Count]]></string>
 	<string name="_Site Stats"><![CDATA[Site Stats]]></string>
@@ -1066,31 +1053,9 @@ When uploading the material, you provide {0} and its members with the right to u
 - Media files containing children's porno.
 - Media containing naked views of you or your children.
 If you do not agree with these stipulations, you may not upload any media files.]]></string>
-	<string name="_Tags"><![CDATA[Tags]]></string>
-	<string name="_Tags_caption"><![CDATA[Tags]]></string>
-	<string name="_Tags_desc"><![CDATA[Enter a few words delimited by commas or semicolon]]></string>
-	<string name="_Tags_err_msg"><![CDATA[You must enter your Tags]]></string>
-	<string name="_tags_err_keyword"><![CDATA[Please specify keyword from 1 to 100 characters]]></string>
-	<string name="_tags_home"><![CDATA[Tags Home]]></string>
-	<string name="_all_tags"><![CDATA[All Tags]]></string>
-	<string name="_popular_tags"><![CDATA[Popular Tags]]></string>
-	<string name="_tags_calendar"><![CDATA[Calendar]]></string>
-	<string name="_tags_search"><![CDATA[Search]]></string>
-	<string name="_tags_recent"><![CDATA[Recently Added Tags]]></string>
-	<string name="_tags_not_found"><![CDATA[Tags Not Found]]></string>
-	<string name="_tags_empty"><![CDATA[Empty]]></string>
-	<string name="_tags_by_day"><![CDATA[Tags By Day: ]]></string>
-	<string name="_tags_search_form"><![CDATA[Search Form]]></string>
-	<string name="_tags_founded_tags"><![CDATA[Search Results]]></string>
-	<string name="_tags_single"><![CDATA[Tag]]></string>
-	<string name="_tags_plural"><![CDATA[Tags]]></string>
-	<string name="_tags_date"><![CDATA[Empty]]></string>
-	<string name="_tags_caption_keyword"><![CDATA[Keyword]]></string>
-	<string name="_tags_caption_module"><![CDATA[Module]]></string>
 	<string name="_Member Friends"><![CDATA[Member Friends]]></string>
 	<string name="_Select"><![CDATA[Select]]></string>
 	<string name="_Join Now Top"><![CDATA[Join Now]]></string>
-	<string name="_Tag"><![CDATA[Tag]]></string>
 	<string name="_Sorry, no members found"><![CDATA[Sorry, no members found]]></string>
 	<string name="_PWD_INVALID3"><![CDATA[Password confirmation failed]]></string>
 	<string name="_Change Password"><![CDATA[Change Password]]></string>
@@ -1099,9 +1064,6 @@ If you do not agree with these stipulations, you may not upload any media files.
 	<string name="_Admin Panel"><![CDATA[Admin Panel]]></string>
 	<string name="_File upload error"><![CDATA[File upload error]]></string>
 	<string name="_send greetings"><![CDATA[send greetings]]></string>
-	<string name="_Category Caption"><![CDATA[Category Caption]]></string>
-	<string name="_Category Deleted Successfully"><![CDATA[Category Deleted Successfully]]></string>
-	<string name="_Category are not deleted"><![CDATA[Category not deleted]]></string>
 	<string name="_affiliate_system_was_disabled"><![CDATA[Affiliate system was disabled]]></string>
 	<string name="_DescriptionMedia"><![CDATA[Description]]></string>
 	<string name="_Mutual Friends"><![CDATA[Mutual Friends]]></string>
@@ -1110,7 +1072,6 @@ If you do not agree with these stipulations, you may not upload any media files.
 	<string name="_Unsubscribe"><![CDATA[Unsubscribe]]></string>
 	<string name="_not_active_story"><![CDATA[Inactive Story]]></string>
 	<string name="_Profile Videos"><![CDATA[Profile Videos]]></string>
-	<string name="_Uncategorized"><![CDATA[Uncategorized]]></string>
 	<string name="_PROFILE_CONFIRM"><![CDATA[Congratulations! Your e-mail confirmation succeeded and your profile has been activated!<br />
 Please click "Continue" below to navigate to the home page of the site.]]></string>
 	<string name="_First Person"><![CDATA[First Person]]></string>
@@ -1175,10 +1136,8 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_Can not delete comments with replies"><![CDATA[Cannot delete comments with replies]]></string>
 	<string name="_Access denied"><![CDATA[Access denied]]></string>
 	<string name="_Save"><![CDATA[Save]]></string>
-	<string name="_Search by Tag"><![CDATA[Search by Tag]]></string>
 	<string name="_Approve"><![CDATA[Approve]]></string>
 	<string name="_Disapprove"><![CDATA[Disapprove]]></string>
-	<string name="_Select Category"><![CDATA[Select Category]]></string>
 	<string name="_Print As"><![CDATA[Print As]]></string>
 	<string name="_Hide N replies"><![CDATA[<span>{0}</span> replies]]></string>
 	<string name="_Counter"><![CDATA[Counter]]></string>
@@ -1189,7 +1148,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_Write new Message"><![CDATA[Send once more]]></string>
 	<string name="_FieldCaption_Membership_Edit"><![CDATA[Membership level]]></string>
 	<string name="_FieldDesc_Membership_Edit"><![CDATA[Member membership level]]></string>
-	<string name="_FieldCaption_Tags_View"><![CDATA[Tags]]></string>
 	<string name="_use Orca private forums"><![CDATA[use Orca private forums]]></string>
 	<string name="_use Orca public forums"><![CDATA[use Orca public forums]]></string>
 	<string name="_vote"><![CDATA[vote]]></string>
@@ -1227,7 +1185,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_day_of_12"><![CDATA[{0} December, {1}]]></string>
 	<string name="_day_of_12_short"><![CDATA[{0} Dec {1}]]></string>
 	<string name="_Clear"><![CDATA[Clear]]></string>
-	<string name="_SubCategory is required"><![CDATA[SubCategory is required]]></string>
 	<string name="_Send eCard"><![CDATA[Send eCard]]></string>
 	<string name="_send eCards"><![CDATA[send eCards]]></string>
 	<string name="_Total"><![CDATA[Total]]></string>
@@ -1251,8 +1208,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_Existed_RSS"><![CDATA[Existing RSS]]></string>
 	<string name="_Favorited"><![CDATA[Favorited]]></string>
 	<string name="_Click here"><![CDATA[Click here]]></string>
-	<string name="_Profile tags"><![CDATA[Profile tags]]></string>
-	<string name="_Profiles tags"><![CDATA[Profiles tags]]></string>
 	<string name="_First page"><![CDATA[First page]]></string>
 	<string name="_Last page"><![CDATA[Last page]]></string>
 	<string name="_People"><![CDATA[People]]></string>
@@ -1360,8 +1315,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_td_content"><![CDATA[Content]]></string>
 	<string name="_td_snippet"><![CDATA[Snippet]]></string>
 	<string name="_td_date"><![CDATA[Date]]></string>
-	<string name="_td_tags"><![CDATA[Tags]]></string>
-	<string name="_td_categories"><![CDATA[Categories]]></string>
 	<string name="_td_post"><![CDATA[Post]]></string>
 	<string name="_td_edit"><![CDATA[Update]]></string>
 	<string name="_td_allow_comment"><![CDATA[Allow comment on my feedback]]></string>
@@ -1382,7 +1335,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_sys_breadcrumb_login"><![CDATA[Login]]></string>
 	<string name="_sys_breadcrumb_logout"><![CDATA[Logout]]></string>
 	<string name="_sys_breadcrumb_guest"><![CDATA[Guest]]></string>
-	<string name="_sys_err_categories"><![CDATA[please specify at least one category]]></string>
 	<string name="_Welcome_to_the_community"><![CDATA[Welcome to the community!]]></string>
 	<string name="_Empty"><![CDATA[Empty]]></string>
 	<string name="_By Sex"><![CDATA[By Sex]]></string>
@@ -1404,7 +1356,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_Featured"><![CDATA[Featured]]></string>
 	<string name="_Top Rated"><![CDATA[Top Rated]]></string>
 	<string name="_Birthdays"><![CDATA[Birthdays]]></string>
-	<string name="_People_Calendar"><![CDATA[Calendar]]></string>
 	<string name="_World_Map"><![CDATA[World Map]]></string>
 	<string name="_Spy"><![CDATA[Spy]]></string>
 	<string name="_All_Users"><![CDATA[All Users]]></string>
@@ -1415,17 +1366,12 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_All_Sites"><![CDATA[All Sites]]></string>
 	<string name="_Admin_Links"><![CDATA[Admin Links]]></string>
 	<string name="_Profile_Sites"><![CDATA[Profile Sites]]></string>
-	<string name="_Sites_Categories"><![CDATA[Categories]]></string>
-	<string name="_Sites_Calendar"><![CDATA[Calendar]]></string>
 	<string name="_Advice"><![CDATA[Advice]]></string>
 	<string name="_Cards"><![CDATA[Cards]]></string>
 	<string name="_All_Cards"><![CDATA[All Cards]]></string>
-	<string name="_Cards_Categories"><![CDATA[Categories]]></string>
-	<string name="_Cards_Calendar"><![CDATA[Calendar]]></string>
 	<string name="_Sites_Home"><![CDATA[Sites Home]]></string>
 	<string name="_Cards_Home"><![CDATA[Cards Home]]></string>
 	<string name="_Search_Home"><![CDATA[Search Home]]></string>
-	<string name="_Tags_Home"><![CDATA[Tags Home]]></string>
 	<string name="_Static"><![CDATA[Static]]></string>
 	<string name="_Bottom"><![CDATA[Bottom]]></string>
 	<string name="_Saved"><![CDATA[Saved]]></string>
@@ -1572,7 +1518,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<!-- Settings: Languages -->
 	<string name="_adm_stg_cpt_category_languages"><![CDATA[Languages]]></string>
 	<string name="_adm_stg_cpt_option_lang_default"><![CDATA[Default Language]]></string>
-	<string name="_adm_stg_cpt_option_sys_calendar_starts_sunday"><![CDATA[Does Calender start on Sunday?]]></string>
 	<string name="_adm_stg_cpt_option_sys_format_date"><![CDATA[Date Format]]></string>
 	<string name="_adm_stg_cpt_option_sys_format_time"><![CDATA[Time Format]]></string>
 	<string name="_adm_stg_cpt_option_sys_format_datetime"><![CDATA[Datetime Format]]></string>
@@ -1602,11 +1547,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_adm_stg_cpt_option_sys_template_cache_js_enable"><![CDATA[Enable cache for JS files]]></string>
 	<string name="_adm_stg_cpt_option_sys_template_cache_compress_enable"><![CDATA[Enable compression for JS/CSS files(cache should be enabled)]]></string>
 
-	<!-- Settings: Categories -->
-	<string name="_adm_stg_cpt_category_categories"><![CDATA[Categories]]></string>
-	<string name="_adm_stg_cpt_option_categ_perpage_browse"><![CDATA[Number of categories to show on browse pages]]></string>
-	<string name="_adm_stg_cpt_option_categ_show_columns"><![CDATA[Number of columns to show categories]]></string>
-
 	<!-- Settings: General -->
 	<string name="_adm_stg_cpt_category_general"><![CDATA[General]]></string>
 	<string name="_adm_stg_cpt_option_sys_ftp_login"><![CDATA[FTP server login]]></string>
@@ -1637,12 +1577,10 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 
 	<!-- Settings: Pruning -->
 	<string name="_adm_stg_cpt_category_pruning"><![CDATA[Pruning]]></string>
-	<string name="_adm_stg_cpt_option_db_clean_members_visits"><![CDATA[Delete stored members IPs older than (days)]]></string>
 	<string name="_adm_stg_cpt_option_db_clean_mem_levels"><![CDATA[Delete membership levels expired for (days)]]></string>
 
 	<!-- Settings: Security -->
 	<string name="_adm_stg_cpt_category_security"><![CDATA[Security]]></string>
-	<string name="_adm_stg_cpt_option_enable_member_store_ip"><![CDATA[When a member login into dolphin that the IP address from that person will be saved into the database]]></string>
 	<string name="_adm_stg_cpt_option_ip_blacklist_mode"><![CDATA[IP Blacklist system mode (1 - total block, 2 - login block)]]></string>
 	<string name="_adm_stg_cpt_option_ip_list_global_type"><![CDATA[IP List Type (1 - all allowed except listed, 2 - all blocked except listed, 0 - disabled)]]></string>
 	<string name="_adm_stg_cpt_option_sys_security_impact_threshold_log"><![CDATA[Total security impact threshold to send report]]></string>
@@ -1673,12 +1611,6 @@ Please click "Continue" below to navigate to the home page of the site.]]></stri
 	<string name="_adm_stg_cpt_option_sys_storage_s3_bucket"><![CDATA[AWS Bucket]]></string>
 	<string name="_adm_stg_cpt_option_sys_storage_s3_domain"><![CDATA[AWS Custom domain (require custom DNS setup)]]></string>
 
-	<!-- Settings: Tags -->
-	<string name="_adm_stg_cpt_category_tags"><![CDATA[Tags]]></string>
-	<string name="_adm_stg_cpt_option_tags_non_parsable"><![CDATA[Non-parsable tags (type all tags in lower case, delimit them by comma)]]></string>
-	<string name="_adm_stg_cpt_option_tags_perpage_browse"><![CDATA[Number of tags to show on browse pages]]></string>
-	<string name="_adm_stg_cpt_option_tags_show_limit"><![CDATA[Number of tags to show limit]]></string>
-
 	<string name="_adm_stg_err_save"><![CDATA[Cannot save settings]]></string>
 	<string name="_adm_stg_scs_save"><![CDATA[Settings were successfully saved]]></string>
 
@@ -2516,9 +2448,7 @@ Without doing that you won't be submitted to our database.</p>
 	<string name="_adm_txt_modules_recompile_profile_fields"><![CDATA[Recompiling profile fields:]]></string>
 	<string name="_adm_txt_modules_recompile_comments"><![CDATA[Recompiling comments:]]></string>
 	<string name="_adm_txt_modules_recompile_member_actions"><![CDATA[Recompiling member actions:]]></string>
-	<string name="_adm_txt_modules_recompile_tags"><![CDATA[Recompiling tags:]]></string>
 	<string name="_adm_txt_modules_recompile_votes"><![CDATA[Recompiling votes:]]></string>
-	<string name="_adm_txt_modules_recompile_categories"><![CDATA[Recompiling categories:]]></string>
 	<string name="_adm_txt_modules_recompile_search"><![CDATA[Recompiling search:]]></string>
 	<string name="_adm_txt_modules_recompile_browse"><![CDATA[Recompiling browse:]]></string>
 	<string name="_adm_txt_modules_recompile_injections"><![CDATA[Recompiling injections:]]></string>
@@ -2627,8 +2557,6 @@ Without doing that you won't be submitted to our database.</p>
 	<string name="_adm_btn_mp_confirm"><![CDATA[Confirm Email]]></string>
 	<string name="_adm_btn_mp_qlinks"><![CDATA[Quick Links]]></string>
 	<string name="_adm_btn_mp_browse"><![CDATA[Browse]]></string>
-	<string name="_adm_btn_mp_calendar"><![CDATA[Calendar]]></string>
-	<string name="_adm_btn_mp_tags"><![CDATA[Tags]]></string>
 	<string name="_adm_btn_mp_search"><![CDATA[Search]]></string>
 	<string name="_adm_btn_mp_simple"><![CDATA[Simple]]></string>
 	<string name="_adm_btn_mp_extended"><![CDATA[Extended]]></string>
@@ -3031,39 +2959,6 @@ Without doing that you won't be submitted to our database.</p>
 	<string name="_sys_btn_fans_remove"><![CDATA[Remove]]></string>
 	<string name="_sys_btn_fans_add_to_admins"><![CDATA[Add To Admins]]></string>
 	<string name="_sys_btn_fans_move_admins_to_fans"><![CDATA[Demote Admins]]></string>
-	<string name="_Categories"><![CDATA[Categories]]></string>
-	<string name="_categ_all"><![CDATA[All Categories]]></string>
-	<string name="_categ_common"><![CDATA[Common Categories]]></string>
-	<string name="_categ_users"><![CDATA[User Categories]]></string>
-	<string name="_categ_calendar"><![CDATA[Calendar]]></string>
-	<string name="_categ_search"><![CDATA[Search]]></string>
-	<string name="_categ_caption_all"><![CDATA[All Categories]]></string>
-	<string name="_categ_order_order_by"><![CDATA[Order by: ]]></string>
-	<string name="_categ_caption_common"><![CDATA[Common Categories]]></string>
-	<string name="_categ_caption_users"><![CDATA[User Categories]]></string>
-	<string name="_categ_caption_calendar"><![CDATA[Calendar]]></string>
-	<string name="_categ_caption_day"><![CDATA[Empty]]></string>
-	<string name="_categ_by_day"><![CDATA[Categories By Day: ]]></string>
-	<string name="_categ_caption_search_form"><![CDATA[Search Form]]></string>
-	<string name="_categ_caption_founded"><![CDATA[Search Results]]></string>
-	<string name="_categ_caption_keyword"><![CDATA[Keyword]]></string>
-	<string name="_categ_single"><![CDATA[Category]]></string>
-	<string name="_categ_plural"><![CDATA[Categories]]></string>
-	<string name="_categ_btn_delete"><![CDATA[Delete]]></string>
-	<string name="_categ_btn_disable"><![CDATA[Disable]]></string>
-	<string name="_categ_btn_activate"><![CDATA[Activate]]></string>
-	<string name="_categ_order_none"><![CDATA[None]]></string>
-	<string name="_categ_order_popular"><![CDATA[Popular]]></string>
-	<string name="_categ_order_recent"><![CDATA[Recent]]></string>
-	<string name="_categ_err_keyword"><![CDATA[Please specify keyword from 1 to 100 characters]]></string>
-	<string name="_categ_admin_pending"><![CDATA[Pending Approval]]></string>
-	<string name="_categ_admin_settings"><![CDATA[Settings]]></string>
-	<string name="_categ_modules"><![CDATA[Modules]]></string>
-	<string name="_categ_form_name"><![CDATA[Name]]></string>
-	<string name="_categ_form_add"><![CDATA[Add Category]]></string>
-	<string name="_categ_form_field_name_err"><![CDATA[Please specify name from 3 to 100 characters]]></string>
-	<string name="_categ_form_type"><![CDATA[Type]]></string>
-	<string name="_categ_exist_err"><![CDATA[Category named '%s' already exists]]></string>
 	<string name="_FieldError_City_Mandatory"><![CDATA[You must specify your city]]></string>
 	<string name="_FieldError_Country_Mandatory"><![CDATA[You must specify your country]]></string>
 	<string name="_FieldError_zip_Mandatory"><![CDATA[You must specify your ZIP code]]></string>

+ 0 - 6
modules/boonex/sites/install/config.php

@@ -75,12 +75,6 @@ $aConfig = array(
      */
     'language_category' => 'Sites',
 
-    /**
-     * Permissions Section
-     */
-    'install_permissions' => array(),
-    'uninstall_permissions' => array(),
-
     /**
      * Introduction and Conclusion Section.
      */

+ 1 - 1
modules/boonex/sites/install/sql/enable.sql

@@ -51,7 +51,7 @@ INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `tit
 
 SET @iAddMenuOrder = (SELECT `order` FROM `sys_menu_items` WHERE `set_name` = 'sys_add_content_links' AND `active` = 1 ORDER BY `order` DESC LIMIT 1);
 INSERT INTO `sys_menu_items` (`set_name`, `module`, `name`, `title_system`, `title`, `link`, `onclick`, `target`, `icon`, `submenu_object`, `visible_for_levels`, `active`, `copyable`, `order`) VALUES 
-('sys_add_content_links', 'bx_sites', 'site-create', '_bx_sites_menu_item_title_system_create_site', '_bx_sites_menu_item_title_create_site', 'page.php?i=site-create', '', '', '', '', 226, 1, 1, IFNULL(@iAddMenuOrder, 0) + 1);
+('sys_add_content_links', 'bx_sites', 'site-create', '_bx_sites_menu_item_title_system_create_site', '_bx_sites_menu_item_title_create_site', 'page.php?i=site-create', '', '', 'globe col-green1', '', 226, 1, 1, IFNULL(@iAddMenuOrder, 0) + 1);
 
 INSERT INTO `sys_objects_menu`(`object`, `title`, `set_name`, `module`, `template_id`, `deletable`, `active`, `override_class_name`, `override_class_file`) VALUES 
 ('bx_sites_view', '_bx_sites_menu_title_view_site', 'bx_sites_view', 'bx_sites', 6, 0, 1, 'BxSitesMenuViewSite', 'modules/boonex/sites/classes/BxSitesMenuViewSite.php');

+ 0 - 2
modules/boonex/sites/updates/update_100_200/install/config.php

@@ -42,9 +42,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_search' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,

+ 0 - 14
modules/boonex/smtpmailer/install/config.php

@@ -49,9 +49,7 @@ $aConfig = array(
 		'recompile_profile_fields' => 0,
 		'recompile_comments' => 0,
 		'recompile_member_actions' => 0,
-		'recompile_tags' => 0,
 		'recompile_votes' => 0,
-		'recompile_categories' => 0,
 		'recompile_search' => 0,
 		'recompile_injections' => 0,
 		'recompile_permalinks' => 0,
@@ -71,9 +69,7 @@ $aConfig = array(
 		'recompile_profile_fields' => 0,
 		'recompile_comments' => 0,
 		'recompile_member_actions' => 0,
-		'recompile_tags' => 0,
 		'recompile_votes' => 0,
-		'recompile_categories' => 0,
 		'recompile_search' => 0,
 		'recompile_injections' => 0,
 		'recompile_permalinks' => 0,
@@ -91,9 +87,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
         'recompile_alerts' => 0,
@@ -109,9 +103,7 @@ $aConfig = array(
         'recompile_profile_fields' => 0,
         'recompile_comments' => 0,
         'recompile_member_actions' => 0,
-        'recompile_tags' => 0,
         'recompile_votes' => 0,
-        'recompile_categories' => 0,
         'recompile_injections' => 0,
         'recompile_permalinks' => 0,
         'recompile_alerts' => 0,
@@ -129,12 +121,6 @@ $aConfig = array(
 	 */
 	'language_category' => 'SMTP Mailer',
 
-	/**
-	 * Permissions Section
-	 */
-    'install_permissions' => array(),
-    'uninstall_permissions' => array(),
-
 	/**
 	 * Introduction and Conclusion Section.
 	 */

+ 6 - 4
modules/boonex/uni/data/template/studio/scripts/BxTemplStudioFunctions.php

@@ -11,9 +11,11 @@ defined('BX_DOL') or die('hack attempt');
 
 bx_import('BxBaseStudioFunctions');
 
-class BxTemplStudioFunctions extends BxBaseStudioFunctions { 
-    function BxTemplStudioFunctions() {
-        parent::BxBaseStudioFunctions();
+class BxTemplStudioFunctions extends BxBaseStudioFunctions 
+{
+    function __construct() 
+    {
+        parent::__construct();
     }
 }
-/** @} */
+/** @} */

+ 0 - 19
modules/boonex/uni/data/template/system/scripts/BxTemplCalendar.php

@@ -1,19 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-bx_import ('BxBaseCalendar');
-
-/**
- * @see BxDolCalendar
- */
-class BxTemplCalendar extends BxBaseCalendar {
-    function BxTemplCalendar($iYear, $iMonth)    {
-        parent::BxBaseCalendar($iYear, $iMonth);
-    }
-}
-

+ 0 - 16
modules/boonex/uni/data/template/system/scripts/BxTemplCategories.php

@@ -1,16 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-bx_import('BxBaseCategories');
-
-class BxTemplCategories extends BxBaseCategories {
-    function BxTemplCategories() {
-        parent::BxBaseCategories();
-    }
-}
-

+ 0 - 18
modules/boonex/uni/data/template/system/scripts/BxTemplCategoriesModule.php

@@ -1,18 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-// TODO: reconsider almost all functionality in this file, according to new concept it should NOT be separate page with all categories, every module has its own page with tags
-
-bx_import('BxBaseCategoriesModule');
-
-class BxTemplCategoriesModule extends BxBaseCategoriesModule {
-    function BxTemplCategoriesModule($aParam, $sTitle, $sUrl) {
-        parent::BxBaseCategoriesModule($aParam, $sTitle, $sUrl);
-    }
-}
-

+ 11 - 10
modules/boonex/uni/data/template/system/scripts/BxTemplFunctions.php

@@ -1,19 +1,20 @@
-<?php
+<?php defined('BX_DOL') or die('hack attempt');
 /**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
+ * Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
+ * CC-BY License - http://creativecommons.org/licenses/by/3.0/
+ *
+ * @defgroup    DolphinCore Dolphin Core
+ * @{
  */
-defined('BX_DOL') or die('hack attempt');
 
 bx_import('BxBaseFunctions');
 
-class BxTemplFunctions extends BxBaseFunctions {
-    /**
-     * class constructor
-     */
-    function __construct($oTemplate = null) {
+class BxTemplFunctions extends BxBaseFunctions 
+{
+    function __construct($oTemplate = null)
+    {
         parent::__construct($oTemplate);
     }
 }
 
+/** @} */

+ 0 - 16
modules/boonex/uni/data/template/system/scripts/BxTemplTags.php

@@ -1,16 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-bx_import('BxBaseTags');
-
-class BxTemplTags extends BxBaseTags {
-    function BxTemplTags () {
-        parent::BxBaseTags();
-    }
-}
-

+ 0 - 17
modules/boonex/uni/data/template/system/scripts/BxTemplTagsModule.php

@@ -1,17 +0,0 @@
-<?php
-/**
- * @package     Dolphin Core
- * @copyright   Copyright (c) BoonEx Pty Limited - http://www.boonex.com/
- * @license     CC-BY - http://creativecommons.org/licenses/by/3.0/
- */
-defined('BX_DOL') or die('hack attempt');
-
-// TODO: reconsider almost all functionality in this file, according to new concept it should NOT be separate page with all tags, every module has its own page with tags
-
-bx_import('BxBaseTagsModule');
-
-class BxTemplTagsModule extends BxBaseTagsModule {
-    function BxTemplTagsModule($aParam, $sTitle, $sUrl) {
-        parent::BxBaseTagsModule($aParam, $sTitle, $sUrl);
-    }
-}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/jquery.tinymce.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/ar.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/be.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/bg.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/ca.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/cn.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/cs.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/cy.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/da.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/de.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/el.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/en.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/es.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/et.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/eu.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/fa.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/fi.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/fr.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/gl.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/he.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/hu.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/id.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/it.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/ja.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/km.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/ko.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/lt.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/lv.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/mk.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/nb.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/nl.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/no.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/pl.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/pt.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/ro.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/ru.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/sk.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/sl.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/sq.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/sv.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/tr.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/uk.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
plugins/tiny_mce/langs/zh.js


+ 0 - 5
plugins/tiny_mce/plugins/advhr/css/advhr.css

@@ -1,5 +0,0 @@
-input.radio {border:1px none #000; background:transparent; vertical-align:middle;}
-.panel_wrapper div.current {height:80px;}
-#width {width:50px; vertical-align:middle;}
-#width2 {width:50px; vertical-align:middle;}
-#size {width:100px;}

+ 0 - 1
plugins/tiny_mce/plugins/advhr/editor_plugin.js

@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.AdvancedHRPlugin",{init:function(a,b){a.addCommand("mceAdvancedHr",function(){a.windowManager.open({file:b+"/rule.htm",width:250+parseInt(a.getLang("advhr.delta_width",0)),height:160+parseInt(a.getLang("advhr.delta_height",0)),inline:1},{plugin_url:b})});a.addButton("advhr",{title:"advhr.advhr_desc",cmd:"mceAdvancedHr"});a.onNodeChange.add(function(d,c,e){c.setActive("advhr",e.nodeName=="HR")});a.onClick.add(function(c,d){d=d.target;if(d.nodeName==="HR"){c.selection.select(d)}})},getInfo:function(){return{longname:"Advanced HR",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("advhr",tinymce.plugins.AdvancedHRPlugin)})();

+ 0 - 57
plugins/tiny_mce/plugins/advhr/editor_plugin_src.js

@@ -1,57 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
-	tinymce.create('tinymce.plugins.AdvancedHRPlugin', {
-		init : function(ed, url) {
-			// Register commands
-			ed.addCommand('mceAdvancedHr', function() {
-				ed.windowManager.open({
-					file : url + '/rule.htm',
-					width : 250 + parseInt(ed.getLang('advhr.delta_width', 0)),
-					height : 160 + parseInt(ed.getLang('advhr.delta_height', 0)),
-					inline : 1
-				}, {
-					plugin_url : url
-				});
-			});
-
-			// Register buttons
-			ed.addButton('advhr', {
-				title : 'advhr.advhr_desc',
-				cmd : 'mceAdvancedHr'
-			});
-
-			ed.onNodeChange.add(function(ed, cm, n) {
-				cm.setActive('advhr', n.nodeName == 'HR');
-			});
-
-			ed.onClick.add(function(ed, e) {
-				e = e.target;
-
-				if (e.nodeName === 'HR')
-					ed.selection.select(e);
-			});
-		},
-
-		getInfo : function() {
-			return {
-				longname : 'Advanced HR',
-				author : 'Moxiecode Systems AB',
-				authorurl : 'http://tinymce.moxiecode.com',
-				infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',
-				version : tinymce.majorVersion + "." + tinymce.minorVersion
-			};
-		}
-	});
-
-	// Register plugin
-	tinymce.PluginManager.add('advhr', tinymce.plugins.AdvancedHRPlugin);
-})();

+ 0 - 43
plugins/tiny_mce/plugins/advhr/js/rule.js

@@ -1,43 +0,0 @@
-var AdvHRDialog = {
-	init : function(ed) {
-		var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w;
-
-		w = dom.getAttrib(n, 'width');
-		f.width.value = w ? parseInt(w) : (dom.getStyle('width') || '');
-		f.size.value = dom.getAttrib(n, 'size') || parseInt(dom.getStyle('height')) || '';
-		f.noshade.checked = !!dom.getAttrib(n, 'noshade') || !!dom.getStyle('border-width');
-		selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px');
-	},
-
-	update : function() {
-		var ed = tinyMCEPopup.editor, h, f = document.forms[0], st = '';
-
-		h = '<hr';
-
-		if (f.size.value) {
-			h += ' size="' + f.size.value + '"';
-			st += ' height:' + f.size.value + 'px;';
-		}
-
-		if (f.width.value) {
-			h += ' width="' + f.width.value + (f.width2.value == '%' ? '%' : '') + '"';
-			st += ' width:' + f.width.value + (f.width2.value == '%' ? '%' : 'px') + ';';
-		}
-
-		if (f.noshade.checked) {
-			h += ' noshade="noshade"';
-			st += ' border-width: 1px; border-style: solid; border-color: #CCCCCC; color: #ffffff;';
-		}
-
-		if (ed.settings.inline_styles)
-			h += ' style="' + tinymce.trim(st) + '"';
-
-		h += ' />';
-
-		ed.execCommand("mceInsertContent", false, h);
-		tinyMCEPopup.close();
-	}
-};
-
-tinyMCEPopup.requireLangPack();
-tinyMCEPopup.onInit.add(AdvHRDialog.init, AdvHRDialog);

+ 0 - 1
plugins/tiny_mce/plugins/advhr/langs/ar_dlg.js

@@ -1 +0,0 @@
-tinyMCE.addI18n('ar.advhr_dlg',{size:"\u0627\u0644\u0627\u0631\u062a\u0641\u0627\u0639",noshade:"\u0644\u0627 \u0638\u0644",width:"\u0627\u0644\u0639\u0631\u0636",normal:"\u0627\u0644\u0637\u0628\u064a\u0639\u064a",widthunits:"\u0627\u0644\u0648\u062d\u062f\u0627\u062a"});

+ 0 - 1
plugins/tiny_mce/plugins/advhr/langs/be_dlg.js

@@ -1 +0,0 @@
-tinyMCE.addI18n('be.advhr_dlg',{size:"\u0412\u044b\u0448\u044b\u043d\u044f",noshade:"\u0411\u0435\u0437 \u0446\u0435\u043d\u044e",width:"\u0428\u044b\u0440\u044b\u043d\u044f",normal:"\u0417\u0432\u044b\u0447\u0430\u0439\u043d\u0430\u044f",widthunits:"\u0410\u0434\u0437\u0456\u043d\u043a\u0456 \u0432\u044b\u043c\u044f\u0440\u044d\u043d\u043d\u044f"});

+ 0 - 1
plugins/tiny_mce/plugins/advhr/langs/bg_dlg.js

@@ -1 +0,0 @@
-tinyMCE.addI18n('bg.advhr_dlg',{size:"\u0412\u0438\u0441\u043e\u0447\u0438\u043d\u0430",noshade:"\u0411\u0435\u0437 \u0441\u044f\u043d\u043a\u0430",width:"\u0428\u0438\u0440\u0438\u043d\u0430",normal:"\u041d\u043e\u0440\u043c\u0430\u043b\u043d\u0430",widthunits:"\u0415\u0434\u0438\u043d\u0438\u0446\u0438"});

+ 0 - 1
plugins/tiny_mce/plugins/advhr/langs/ca_dlg.js

@@ -1 +0,0 @@
-tinyMCE.addI18n('ca.advhr_dlg',{size:"Al\u00e7ada",noshade:"Sense sombra",width:"Amplada",normal:"Normal",widthunits:"Unitats"});

+ 0 - 1
plugins/tiny_mce/plugins/advhr/langs/cn_dlg.js

@@ -1 +0,0 @@
-tinyMCE.addI18n('cn.advhr_dlg',{size:"\u9ad8\u5ea6",noshade:"\u65e0\u9634\u5f71",width:"\u5bbd\u5ea6",normal:"\u5e38\u89c4",widthunits:"\u5355\u4f4d"});

+ 0 - 1
plugins/tiny_mce/plugins/advhr/langs/cs_dlg.js

@@ -1 +0,0 @@
-tinyMCE.addI18n('cs.advhr_dlg',{size:"V\u00fd\u0161ka",noshade:"Bez st\u00ednu",width:"\u0160\u00ed\u0159ka",normal:"Norm\u00e1ln\u00ed",widthunits:"Jednotky"});

+ 0 - 1
plugins/tiny_mce/plugins/advhr/langs/cy_dlg.js

@@ -1 +0,0 @@
-tinyMCE.addI18n('cy.advhr_dlg',{size:"Uchder",noshade:"Dim cysgod",width:"Lled",normal:"Normal",widthunits:"Unedau"});

+ 0 - 1
plugins/tiny_mce/plugins/advhr/langs/da_dlg.js

@@ -1 +0,0 @@
-tinyMCE.addI18n('da.advhr_dlg',{size:"H\u00f8jde",noshade:"Ingen skygge",width:"Bredde",normal:"Normal",widthunits:"Enheder"});

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.