Exemple #1
0
function showFP()
{
    $db = new PHPWS_DB('ps_page');
    $db->addWhere('front_page', 1);
    if ($db->isTableColumn('deleted')) {
        $db->addWhere('deleted', 0);
    }
    Key::restrictView($db, 'pagesmith');
    $db->loadClass('pagesmith', 'PS_Page.php');
    $result = $db->getObjects('PS_Page');
    if (!PHPWS_Error::logIfError($result) && !empty($result)) {
        PHPWS_Core::initModClass('pagesmith', 'PageSmith.php');
        foreach ($result as $page) {
            $content = $page->view();
            if ($content && !PHPWS_Error::logIfError($content)) {
                if (Current_User::allow('pagesmith', 'edit_page', $page->id)) {
                    $content .= sprintf('<p class="pagesmith-edit">%s</p>', $page->editLink());
                }
                Layout::add($content, 'pagesmith', 'view_' . $page->id, TRUE);
            }
        }
    } else {
        return null;
    }
}
Exemple #2
0
 /**
  * Grabs all the child links under the current link
  */
 public function loadChildren($data = null, $hash = null)
 {
     // If we're doing this the old, inefficient way...
     if (empty($data) || empty($hash)) {
         $db = $this->getDB();
         $db->addWhere('parent', $this->id);
         $db->addOrder('link_order');
         Key::restrictView($db);
         $result = $db->getObjects('menu_link');
         if (empty($result)) {
             return;
         }
         foreach ($result as $link) {
             $link->loadChildren();
             $this->_children[$link->id] = $link;
         }
     } elseif (empty($hash[$this->id])) {
         return;
     } else {
         foreach ($hash[$this->id] as $rowId) {
             $link = new Menu_Link();
             PHPWS_Core::plugObject($link, $data[$rowId]);
             $link->loadChildren($data, $hash);
             $this->_children[$link->id] = $link;
         }
     }
 }
Exemple #3
0
 public static function showBlocks($key)
 {
     $db = new PHPWS_DB('block');
     $db->addWhere('block_pinned.key_id', $key->id);
     $db->addWhere('id', 'block_pinned.block_id');
     Key::restrictView($db, 'block');
     $result = $db->getObjects('Block_Item');
     if (PHPWS_Error::isError($result)) {
         PHPWS_Error::log($result);
         return NULL;
     }
     if (empty($result)) {
         return NULL;
     }
     foreach ($result as $block) {
         $block->setPinKey($key);
         Layout::add($block->view(), 'block', $block->getContentVar());
         $GLOBALS['Current_Blocks'][$block->id] = TRUE;
     }
 }
Exemple #4
0
 /**
  * Returns a list of schedules according to the user's permissions
  */
 public function getScheduleList($mode = 'object')
 {
     $db = new PHPWS_DB('calendar_schedule');
     Key::restrictView($db);
     $user_id = Current_User::getId();
     if ($user_id) {
         // this should always be true, adding just to create another where group
         $db->addWhere('id', 0, '>', 'and', 'user_cal0');
         $db->addWhere('user_id', $user_id, '=', 'and', 'user_cal1');
         $db->addWhere('public', 0, '=', 'and', 'user_cal1');
         $db->addWhere('public', 1, '=', 'or', 'user_cal2');
         $db->setGroupConj('user_cal1', 'and');
         $db->setGroupConj('user_cal2', 'or');
         $db->groupIn('user_cal1', 'user_cal0');
         $db->groupIn('user_cal2', 'user_cal0');
     } else {
         $db->addWhere('public', 1);
     }
     $db->addOrder('title');
     switch ($mode) {
         case 'object':
             return $db->getObjects('Calendar_Schedule');
             break;
         case 'brief':
             $db->addColumn('id');
             $db->addColumn('title');
             $db->setIndexBy('id');
             return $db->select('col');
             break;
     }
 }
