예제 #1
0
function mediashare_mediahandlerapi_getHandlerInfo($args)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    $mimeType = strtolower($args['mimeType']);
    $filename = strtolower($args['filename']);
    if (!empty($filename)) {
        $dotPos = strpos($filename, '.');
        if ($dotPos === false) {
            $fileType = '';
        } else {
            $fileType = substr($filename, $dotPos + 1);
        }
    } else {
        $fileType = '';
    }
    $pntable = pnDBGetTables();
    $handlersTable = $pntable['mediashare_mediahandlers'];
    $handlersColumn = $pntable['mediashare_mediahandlers_column'];
    $sql = "SELECT DISTINCT {$handlersColumn['handler']},\r\n                            {$handlersColumn['foundMimeType']},\r\n                            {$handlersColumn['foundFileType']}\r\n                       FROM {$handlersTable}\r\n                      WHERE {$handlersColumn['mimeType']} = '" . DataUtil::formatForStore($mimeType) . "'\r\n                         OR {$handlersColumn['fileType']} = '" . DataUtil::formatForStore($fileType) . "'\r\n\t\t\t\t\t\t\t\t\t\t\t\tAND {$handlersColumn['active']} =\t1 ";
    $result = DBUtil::executeSQL($sql);
    $errormsg = __f('Unable to locate media handler for \'%1$s\' (%2$s)', array($filename, $mimeType), $dom);
    if ($result === false) {
        return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('mediahandlerapi.getHandlerInfo', $errormsg), $dom));
    }
    if (!$result) {
        return LogUtil::registerError($errormsg);
    }
    $colArray = array('handlerName', 'mimeType', 'fileType');
    $handler = DBUtil::marshallObjects($result, $colArray);
    return $handler[0];
}
예제 #2
0
 /**
  * Performs the actual search processing.
  */
 public function search($args)
 {
     ModUtil::dbInfoLoad('Search');
     $dbtables = DBUtil::getTables();
     $pageTable = $dbtables['content_page'];
     $pageColumn = $dbtables['content_page_column'];
     $contentTable = $dbtables['content_content'];
     $contentColumn = $dbtables['content_content_column'];
     $contentSearchTable = $dbtables['content_searchable'];
     $contentSearchColumn = $dbtables['content_searchable_column'];
     $translatedPageTable = $dbtables['content_translatedpage'];
     $translatedPageColumn = $dbtables['content_translatedpage_column'];
     $sessionId = session_id();
     // check whether we need to search also in translated content
     $multilingual = System::getVar('multilingual');
     $currentLanguage = ZLanguage::getLanguageCode();
     $searchWhereClauses = array();
     $searchWhereClauses[] = '(' . Search_Api_User::construct_where($args, array($pageColumn['title']), $pageColumn['language']) . ')';
     if ($multilingual) {
         $searchWhereClauses[] = '(' . Search_Api_User::construct_where($args, array($translatedPageColumn['title']), $translatedPageColumn['language']) . ')';
     }
     $searchWhereClauses[] = '(' . Search_Api_User::construct_where($args, array($contentSearchColumn['text']), $contentSearchColumn['language']) . ')';
     // add default filters
     $whereClauses = array();
     $whereClauses[] = '(' . implode(' OR ', $searchWhereClauses) . ')';
     $whereClauses[] = $pageColumn['active'] . ' = 1';
     $whereClauses[] = "({$pageColumn['activeFrom']} IS NULL OR {$pageColumn['activeFrom']} <= NOW())";
     $whereClauses[] = "({$pageColumn['activeTo']} IS NULL OR {$pageColumn['activeTo']} >= NOW())";
     $whereClauses[] = $contentColumn['active'] . ' = 1';
     $whereClauses[] = $contentColumn['visiblefor'] . (UserUtil::isLoggedIn() ? ' <= 1' : ' >= 1');
     $titleFields = $pageColumn['title'];
     $additionalJoins = '';
     if ($multilingual) {
         // if searching in non-default languages, we need the translated title
         $titleFields .= ', ' . $translatedPageColumn['title'] . ' AS translatedTitle';
         // join also the translation table if required
         $additionalJoins = "LEFT OUTER JOIN {$translatedPageTable} ON {$translatedPageColumn['pageId']} = {$pageColumn['id']} AND {$translatedPageColumn['language']} = '{$currentLanguage}'";
         // prevent content snippets in other languages
         $whereClauses[] = $contentSearchColumn['language'] . ' = \'' . $currentLanguage . '\'';
     }
     $where = implode(' AND ', $whereClauses);
     $sql = "\n            SELECT DISTINCT {$titleFields},\n            {$contentSearchColumn['text']} AS description,\n            {$pageColumn['id']} AS pageId,\n            {$pageColumn['cr_date']} AS createdDate\n            FROM {$pageTable}\n            JOIN {$contentTable}\n            ON {$contentColumn['pageId']} = {$pageColumn['id']}\n            JOIN {$contentSearchTable}\n            ON {$contentSearchColumn['contentId']} = {$contentColumn['id']}\n            {$additionalJoins}\n            WHERE {$where}\n        ";
     $result = DBUtil::executeSQL($sql);
     if (!$result) {
         return LogUtil::registerError($this->__('Error! Could not load items.'));
     }
     $objectArray = DBUtil::marshallObjects($result);
     foreach ($objectArray as $object) {
         $pageTitle = $object['page_title'];
         if ($object['translatedTitle'] != '') {
             $pageTitle = $object['translatedTitle'];
         }
         $searchItemData = array('title' => $pageTitle, 'text' => $object['description'], 'extra' => $object['pageId'], 'created' => $object['createdDate'], 'module' => 'Content', 'session' => $sessionId);
         if (!\DBUtil::insertObject($searchItemData, 'search_result')) {
             return \LogUtil::registerError($this->__('Error! Could not save the search results.'));
         }
     }
     return true;
 }
예제 #3
0
 public function getContent()
 {
     ModUtil::dbInfoLoad('Content');
     $dbtables = DBUtil::getTables();
     $query = "SELECT " . $dbtables['content_page_column']['id'] . " , " . $dbtables['content_page_column']['title'] . ", " . $dbtables['content_page_column']['views'] . " \n    \tFROM " . $dbtables['content_page'] . "\n\tWHERE " . $dbtables['content_page_column']['views'] . " >= 0 AND " . $dbtables['content_page_column']['active'] . " >= 0 ORDER BY " . $dbtables['content_page_column']['views'] . " DESC LIMIT 25";
     $dbresult = DBUtil::executeSQL($query);
     $views = DBUtil::marshallObjects($dbresult);
     $view = Zikula_View::getInstance('Content');
     $view->assign('views', $views);
     return $view->fetch('content_widget_top25.tpl');
 }