Exemple #5
0
 public function upcomingEvents()
 {
     $db = new PHPWS_DB('calendar_schedule');
     $db->addWhere('show_upcoming', 0, '>');
     $db->addWhere('public', 1);
     Key::restrictView($db, 'calendar');
     $result = $db->getObjects('Calendar_Schedule');
     if (PHPWS_Error::logIfError($result) || !$result) {
         return null;
     }
     $startdate = time();
     foreach ($result as $schedule) {
         $tpl = array();
         switch ($schedule->show_upcoming) {
             case 1:
                 // one week
                 $days_ahead = 7;
                 break;
             case 2:
                 // two weeks
                 $days_ahead = 14;
                 break;
             case 3:
                 // one month
                 $days_ahead = 30;
                 break;
         }
         $enddate = $startdate + 86400 * $days_ahead;
         $event_list = $schedule->getEvents($startdate, $enddate);
         if (!$event_list) {
             continue;
         }
         $tpl['TITLE'] = $schedule->getViewLink();
         $current_day = null;
         $count = 0;
         if (empty($event_list)) {
             continue;
         }
         foreach ($event_list as $event) {
             $vars = array('view' => 'day', 'date' => $event->start_time, 'sch_id' => $schedule->id);
             $tpl['events'][$count] = $event->getTpl();
             if ($current_day != strftime(CALENDAR_UPCOMING_FORMAT, $event->start_time)) {
                 $current_day = strftime(CALENDAR_UPCOMING_FORMAT, $event->start_time);
                 $tpl['events'][$count]['DAY'] = PHPWS_Text::moduleLink($current_day, 'calendar', $vars);
             } else {
                 $tpl['events'][$count]['DAY'] = null;
             }
             $count++;
         }
         $upcoming[] = PHPWS_Template::process($tpl, 'calendar', 'view/upcoming.tpl');
     }
     if (!empty($upcoming)) {
         $ftpl['TITLE'] = dgettext('calendar', 'Upcoming events');
         $ftpl['CONTENT'] = implode("\n", $upcoming);
         return PHPWS_Template::process($ftpl, 'calendar', 'user_main.tpl');
     } else {
         return null;
     }
 }
Exemple #6
0
 /**
  * Returns the menu link objects associated to a menu
  */
 public function getLinks($parent = 0, $active_only = TRUE)
 {
     if (!$this->id) {
         return NULL;
     }
     // Get all records for this menu
     $db = new PHPWS_DB('menu_links');
     $db->setDistinct();
     $db->addWhere('menu_id', $this->id, NULL, NULL, 1);
     Key::restrictView($db);
     $db->addOrder('link_order');
     $db->setIndexBy('id');
     $data = $db->getObjects('Menu_Link');
     if (empty($data) || PHPWS_Error::logIfError($data)) {
         return NULL;
     }
     $final = $this->formLink($data);
     $GLOBALS['MENU_LINKS'][$this->id] = $final;
     return $final;
 }
Exemple #7
0
 /**
  * Function called by mod developer to add their
  * link or to just show the menu on that item
  */
 public static function show()
 {
     \Layout::addJSHeader("<script type='text/javascript' src='" . PHPWS_SOURCE_HTTP . "javascript/responsive_img/responsive-img.min.js'></script>", 81);
     $seen = array();
     $key = Key::getCurrent();
     if (empty($key) || empty($key->title) || empty($key->url)) {
         return;
     }
     $db = new PHPWS_DB('menus');
     $db->addWhere('menu_assoc.key_id', $key->id);
     $db->addWhere('id', 'menu_assoc.menu_id');
     $db->loadClass('menu', 'Menu_Item.php');
     Key::restrictView($db, 'menu');
     $result = $db->getObjects('Menu_Item');
     if (PHPWS_Error::isError($result)) {
         PHPWS_Error::log($result);
     } elseif (!empty($result)) {
         foreach ($result as $menu) {
             $seen[] = $menu->id;
             if ($menu->assoc_image) {
                 Layout::set($menu->showAssocImage(), 'menu', 'image');
             }
             Layout::set($menu->view(), 'menu', 'menu_' . $menu->id);
         }
     }
 }
Exemple #8
0
 public static function getResults($phrase, $module = NULL, $exact_match = FALSE)
 {
     PHPWS_Core::initModClass('search', 'Stats.php');
     $pageTags = array();
     $pageTags['MODULE_LABEL'] = dgettext('search', 'Module');
     $pageTags['TITLE_LABEL'] = dgettext('search', 'Title');
     $ignore = Search_User::getIgnore();
     if (PHPWS_Error::isError($ignore)) {
         PHPWS_Error::log($ignore);
         $ignore = NULL;
     }
     if (empty($phrase)) {
         return FALSE;
     }
     $words = explode(' ', $phrase);
     if (!empty($ignore)) {
         $words_removed = array_intersect($words, $ignore);
         if (!empty($words_removed)) {
             $pageTags['REMOVED_LABEL'] = dgettext('search', 'The following search words were ignored');
             $pageTags['IGNORED_WORDS'] = implode(' ', $words_removed);
             foreach ($words_removed as $remove) {
                 $key = array_search($remove, $words);
                 unset($words[$key]);
             }
         }
     }
     if (empty($words)) {
         return FALSE;
     }
     PHPWS_Core::initCoreClass('DBPager.php');
     $pager = new DBPager('phpws_key', 'Key');
     $pager->setModule('search');
     $pager->setTemplate('search_results.tpl');
     $pager->addToggle('class="bgcolor1"');
     $pager->addRowTags('getTplTags');
     $pager->addPageTags($pageTags);
     foreach ($words as $keyword) {
         if (strlen($keyword) < SEARCH_MIN_WORD_LENGTH) {
             continue;
         }
         if ($exact_match) {
             $s_keyword = "%{$keyword} %";
         } else {
             $s_keyword = "%{$keyword}%";
         }
         $pager->addWhere('search.keywords', $s_keyword, 'like', 'or', 1);
     }
     // No keywords were set. All under minimum word length
     if (empty($s_keyword)) {
         return null;
     }
     $pager->setEmptyMessage(dgettext('search', 'Nothing found'));
     $pager->db->setGroupConj(1, 'AND');
     if ($module) {
         $pager->addWhere('search.module', $module);
         Key::restrictView($pager->db, $module);
     } else {
         Key::restrictView($pager->db);
     }
     $result = $pager->get();
     Search_Stats::record($words, $pager->total_rows, $exact_match);
     return $result;
 }
Exemple #9
0
 public static function show($start_date = null, $end_date = null)
 {
     if (!Blog_User::allowView()) {
         return null;
     }
     $db = new PHPWS_DB('blog_entries');
     if ($start_date) {
         $db->addWhere('publish_date', $start_date, '>=', 'and', 2);
     }
     if ($end_date) {
         $db->addWhere('publish_date', $end_date, '<=', 'and', 2);
     }
     $db->addWhere('approved', 1);
     $db->addWhere('publish_date', time(), '<');
     $db->addWhere('expire_date', time(), '>', 'and', 1);
     $db->addWhere('expire_date', 0, '=', 'or', 1);
     $db->setGroupConj(1, 'and');
     Key::restrictView($db, 'blog');
     $total_entries = Blog_User::totalEntries($db);
     $limit = PHPWS_Settings::get('blog', 'blog_limit');
     if (isset($_GET['page'])) {
         $page = $_GET['page'];
     } else {
         $page = 0;
     }
     if (!is_numeric($page) || $page < 2) {
         $offset = $page = 0;
     } else {
         $offset = ($page - 1) * $limit;
     }
     Layout::addStyle('blog');
     $result = Blog_User::getEntries($db, $limit, $offset);
     if ($page > 0 && empty($result)) {
         PHPWS_Core::reroute('blog/action/view/page/1');
     }
     if (PHPWS_Error::isError($result)) {
         PHPWS_Error::log($result);
         return NULL;
     }
     if (empty($result)) {
         if (Current_User::allow('blog')) {
             MiniAdmin::add('blog', PHPWS_Text::secureLink(dgettext('blog', 'Create first blog entry!'), 'blog', array('action' => 'admin', 'command' => 'new')));
         }
         return NULL;
     }
     if ($page < 2) {
         $past_entries = PHPWS_Settings::get('blog', 'past_entries');
         if ($past_entries) {
             $db->setLimit($past_entries, $limit);
             $past = $db->getObjects('Blog');
             if (PHPWS_Error::isError($past)) {
                 PHPWS_Error::log($past);
             } elseif ($past) {
                 Blog_User::showPast($past);
             }
         }
     }
     $rss = false;
     foreach ($result as $blog) {
         if (!$rss) {
             if (PHPWS_Core::moduleExists('rss')) {
                 PHPWS_Core::initModClass('rss', 'RSS.php');
                 $key = new Key($blog->key_id);
                 RSS::showIcon($key);
                 $rss = true;
             }
         }
         $view = $blog->view();
         if (!empty($view)) {
             $list[] = $view;
         }
     }
     $page_vars['action'] = 'view';
     if ($page > 1) {
         $page_vars['page'] = $page - 1;
         $tpl['PREV_PAGE'] = PHPWS_Text::moduleLink(dgettext('blog', 'Previous page'), 'blog', $page_vars);
         if ($limit + $offset < $total_entries) {
             $page_vars['page'] = $page + 1;
             $tpl['NEXT_PAGE'] = PHPWS_Text::moduleLink(dgettext('blog', 'Next page'), 'blog', $page_vars);
         }
     } elseif ($limit + $offset < $total_entries) {
         $page_vars['page'] = 2;
         $tpl['NEXT_PAGE'] = PHPWS_Text::moduleLink(dgettext('blog', 'Next page'), 'blog', $page_vars);
     }
     $tpl['ENTRIES'] = implode('', $list);
     $content = PHPWS_Template::process($tpl, 'blog', 'list_view.tpl');
     if (Current_User::allow('blog', 'edit_blog')) {
         Blog_User::miniAdminList();
         $vars['action'] = 'admin';
         $vars['command'] = 'new';
         $link[] = PHPWS_Text::secureLink(dgettext('blog', 'Add new blog'), 'blog', $vars);
         MiniAdmin::add('blog', $link);
     }
     return $content;
 }