예제 #4
0
function addCustomFieldsToTableDefinition(&$columns)
{
    // get the global db prefix
    $prefix = System::getVar('prefix');
    $prefix = $prefix ? $prefix . '_' : '';
    $tablecustomfields = $prefix . "addressbook_customfields";
    $connection = Doctrine_Manager::getInstance()->getCurrentConnection();
    if ($connection->import->tableExists($tablecustomfields)) {
        $sql = "SELECT cus_id FROM " . $tablecustomfields . " WHERE cus_id > 4 ORDER BY cus_id ASC";
        $result = DBUtil::executeSQL($sql, -1, -1, false, true);
        if ($result) {
            $customfields = DBUtil::marshallObjects($result, array('id'), true);
            foreach ($customfields as $cus) {
                $col_def = 'custom_' . $cus['id'];
                $columns[$col_def] = 'adr_' . $col_def;
            }
        }
    }
    return;
}
예제 #5
0
 protected function createRecords($pid = -1, $lvl = 0)
 {
     $sql = "SELECT * FROM " . $this->tablePrefix . "_ce_contentitems WHERE mc_parent_id={$pid} ORDER BY mc_id";
     $pid = $pid == -1 ? 0 : $pid;
     $this->recordLevels[$pid] = $lvl;
     $result = DBUtil::executeSQL($sql);
     $pages = DBUtil::marshallObjects($result);
     $fieldmap = $this->getFieldMap();
     $i = 0;
     foreach ($pages as $page) {
         // correct values to Content appropriate types
         $page['mc_parent_id'] = $page['mc_parent_id'] == -1 ? 0 : $page['mc_parent_id'];
         $page['mc_status'] = $page['mc_status'] - 1;
         // remap fieldnames
         $currentRecordCount = $this->recordCount;
         foreach ($fieldmap as $newfield => $oldfield) {
             $this->records[$currentRecordCount][$newfield] = $page[$oldfield];
         }
         $this->records[$currentRecordCount]['language'] = ZLanguage::getLanguageCode();
         $this->records[$currentRecordCount]['layouttype'] = 'Column1';
         $this->records[$currentRecordCount]['position'] = $i;
         $this->records[$currentRecordCount]['level'] = $this->recordLevels[$page['mc_parent_id']];
         $this->records[$currentRecordCount]['setleft'] = ++$this->structureIndex;
         //0; //++$left;
         // create contenttype items
         $this->records[$currentRecordCount]['useheader'] = true;
         // this could loop and create multiple contentitems if needed
         $this->records[$currentRecordCount]['contentitems'] = array(0 => array('contenttype' => 'Html', 'areaIndex' => '1', 'inputType' => 'text', 'data' => $page['mc_text']));
         $this->recordCount++;
         $i++;
         // position index
         // create recursive records for all child pages
         $this->createRecords($page['mc_id'], $lvl + 1);
         $this->records[$currentRecordCount]['setright'] = ++$this->structureIndex;
         //1; //++$left;
     }
     //return count($pages);
 }
예제 #6
0
 public function getContent()
 {
     $dbtables = DBUtil::getTables();
     $query = "SELECT " . $dbtables['users_column']['user_regdate'] . " , DATE_FORMAT( " . $dbtables['users_column']['user_regdate'] . ", '%Y-%m-%d' ) AS dateval, COUNT( DATE_FORMAT( " . $dbtables['users_column']['user_regdate'] . ", '%Y-%m-%d' ) ) AS datetotal \n    \tFROM " . $dbtables['users'] . "\n\tWHERE " . $dbtables['users_column']['user_regdate'] . " >= ( CURDATE( ) - INTERVAL 1 MONTH ) GROUP BY dateval";
     $dbresult = DBUtil::executeSQL($query);
     $results = DBUtil::marshallObjects($dbresult);
     foreach ($results as $key => $result) {
         $registrations[$result['dateval']] = $result['datetotal'];
     }
     $date = new DateTime();
     $date->sub(new DateInterval('P30D'));
     for ($i = 0; $i < 30; $i++) {
         $date->add(new DateInterval('P1D'));
         if (isset($registrations[$date->format('Y-m-d')])) {
             $days[$date->format('Y-m-d')] = $registrations[$date->format('Y-m-d')];
         } else {
             $days[$date->format('Y-m-d')] = 0;
         }
     }
     $view = Zikula_View::getInstance('Users');
     $view->assign('days', $days);
     return $view->fetch('users_widget_month.tpl');
     return $content;
 }
예제 #7
0
파일: User.php 프로젝트: projectesIF/Sirius
    /**
     * Get all comments attached to a module
     *
     * @author Mark West
     * @return mixed array of items if successful, false otherwise
     */
    public function getallbymodule($args = array())
    {
        // Security check
        if (!SecurityUtil::checkPermission('EZComments::', '::', ACCESS_OVERVIEW)) {
            return false;
        }

        // check for a valid module
        if (!isset($args['mod']) || !is_string($args['mod'])) {
            return false;
        }
        $mod = DataUtil::formatForOS($args['mod']);

        // Get database setup
        $tables  = DBUtil::getTables();
        $eztable = $tables['EZComments'];
        $columns = $tables['EZComments_column'];

        $sql = "  SELECT $columns[objectid],
                         $columns[url],
                         count(*)
                    FROM $eztable
                   WHERE $columns[modname] = '$mod'
                GROUP BY $columns[objectid]
                ORDER BY $columns[objectid]";

        $result = DBUtil::executeSQL($sql);

        // Check for an error with the database code, and if so set an appropriate
        // error message and return
        if ($result == false) {
            return LogUtil::registerError($this->__('Error! Could not load items.'));
        }

        // Put items into result array.  Note that each item is checked
        // individually to ensure that the user is allowed access to it before it
        // is added to the results array
        $items = DBUtil::marshallObjects($result, array('objectid', 'url', 'count'));

        // Return the items
        return $items;

    }
예제 #8
0
 public function getPrimaryKey($tableName)
 {
     $sql = "show index from " .$tableName." where Key_name = 'PRIMARY'";
     $def =DBUtil::marshallObjects(DBUtil::executeSQL($sql));
     return $def[0]['Column_name'];         
 }
예제 #9
0
 public function getTranslations($args)
 {
     $pageId = (int) $args['pageId'];
     $table = DBUtil::getTables();
     $translatedTable = $table['content_translatedcontent'];
     $translatedColumn = $table['content_translatedcontent_column'];
     $contentTable = $table['content_content'];
     $contentColumn = $table['content_content_column'];
     $cols = DBUtil::_getAllColumns('content_translatedcontent');
     $ca = DBUtil::getColumnsArray('content_translatedcontent');
     $sql = "\n            SELECT {$cols}\n            FROM {$translatedTable} t\n            LEFT JOIN {$contentTable} c\n            ON c.{$contentColumn['id']} = t.{$translatedColumn['contentId']}\n            WHERE c.{$contentColumn['pageId']} = {$pageId}";
     $dbresult = DBUtil::executeSQL($sql);
     $translations = DBUtil::marshallObjects($dbresult, $ca);
     return $translations;
 }
예제 #10
0
파일: User.php 프로젝트: projectesIF/Sirius
    /**
     * Retorna un array que conté els diferents arrays necessaris per als selects del formulari de cerca general
     *
     * > L'array obtingut conté diversos subarrays que retornen la informació  per a selects de:\n
     * > destinataris, modalitats de curs, presencialitat, zones 
     *  
     * @param array $args Array amb els paràmetres de la funció
     *
     * ### Paràmetres de l'array $args:
     * integer **catId** Identificador de catàleg
     * 
     * @return array Subarrays amb selects de tria per a la cerca general
     */
    public function parametresCerca($catId) {
        if (!SecurityUtil::checkPermission('Cataleg::', '::', ACCESS_READ)) {
            return LogUtil::registerPermissionError();
        }

        // recuperem destinataris...       
        //    $destinataris[0] = '';
        $destinatarisTot = ModUtil::apiFunc('Cataleg', 'user', 'getTipus', array('tipus' => 'dest'));
        foreach ($destinatarisTot as $dest) {
            $sql = "SELECT COUNT(*) AS comptat FROM cataleg_activitats WHERE cataleg_activitats.destinataris LIKE CONCAT('%\"','" . $dest['auxId'] . "','\"%')  AND (cataleg_activitats.estat = 3 OR cataleg_activitats.estat =4)AND cataleg_activitats.priId IN (SELECT priId FROM cataleg_prioritats WHERE cataleg_prioritats.eixId IN (SELECT eixId FROM cataleg_eixos WHERE cataleg_eixos.catId = $catId))";
            $result = DBUtil::executeSQL($sql);
            $recordset = DBUtil::marshallObjects($result);
            $count = $recordset[0]['comptat'];
            if ($count > 0) {
                $cerca['pdestinataris'][$dest['auxId']] = $dest['nom'];
            }
        }
        // recuperem modalitats de curs...       
        $cerca['pmodscurs'][0] = '';
        $modscursTot = ModUtil::apiFunc('Cataleg', 'user', 'getTipus', array('tipus' => 'curs'));
        foreach ($modscursTot as $mod) {
            $sql = "SELECT COUNT(*) AS comptat FROM cataleg_activitats WHERE cataleg_activitats.curs =" . $mod['auxId'] . " AND (cataleg_activitats.estat = 3 OR cataleg_activitats.estat =4)AND cataleg_activitats.priId IN (SELECT priId FROM cataleg_prioritats WHERE cataleg_prioritats.eixId IN (SELECT eixId FROM cataleg_eixos WHERE cataleg_eixos.catId = $catId))";
            $result = DBUtil::executeSQL($sql);
            $recordset = DBUtil::marshallObjects($result);
            $count = $recordset[0]['comptat'];
            if ($count > 0) {
                $cerca['pmodscurs'][$mod['auxId']] = $mod['nom'];
            }
        }
        // recuperem presencialitat...       
        $cerca['ppresencials'][0] = '';
        $presenTot = ModUtil::apiFunc('Cataleg', 'user', 'getTipus', array('tipus' => 'pres'));
        foreach ($presenTot as $pres) {
            $sql = "SELECT COUNT(*) AS comptat FROM cataleg_activitats WHERE cataleg_activitats.presencialitat = " . $pres['auxId'] . " AND (cataleg_activitats.estat = 3 OR cataleg_activitats.estat =4)AND cataleg_activitats.priId IN (SELECT priId FROM cataleg_prioritats WHERE cataleg_prioritats.eixId IN (SELECT eixId FROM cataleg_eixos WHERE cataleg_eixos.catId = $catId))";
            $result = DBUtil::executeSQL($sql);
            $recordset = DBUtil::marshallObjects($result);
            $count = $recordset[0]['comptat'];
            if ($count > 0) {
                $cerca['ppresencials'][$pres['auxId']] = $pres['nom'];
            }
        }
        // recuperem zones o lloc...       
        $cerca['psstt'][0] = '';
        $ssttTot = ModUtil::apiFunc('Cataleg', 'user', 'getTipus', array('tipus' => 'sstt'));
        foreach ($ssttTot as $st) {
            $sql = "SELECT COUNT(*) AS comptat FROM cataleg_activitatsZona INNER JOIN cataleg_activitats ON cataleg_activitatsZona.actId=cataleg_activitats.actId  WHERE cataleg_activitatsZona.lloc = " . $st['auxId'] . " AND cataleg_activitatsZona.qtty >0 AND (cataleg_activitats.estat = 3 OR cataleg_activitats.estat =4)AND cataleg_activitats.priId IN (SELECT priId FROM cataleg_prioritats WHERE cataleg_prioritats.eixId IN (SELECT eixId FROM cataleg_eixos WHERE cataleg_eixos.catId = $catId))";
            $result = DBUtil::executeSQL($sql);
            $recordset = DBUtil::marshallObjects($result);
            $count = $recordset[0]['comptat'];
            if ($count > 0) {
                $cerca['psstt'][$st['auxId']] = $st['nom'];
            }
        }
        return $cerca;
    }
예제 #11
0
 public function MostCommentsBlock_getall($args = array())
 {
     if (!isset($args['numitems']) || !is_numeric($args['numitems'])) {
         $args['numitems'] = -1;
     }
     // Security check
     if (!SecurityUtil::checkPermission('EZComments::', '::', ACCESS_OVERVIEW)) {
         return array();
     }
     // Get database setup
     $pntable = pnDBGetTables();
     $table = $pntable['EZComments'];
     $columns =& $pntable['EZComments_column'];
     // form where clause
     $whereclause = array();
     if (isset($args['mod'])) {
         $whereclause[] = "{$columns['modname']} = '" . DataUtil::formatForStore($args['mod']) . "'";
     }
     // create where clause
     $where = '';
     if (!empty($whereclause)) {
         $where = implode(' AND ', $whereclause) . ' and ';
     }
     $permFilter[] = array('component_left' => 'EZComments', 'component_middle' => '', 'component_right' => '', 'instance_left' => 'modname', 'instance_middle' => 'objectid', 'instance_right' => 'id', 'level' => ACCESS_READ);
     $cols = DBUtil::_getAllColumns('EZComments');
     // FIXME: don't need all
     $ca = DBUtil::getColumnsArray('EZComments');
     $ca[] = "count";
     $sql = "\n    SELECT DISTINCT\n           {$cols},\n           count(*) as count\n    FROM {$table}\n    where {$where} {$columns['status']} = 0\n    group by {$columns['modname']},{$columns['objectid']}\n    order by count desc\n    ";
     $dbresult = DBUtil::executeSQL($sql, 0, $args['numitems']);
     $items = DBUtil::marshallObjects($dbresult, $ca);
     // backwards compatibilty: modname -> mod
     foreach (array_keys($items) as $k) {
         $items[$k]['mod'] = $items[$k]['modname'];
     }
     // return the items
     return $items;
 }
예제 #12
0
파일: User.php 프로젝트: projectesIF/Sirius
    /**
     * Get all unreaded messages for all forums and all subscribers
     * @author Josep Ferràndiz Farré (jferran6@xtec.cat)
     * 
     * @param $dateTimeFrom timestamp date/time indicates starting period until now to retrieve unreaded messages 
     * @return array with messages unreaded per user, grouped by forum and topic 
     * 
     * @version 3.1.0 
     * @date 09/03/2015
     */
    public function getAllUnreadedMessages($time) {
        $dateTimeFrom = $time['dateTimeFrom'];
        $dateTimeTo   = $time['dateTimeTo'];
        $messages = array();
        $report   = array();
        
        if (!is_null($dateTimeFrom)) {
            $pntable = DBUtil::getTables();
            $f = $pntable['IWforums_definition_column'];
            $t = $pntable['IWforums_temes_column'];
            $m = $pntable['IWforums_msg_column'];
            
            // Get all the messages posted after $dateTimeFrom in subscribibles forums
            $sql  = "SELECT F.$f[fid] AS fid,  M.$m[ftid] AS ftid, M.$m[fmid] AS fmid, M.$m[titol] AS msgTitle, M.$m[usuari] AS user, M.$m[data] AS date, M.$m[llegit] AS readers, T.$t[titol] AS topic, T.$t[order], ";
            $sql .= "F.$f[nom_forum] AS forum, F.subscriptionMode, F.subscribers, F.noSubscribers, F.$f[grup] AS grup, F.$f[mod] AS moderators ";
            $sql .= "FROM `IWforums_msg` AS M, `IWforums_temes` AS T, `IWforums_definition` AS F ";        
            $sql .= "WHERE M.$m[ftid] = T.$t[ftid] AND T.$t[fid] = F.$f[fid] AND F.$f[actiu] = 1 AND M.$m[data] >= ".$dateTimeFrom." AND M.$m[data] < ".$dateTimeTo." AND F.subscriptionMode > 0 ";
            $sql .= "ORDER BY F.$f[fid], T.$t[order], M.$m[data]";
            $query = DBUtil::executeSQL($sql);
            $messages = DBUtil::marshallObjects($query);

            foreach ($messages as $key => $message) {
                // Extract forum moderators
                $moderators = explode('$$', substr($message['moderators'], 0, strlen($message['moderators']) -1));
                unset($moderators[0]);
                //Extract message readers
                $readers = explode('$$', substr($message['readers'], 0, strlen($message['readers']) -1));
                unset($readers[0]);
                // Extract grups 
                $auxGroups = explode('$$', substr($message['grup'], 0, strlen($message['grup']) -1));
                unset($auxGroups[0]);
                $groups = array();
                foreach ($auxGroups as $ag){
                    $g = explode ('|', $ag);
                    $groups[] = $g[0];
                }
                // Construct a unique list with the users that have read access to a forum 
                $members = array();
                foreach ($groups as $group){
                    // Get group members
                    $users = UserUtil::getUsersForGroup($group);
                    foreach ($users as $user){
                        // Avoid duplicated users
                        if (!in_array($user, $members)) $members[$user] = $user;
                    }
                }
                // Add moderators
                foreach ($moderators as $moderator){
                    if (!in_array($moderator, $members)) $members[$moderator] = $moderator;
                }
                // Remove readers
                foreach ($readers as $reader) {
                    if (in_array($reader, $members)) unset($members[$reader]);                        
                }
                
                switch ($message['subscriptionMode']){
                    case IWforums_Constant::COMPULSORY:
                        // Everybody in readers groups are subscribed. Moderator too
                        // Get forum groups                                                
                        $messages[$key]['receivers'] = $members;
                        break;
                    case IWforums_Constant::VOLUNTARY:
                        // Only subscribers group membership
                        $subscribers = explode('$', $message['subscribers']);
                        foreach ($subscribers as $subscriber){
                            if (in_array($subscriber, $members))  $messages[$key]['receivers'][$subscriber] = $subscriber;
                        }
                        break;
                    
                    case IWforums_Constant::OPTIONAL:
                        // Everybody in readers groups execept unsubscribers
                        $noSubscribers = explode('$', $message['noSubscribers']);
                        foreach ($noSubscribers as $noSubscriber){
                            if (in_array($noSubscriber, $members)) unset($member[$noSubscriber]);
                        }
                        $messages[$key]['receivers'] = $members;
                        break;    
                }
            }    
            
            // At this point, every message has a list of receivers
            // Let's construct an array with the associated information to send
            $information = array();
            foreach ($messages as $message){
                if (isset($message['receivers'])) {
                    foreach($message['receivers'] as $receiver){
                        $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                        $information[$receiver][$message['fid']]['nom_forum'] = $message['forum'];
                        $information[$receiver][$message['fid']]['subscriptionMode'] = $message['subscriptionMode'];
                        $information[$receiver][$message['fid']]['fid'] = $message['fid'];
                        $information[$receiver][$message['fid']]['topics'][$message['ftid']]['titol'] = $message['topic'];
                        $information[$receiver][$message['fid']]['topics'][$message['ftid']]['messages'][$message['fmid']]['title'] = $message['msgTitle'];
                        $information[$receiver][$message['fid']]['topics'][$message['ftid']]['messages'][$message['fmid']]['author'] = ModUtil::func('IWmain', 'user', 'getUserInfo', array('sv' => $sv, 'info' => 'ncc', 'uid' => $message['user']));
                        $information[$receiver][$message['fid']]['topics'][$message['ftid']]['messages'][$message['fmid']]['date'] = strtolower(DateUtil::getDatetime($message['date'], 'datetimelong', true));
                    }
                }
            }            
            foreach ($information as $key => $userReport){
                $view = Zikula_View::getInstance($this->name, false);  
                $view->assign('info', $userReport);
                $report[$key]['IWforums'] = $view->fetch('user/IWforums_user_report.tpl');
            }
        }    
        return $report;
    }
예제 #13
0
    public function exportToCsv($args){
        $optFields = $args['optFields'];        
        $d = date('_Ymd_Hi') ;
        $filename  = $args['filename'];//="")?$args['filename']:"exportUsers" .  $d. '.csv';
        $delimiter = isset($args['delimiter'])?$args['delimiter'] : ';';
        $titlerow = array();
        $groups = false;
        $titlerow[] ="uname";
        $sql = "SELECT uid, uname";
        foreach ($optFields as $key => $value) {
            if ($value) {
                if ($key != "export_groups") $sql .= ",". $key; 
                // generate CSV header line
                switch ($key) {
                    case "activated" :
                        $titlerow[] ="activated";
                        break;
                    case "email":
                        $titlerow[] ="email";
                        break;
                    case "iw_nom":
                        $titlerow[] ="firstname";
                        break;
                    case "iw_cognom1":
                        $titlerow[] ="lastname1";
                        break;
                    case "iw_cognom2":
                        $titlerow[] ="lastname2";
                        break;
                    case "iw_naixement":
                        $titlerow[] ="birthdate";
                        break;
                    case "iw_sex":
                        $titlerow[] ="gender";
                        break;
                    case "export_groups":
                        $titlerow[] ="in";
                        $groups = true;
                        break;                    
                }
            }
        }
        $sql.= " FROM users, IWusers WHERE uid = iw_uid";
        // Get users info
        $rs = DBUtil::executeSQL($sql);
        $rsm = DBUtil::marshallObjects($rs);
        // Get groups from every user
//        if ($groups) {
        foreach ($rsm as $key => $user){
            if ($groups) {
                // Get all groups
                $rsm[$key]['in'] = UserUtil::getGroupListForUser($user['uid'], "|"); 
            }
            // Remove uid field
            array_splice($rsm[$key], 0, 1);
        }
        $result = array();
        FileUtil::exportCSV($rsm, $titlerow, $delimiter, '"', $filename);
        return true; //$result;
    }
예제 #14
0
function mediashare_vfs_dbapi_getMedia($args)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    $fileref = DataUtil::formatForStore($args['fileref']);
    $pntable = pnDBGetTables();
    $mediaTable = $pntable['mediashare_media'];
    $mediaColumn = $pntable['mediashare_media_column'];
    $storageTable = $pntable['mediashare_mediastore'];
    $storageColumn = $pntable['mediashare_mediastore_column'];
    $mediadbTable = $pntable['mediashare_mediadb'];
    $mediadbColumn =& $pntable['mediashare_mediadb_column'];
    $sql = "SELECT db.{$mediadbColumn['data']},\n                   store.{$storageColumn['mimeType']},\n                   store.{$storageColumn['bytes']},\n                   media.{$mediaColumn['id']},\n                   media.{$mediaColumn['parentAlbumId']},\n                   media.{$mediaColumn['title']},\n                   media.{$mediaColumn['modifiedDate']}\n              FROM {$mediadbTable} db\n         LEFT JOIN {$storageTable} store\n                ON store.{$storageColumn['fileRef']} = db.{$mediadbColumn['fileref']}\n         LEFT JOIN {$mediaTable} media\n                ON (media.{$mediaColumn['thumbnailId']} = store.{$storageColumn['id']}\n                    OR media.{$mediaColumn['previewId']} = store.{$storageColumn['id']}\n                    OR media.{$mediaColumn['originalId']} = store.{$storageColumn['id']})\n               AND media.{$mediaColumn['title']} IS NOT NULL\n             WHERE db.{$mediadbColumn['fileref']} = '{$fileref}'";
    $result = DBUtil::executeSQL($sql);
    if ($result === false) {
        return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('vfsHandlerDB.getMedia', 'Could not retrieve the file information.'), $dom));
    }
    if (!$result) {
        return LogUtil::registerError(__('Unknown media item.', $dom));
    }
    $info = DBUtil::marshallObjects($result, array('data', 'mimeType', 'bytes', 'mediaId', 'albumId', 'title', 'modifiedDate'));
    return $info;
}
예제 #15
0
 protected function contentUpgrade_4_1_2($oldVersion)
 {
     $dbtables = DBUtil::getTables();
     $searchableTable = $dbtables['content_searchable'];
     $searchableColumn = $dbtables['content_searchable_column'];
     // add new primary key field and a language field
     $sql = 'ALTER TABLE `' . $searchableTable . '` CHANGE `search_cid` `search_cid` INT(11) NOT NULL;';
     if (!DBUtil::executeSQL($sql)) {
         return LogUtil::registerError($this->__('Error! Could not update searchable table (1).'));
     }
     $sql = 'ALTER TABLE `' . $searchableTable . '` DROP PRIMARY KEY;';
     if (!DBUtil::executeSQL($sql)) {
         return LogUtil::registerError($this->__('Error! Could not update searchable table (2).'));
     }
     $sql = 'ALTER TABLE `' . $searchableTable . '` ADD `search_sid` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST;';
     if (!DBUtil::executeSQL($sql)) {
         return LogUtil::registerError($this->__('Error! Could not update searchable table (3).'));
     }
     $sql = 'ALTER TABLE `' . $searchableTable . '` ADD `search_language` VARCHAR(10) NOT NULL AFTER `search_text`;';
     if (!DBUtil::executeSQL($sql)) {
         return LogUtil::registerError($this->__('Error! Could not update searchable table (4).'));
     }
     // update existing searchable data setting the default language code
     $defaultLanguage = System::getVar('language_i18n');
     $sql = "UPDATE `{$searchableTable}` SET `search_language` = '{$defaultLanguage}';";
     if (!DBUtil::executeSQL($sql)) {
         return LogUtil::registerError($this->__('Error! Could not update searchable table (5).'));
     }
     // check if we need to insert searchable rows for existing translations
     $multilingual = System::getVar('multilingual');
     if ($multilingual) {
         // retrieve existing translation languages
         $contentTable = $dbtables['content_content'];
         $contentColumn = $dbtables['content_content_column'];
         $translatedTable = $dbtables['content_translatedcontent'];
         $translatedColumn = $dbtables['content_translatedcontent_column'];
         $sql = "\n                SELECT DISTINCT {$translatedColumn['language']}\n                FROM {$translatedTable} t";
         $dbresult = DBUtil::executeSQL($sql);
         $languages = DBUtil::marshallObjects($dbresult);
         $cols = DBUtil::_getAllColumns('content_content');
         $ca = DBUtil::getColumnsArray('content_content');
         $ca[] = 'translated';
         // iterate translations
         foreach ($languages as $language) {
             // exclude the default language, since a page could have been created using another default language
             if ($language == $defaultLanguage) {
                 continue;
             }
             // get all translations for this language
             $sql = "\n                    SELECT {$cols}, {$translatedColumn['data']} AS translated\n                    FROM {$contentTable} c\n                    LEFT JOIN {$translatedTable} t\n                    AND t.{$translatedColumn['language']} = '{$language}'";
             $dbresult = DBUtil::executeSQL($sql);
             $content = DBUtil::marshallObjects($dbresult, $ca);
             $view = Zikula_View::getInstance('Content');
             $contentApi = new Content_Api_Content(ServiceUtil::getManager());
             for ($i = 0, $cou = count($content); $i < $cou; ++$i) {
                 $c =& $content[$i];
                 $c['data'] = empty($c['data']) ? null : unserialize($c['data']);
                 $c['translated'] = empty($c['translated']) ? null : unserialize($c['translated']);
                 // set translation as plugin content
                 if (is_array($c['translated']) && is_array($c['data'])) {
                     $c['data'] = array_merge($c['data'], $c['translated']);
                 }
                 // get access to the content plugin
                 $contentPlugin = $contentApi->getContentPlugin($c, $view);
                 // check if content is translatable
                 if (!$contentPlugin || !$contentPlugin->isTranslatable()) {
                     continue;
                 }
                 // extract searchable text
                 $text = $contentPlugin->getSearchableText();
                 // insert into searchable table
                 $searchObj = array('contentId' => $c['id'], 'text' => $text, 'language' => $language);
                 DBUtil::insertObject($searchObj, 'content_searchable', 'searchableId');
             }
         }
     }
     return true;
 }
예제 #16
0
 /**
  * convert old 'hideonindex' to 'displayonindex' by inverting the values
  * convert old 'disallowcomments' to 'allowcomments' by inverting the values
  * 
  * @return boolean
  */
 private function _invertHideAndComments()
 {
     $tables = DBUtil::getTables();
     $columns = $tables['news_column'];
     $sql = "SELECT $columns[sid], $columns[displayonindex], $columns[allowcomments] FROM {$tables['news']}";
     $result = DBUtil::executeSQL($sql);
     $objectArray = DBUtil::marshallObjects($result);
     foreach ($objectArray as $row) {
         $sid = $row['sid'];
         $doi = ($row['displayonindex']) == 0 ? 1 : 0;
         $ac = ($row['allowcomments']) == 0 ? 1 : 0;
         $sql = "UPDATE {$tables['news']} SET $columns[displayonindex]='$doi', $columns[allowcomments]='$ac' WHERE $columns[sid]=$sid";
         DBUtil::executeSQL($sql);
     }
     return true;
 }
예제 #17
0
/**
 * Searching
 */
function mediashare_userapi_search($args)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    $query = $args['query'];
    $match = $args['match'];
    $itemIndex = (int) $args['itemIndex'];
    $pageSize = (int) $args['pageSize'];
    $pntable = pnDBGetTables();
    $mediaTable = $pntable['mediashare_media'];
    $mediaColumn = $pntable['mediashare_media_column'];
    $albumsTable = $pntable['mediashare_albums'];
    $albumsColumn = $pntable['mediashare_albums_column'];
    // Split query by whitespace allowing use of quotes "..."
    $words = array();
    $count = preg_match_all('/"[^"]+"|[^" ]+/', $query, $words);
    $words = $words[0];
    for ($i = 0; $i < $count; ++$i) {
        if ($words[$i][0] == '"') {
            $words[$i] = substr($words[$i], 1, strlen($words[$i]) - 2);
        }
    }
    // Combine keywords to SQL restriction
    $restriction = array();
    foreach ($words as $word) {
        $word = DataUtil::formatForStore($word);
        $restriction[] = "  (media.{$mediaColumn['title']} LIKE '%{$word}%'\r\n                          OR media.{$mediaColumn['description']} LIKE '%{$word}%'\r\n                          OR media.{$mediaColumn['keywords']} LIKE '%{$word}%')";
    }
    $restriction = implode($match == 'AND' ? ' AND ' : ' OR ', $restriction);
    // Find accessible albums
    $accessibleAlbumSql = pnModAPIFunc('mediashare', 'user', 'getAccessibleAlbumsSql', array('access' => mediashareAccessRequirementViewSomething, 'field' => "album.{$albumsColumn['id']}"));
    if (!$accessibleAlbumSql) {
        return false;
    }
    $sql = "SELECT album.{$albumsColumn['id']},\r\n                   album.{$albumsColumn['title']},\r\n                   media.{$mediaColumn['id']},\r\n                   media.{$mediaColumn['title']}\r\n                   media.{$mediaColumn['description']}\r\n              FROM {$albumsTable} album\r\n         LEFT JOIN {$mediaTable} media\r\n                ON media.{$mediaColumn['parentAlbumId']} = album.{$albumsColumn['id']}\r\n             WHERE ({$accessibleAlbumSql}) AND {$restriction}\r\n          ORDER BY album.{$albumsColumn['title']}, media.{$mediaColumn['title']}";
    $result = DBUtil::executeSQL($sql, $itemIndex, $pageSize);
    if ($result === false) {
        return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('userapi.search', 'Could not retrieve the search results.'), $dom));
    }
    $colArray = array('albumId', 'albumTitle', 'mediaId', 'mediaTitle', 'mediaCaptionLong');
    $items = DBUtil::marshallObjects($result, $colArray);
    // select post process
    foreach (array_keys($items) as $k) {
        $items[$k]['mediaCaption'] = empty($items[$k]['mediaTitle']) ? $items[$k]['mediaCaptionLong'] : $items[$k]['mediaTitle'];
        $items[$k]['mediaCaptionLong'] = empty($items[$k]['mediaCaptionLong']) ? $items[$k]['mediaTitle'] : $items[$k]['mediaCaptionLong'];
    }
    return array('result' => $result, 'hitCount' => -1);
    // FIXME implement or deprecate the count
}
예제 #18
0
 function getAccessibleAlbumsSql($albumId, $access, $field)
 {
     // Admin can do everything
     if (SecurityUtil::checkPermission('mediashare::', '::', ACCESS_ADMIN)) {
         return '1=1';
     }
     // Forbidden read can do nothing
     if (!SecurityUtil::checkPermission('mediashare::', '::', ACCESS_READ)) {
         return '1=0';
     }
     $userId = (int) pnUserGetVar('uid');
     // Make sure groups database info is available
     pnModDBInfoLoad('Groups');
     $pntable = pnDBGetTables();
     $albumsTable = $pntable['mediashare_albums'];
     $albumsColumn = $pntable['mediashare_albums_column'];
     $accessTable = $pntable['mediashare_access'];
     $accessColumn = $pntable['mediashare_access_column'];
     $membershipTable = $pntable['group_membership'];
     $membershipColumn = $pntable['group_membership_column'];
     $parentAlbumSql = '';
     if ($albumId != null) {
         $parentAlbumSql = "{$albumsColumn['parentAlbumId']} = {$albumId} AND";
     }
     $sql = "SELECT DISTINCT {$albumsColumn['id']}\n                           FROM {$albumsTable}\n                      LEFT JOIN {$accessTable}\n                             ON {$accessColumn['albumId']} = {$albumsColumn['id']}\n                      LEFT JOIN {$membershipTable}\n                             ON {$membershipColumn['gid']} = {$accessColumn['groupId']}\n                            AND {$membershipColumn['uid']} = {$userId}\n                          WHERE {$parentAlbumSql}\n                                (\n                                  ({$accessColumn['access']} & {$access}) != 0 AND ({$membershipColumn['gid']} IS NOT NULL OR {$accessColumn['groupId']} = -1)\n                                  OR  {$albumsColumn['ownerId']} = {$userId}\n                                )";
     $result = DBUtil::executeSQL($sql);
     if ($result === false) {
         return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('accessapi.getAccessibleAlbumsSql', 'Could not retrieve the accessible albums.'), $dom));
     }
     $ids = DBUtil::marshallObjects($result, array('id'));
     $invitedAlbums = pnModAPIFunc('mediashare', 'invitation', 'getInvitedAlbums');
     // collect all the accessible album IDs
     $albumids = array();
     foreach ($ids as $id) {
         $albumids[] = (int) $id['id'];
     }
     if (is_array($invitedAlbums) && $access & mediashareAccessRequirementView) {
         foreach ($invitedAlbums as $invAlbumId => $ok) {
             if ($ok) {
                 $albumids[] = (int) $invAlbumId;
             }
         }
     }
     // sintetize the query
     if (!empty($albumids)) {
         $albumids = "'" . implode("', '", $albumids) . "'";
     } else {
         $albumids = '';
     }
     return $albumids == '' ? '1=0' : "{$field} IN ({$albumids})";
 }
예제 #19
0
파일: common.php 프로젝트: ro0f/Mediashare
function mediashareEnsureFolderExists($parentFolderID, $folders, $folderOffset)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    // End of recursion?
    if ($folderOffset == sizeof($folders) - 1) {
        return $parentFolderID;
    }
    $folderTitle = $folders[$folderOffset];
    // Get ID of existing folder
    $pntable = pnDBGetTables();
    $foldersTable = $pntable['mediashare_albums'];
    $foldersColumn = $pntable['mediashare_albums_column'];
    $sql = "SELECT {$foldersColumn['id']}\n              FROM {$foldersTable}\n             WHERE {$foldersColumn['parentAlbumId']} = '" . DataUtil::formatForStore($parentFolderID) . "'\n               AND {$foldersColumn['title']} = '" . DataUtil::formatForStore($folderTitle) . "'";
    $result = DBUtil::executeSQL($sql);
    if ($result === false) {
        return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('common.EnsureFolderExists', 'Could not retrieve the folder information.'), $dom), 404);
    }
    // No ID => folder does not exist. Create it.
    if (!$result) {
        if (!($folderID = pnModAPIFunc('mediashare', 'edit', 'addAlbum', array('parentAlbumId' => $parentFolderID, 'title' => $folderTitle, 'description' => '', 'keywords' => '', 'summary' => '')))) {
            return false;
        }
    } else {
        $folderID = DBUtil::marshallObjects($result, array('id'));
        $folderID = (int) $folderID[0]['id'];
    }
    // Recursive to ensure sub-folders exists
    return mediashareEnsureFolderExists($folderID, $folders, $folderOffset + 1);
}
예제 #20
0
파일: Cron.php 프로젝트: projectesIF/Sirius
public function getMessagesNews($args) {
    $result = array();
    $dateTimeFrom = $args['dateTimeFrom'];
    $dateTimeTo = $args['dateTimeTo'];
    //Checking IWmessages module
    $modinfo = ModUtil::getInfo(ModUtil::getIdFromName('IWmessages'));
    if ($modinfo['state'] != 3) return $result;
    
    if (!is_null($dateTimeFrom)) {
            $sql  = "SELECT iw_msg_id AS msg_id, iw_subject AS subject, UNIX_TIMESTAMP(iw_msg_time) AS msg_time, iw_to_userid AS to_userid, iw_from_userid AS from_userid, iw_read_msg AS read_msg";
            $sql .= " FROM IWmessages";
            $sql .= " WHERE iw_read_msg = 0 AND UNIX_TIMESTAMP(iw_msg_time) >=".$dateTimeFrom." AND UNIX_TIMESTAMP(iw_msg_time) <".$dateTimeTo;
            $query = DBUtil::executeSQL($sql);
            $messages = DBUtil::marshallObjects($query);
            $mes2 = array();
            foreach ($messages as $message) {
                $sv = ModUtil::func('IWmain', 'user', 'genSecurityValue');
                $fromUserInfo = ModUtil::func($this->name, 'user', 'getUserInfo', array('sv' => $sv, 'uid' => $message['from_userid'],'info'=> array('l','n','c1')));
                $message['from_userName'] = ($fromUserInfo['n'] != '') ? $fromUserInfo['n']." ".$fromUserInfo['c1'] : $fromUserInfo['l'];
                $message['msg_time_tx'] = date("d-m-Y / H:i",$message['msg_time']);
                $mes2[$message['to_userid']][] = $message;
            }
            foreach ($mes2 as $key => $me2) {
                $view = Zikula_View::getInstance($this->name, false);  
                $view->assign('messages', $me2);
                $result[$key]['IWmessages'] = $view->fetch('reports/IWmessages_user_report.tpl');
            } 
    }
    
    return $result;
}
예제 #21
0
function mediashare_invitationapi_getInvitedAlbums()
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    $invitedAlbums = SessionUtil::getVar('mediashareInvitedAlbums');
    if ($invitedAlbums == null) {
        return $invitedAlbums;
    }
    $keys = array();
    foreach ($invitedAlbums['keys'] as $key => $ok) {
        if ($ok) {
            $keys[] = DataUtil::formatForStore($key);
        }
    }
    $keys = "'" . implode("','", $keys) . "'";
    $pntable = pnDBGetTables();
    $invitationTable = $pntable['mediashare_invitation'];
    $invitationColumn = $pntable['mediashare_invitation_column'];
    $sql = "SELECT {$invitationColumn['albumId']}\n              FROM {$invitationTable}\n             WHERE {$invitationColumn['key']} IN ({$keys})\n               AND ({$invitationColumn['expires']} > NOW() OR {$invitationColumn['expires']} IS NULL)";
    $result = DBUtil::executeSQL($sql);
    if ($result === false) {
        return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('invitationapi.getInvitedAlbums', 'Could not retrieve the invited albums.'), $dom));
    }
    $albums = DBUtil::marshallObjects($result, array('albumId'));
    $result = array();
    foreach (array_keys($albums) as $k) {
        $result[(int) $albums[$k]['albumId']] = true;
    }
    return $result;
}
예제 #22
0
    public function getTranslations($args)
    {
        $pageId = (int) $args['pageId'];

        $table = DBUtil::getTables();
        $translatedTable = $table['content_translatedcontent'];
        $translatedColumn = $table['content_translatedcontent_column'];
        $contentTable = $table['content_content'];
        $contentColumn = $table['content_content_column'];

        $cols = DBUtil::_getAllColumns('content_translatedcontent');
        $ca = DBUtil::getColumnsArray('content_translatedcontent');

        $sql = "
            SELECT $cols
            FROM $translatedTable t
            LEFT JOIN $contentTable c
            ON c.$contentColumn[id] = t.$translatedColumn[contentId]
            WHERE c.$contentColumn[pageId] = $pageId";

        $dbresult = DBUtil::executeSQL($sql);

        $translations = DBUtil::marshallObjects($dbresult, $ca);

        return $translations;
    }
예제 #23
0
/**
 * Access
 */
function mediashare_editapi_getAccessSettings($args)
{
    $dom = ZLanguage::getModuleDomain('mediashare');
    $albumId = (int) $args['albumId'];
    $pntable = pnDBGetTables();
    $accessTable = $pntable['mediashare_access'];
    $accessColumn = $pntable['mediashare_access_column'];
    $membershipTable = $pntable['group_membership'];
    $membershipColumn = $pntable['group_membership_column'];
    $groupsTable = $pntable['groups'];
    $groupsColumn = $pntable['groups_column'];
    if (strpos($membershipColumn['gid'], 'group_membership') === false) {
        $sql = "   SELECT mbr.{$membershipColumn['gid']},\n                          grp.{$groupsColumn['name']},\n                CASE WHEN ISNULL({$accessColumn['access']}) THEN 0 ELSE {$accessColumn['access']} END\n                     FROM {$membershipTable} mbr\n               INNER JOIN {$groupsTable} grp\n                       ON grp.{$groupsColumn['gid']} = mbr.{$membershipColumn['gid']}\n                LEFT JOIN {$accessTable}\n                       ON {$accessColumn['groupId']} = mbr.{$membershipColumn['gid']}\n                      AND {$accessColumn['albumId']} = '{$albumId}'";
    } else {
        $sql = "   SELECT {$membershipColumn['gid']},\n                          {$groupsColumn['name']},\n                CASE WHEN ISNULL({$accessColumn['access']}) THEN 0 ELSE {$accessColumn['access']} END\n                     FROM {$membershipTable}\n               INNER JOIN {$groupsTable}\n                       ON {$groupsColumn['gid']} = {$membershipColumn['gid']}\n                LEFT JOIN {$accessTable}\n                       ON {$accessColumn['groupId']} = {$membershipColumn['gid']}\n                      AND {$accessColumn['albumId']} = '{$albumId}'";
    }
    $sql .= "\n          UNION\n\n                   SELECT -1,\n                          '" . __('Everybody', $dom) . "',\n                CASE WHEN ISNULL({$accessColumn['access']}) THEN 0 ELSE {$accessColumn['access']} END\n                     FROM {$accessTable}\n                    WHERE {$accessColumn['groupId']} = -1\n                      AND {$accessColumn['albumId']} = '{$albumId}'";
    $result = DBUtil::executeSQL($sql);
    if ($result === false) {
        return LogUtil::registerError(__f('Error in %1$s: %2$s.', array('editapi.getAccessSettings', 'Could not retrieve the access settings.'), $dom));
    }
    $colArray = array('groupId', 'groupName', 'access');
    $groups = DBUtil::marshallObjects($result, $colArray, true, 'groupId');
    if (!isset($groups[-1])) {
        $groups[] = array('groupId' => -1, 'groupName' => __('Everybody', $dom), 'access' => 0);
    }
    // select post process
    foreach (array_keys($groups) as $k) {
        $groups[$k]['accessView'] = ($groups[$k]['access'] & mediashareAccessRequirementView) != 0;
        $groups[$k]['accessEditAlbum'] = ($groups[$k]['access'] & mediashareAccessRequirementEditAlbum) != 0;
        $groups[$k]['accessEditMedia'] = ($groups[$k]['access'] & mediashareAccessRequirementEditMedia) != 0;
        $groups[$k]['accessAddAlbum'] = ($groups[$k]['access'] & mediashareAccessRequirementAddAlbum) != 0;
        $groups[$k]['accessAddMedia'] = ($groups[$k]['access'] & mediashareAccessRequirementAddMedia) != 0;
    }
    return $groups;
}
예제 #24
0
파일: Page.php 프로젝트: robbrandt/Content
 public function getPagePath($args)
 {
     // Argument check
     if (!isset($args['pageId'])) {
         return LogUtil::registerArgsError();
     }
     $pageId = (int) $args['pageId'];
     $dbtables = DBUtil::getTables();
     $pageTable = $dbtables['content_page'];
     $pageColumn = $dbtables['content_page_column'];
     $translatedPageTable = $dbtables['content_translatedpage'];
     $translatedPageColumn = $dbtables['content_translatedpage_column'];
     $currentLanguage = ZLanguage::getLanguageCode();
     $sql = "SELECT parentPage.{$pageColumn['id']},\n            parentPage.{$pageColumn['title']},\n            parentPageTranslation.{$translatedPageColumn['title']} AS translatedTitle\n            FROM {$pageTable} parentPage\n            LEFT OUTER JOIN {$pageTable} page\n            ON page.{$pageColumn['setLeft']} >= parentPage.{$pageColumn['setLeft']}\n            AND page.{$pageColumn['setRight']} <= parentPage.{$pageColumn['setRight']}\n            LEFT OUTER JOIN {$translatedPageTable} parentPageTranslation\n            ON parentPageTranslation.{$translatedPageColumn['pageId']} = parentPage.{$pageColumn['id']}\n            AND parentPageTranslation.{$translatedPageColumn['language']} = '{$currentLanguage}'\n            WHERE page.{$pageColumn['id']} = {$pageId}\n            ORDER BY parentPage.{$pageColumn['setLeft']}";
     $result = DBUtil::executeSQL($sql);
     if (!$result) {
         return LogUtil::registerError($this->__('Error! Could not load items.'));
     }
     $objectArray = DBUtil::marshallObjects($result);
     $path = array();
     foreach ($objectArray as $object) {
         $pageTitle = $object['page_title'];
         if ($object['translatedTitle'] != '') {
             $pageTitle = $object['translatedTitle'];
         }
         $path[] = array('id' => $object['page_id'], 'title' => $pageTitle);
     }
     return $path;
 }
예제 #25
0
파일: Page.php 프로젝트: projectesIF/Sirius
    public function getPagePath($args)
    {
        // Argument check
        if (!isset($args['pageId'])) {
            return LogUtil::registerArgsError();
        }
        $pageId = (int) $args['pageId'];

        $dbtables = DBUtil::getTables();
        $pageTable = $dbtables['content_page'];
        $pageColumn = $dbtables['content_page_column'];

        $sql = "SELECT parentPage.$pageColumn[id],
            parentPage.$pageColumn[title]
            FROM $pageTable parentPage
            LEFT OUTER JOIN $pageTable page
            ON page.$pageColumn[setLeft] >= parentPage.$pageColumn[setLeft]
            AND page.$pageColumn[setRight] <= parentPage.$pageColumn[setRight]
            WHERE page.$pageColumn[id] = $pageId
            ORDER BY parentPage.$pageColumn[setLeft]";

        $result = DBUtil::executeSQL($sql);
        if (!$result) {
            return LogUtil::registerError($this->__('Error! Could not load items.'));
        }
        $objectArray = DBUtil::marshallObjects($result);
        $path = array();
        foreach ($objectArray as $object) {
            $path[] = array('id' => $object['page_id'], 'title' => $object['page_title']);
        }
        return $path;
    }