?? controller.php
字號:
/** * Cancels an edit operation */ function cancelContent() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); // Check the article in if checked out $row = & JTable::getInstance('content'); $row->bind(JRequest::get('post')); $row->checkin(); $mainframe->redirect('index.php?option=com_content'); } /** * Moves the order of a record * @param integer The increment to reorder by */ function orderContent($direction) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); if (isset( $cid[0] )) { $row = & JTable::getInstance('content'); $row->load( (int) $cid[0] ); $row->move($direction, 'catid = ' . (int) $row->catid . ' AND state >= 0' ); $cache = & JFactory::getCache('com_content'); $cache->clean(); } $mainframe->redirect('index.php?option=com_content'); } /** * Form for moving item(s) to a different section and category */ function moveSection() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db =& JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); JArrayHelper::toInteger($cid); if (count($cid) < 1) { $msg = JText::_('Select an item to move'); $mainframe->redirect('index.php?option=com_content', $msg, 'error'); } //seperate contentids $cids = implode(',', $cid); // Articles query $query = 'SELECT a.title' . ' FROM #__content AS a' . ' WHERE ( a.id IN ( '. $cids .' ) )' . ' ORDER BY a.title'; $db->setQuery($query); $items = $db->loadObjectList(); $query = 'SELECT CONCAT_WS( ", ", s.id, c.id ) AS `value`, CONCAT_WS( " / ", s.title, c.title ) AS `text`' . ' FROM #__sections AS s' . ' INNER JOIN #__categories AS c ON c.section = s.id' . ' WHERE s.scope = "content"' . ' ORDER BY s.title, c.title'; $db->setQuery($query); $rows[] = JHTML::_('select.option', "0, 0", JText::_('UNCATEGORIZED')); $rows = array_merge($rows, $db->loadObjectList()); // build the html select list $sectCatList = JHTML::_('select.genericlist', $rows, 'sectcat', 'class="inputbox" size="8"', 'value', 'text', null); ContentView::moveSection($cid, $sectCatList, 'com_content', $sectionid, $items); } /** * Save the changes to move item(s) to a different section and category */ function moveSectionSave() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $user = & JFactory::getUser(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); JArrayHelper::toInteger($cid, array(0)); $sectcat = JRequest::getVar( 'sectcat', '', 'post', 'string' ); $sectcat = explode(',', $sectcat); $newsect = (int) @$sectcat[0]; $newcat = (int) @$sectcat[1]; if ((!$newsect || !$newcat) && ($sectcat !== array('0', ' 0'))) { $mainframe->redirect("index.php?option=com_content§ionid=$sectionid", JText::_('An error has occurred')); } // find section name $query = 'SELECT a.title' . ' FROM #__sections AS a' . ' WHERE a.id = '. (int) $newsect; $db->setQuery($query); $section = $db->loadResult(); // find category name $query = 'SELECT a.title' . ' FROM #__categories AS a' . ' WHERE a.id = '. (int) $newcat; $db->setQuery($query); $category = $db->loadResult(); $total = count($cid); $cids = implode(',', $cid); $uid = $user->get('id'); $row = & JTable::getInstance('content'); // update old orders - put existing items in last place foreach ($cid as $id) { $row->load(intval($id)); $row->ordering = 0; $row->store(); $row->reorder('catid = '.(int) $row->catid.' AND state >= 0'); } $query = 'UPDATE #__content SET sectionid = '.(int) $newsect.', catid = '.(int) $newcat. ' WHERE id IN ( '.$cids.' )' . ' AND ( checked_out = 0 OR ( checked_out = '.(int) $uid.' ) )'; $db->setQuery($query); if (!$db->query()) { JError::raiseError( 500, $db->getErrorMsg() ); return false; } // update new orders - put items in last place foreach ($cid as $id) { $row->load(intval($id)); $row->ordering = 0; $row->store(); $row->reorder('catid = '.(int) $row->catid.' AND state >= 0'); } if ($section && $category) { $msg = JText::sprintf('Item(s) successfully moved to Section', $total, $section, $category); } else { $msg = JText::sprintf('ITEM(S) SUCCESSFULLY MOVED TO UNCATEGORIZED', $total); } $mainframe->redirect('index.php?option='.$option.'§ionid='.$sectionid, $msg); } /** * Form for copying item(s) **/ function copyItem() { // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); JArrayHelper::toInteger($cid); if (count($cid) < 1) { $msg = JText::_('Select an item to move'); $mainframe->redirect('index.php?option='.$option, $msg, 'error'); } //seperate contentids $cids = implode(',', $cid); ## Articles query $query = 'SELECT a.title' . ' FROM #__content AS a' . ' WHERE ( a.id IN ( '. $cids .' ) )' . ' ORDER BY a.title'; $db->setQuery($query); $items = $db->loadObjectList(); ## Section & Category query $query = 'SELECT CONCAT_WS(",",s.id,c.id) AS `value`, CONCAT_WS(" / ", s.title, c.title) AS `text`' . ' FROM #__sections AS s' . ' INNER JOIN #__categories AS c ON c.section = s.id' . ' WHERE s.scope = "content"' . ' ORDER BY s.title, c.title'; $db->setQuery($query); // Add a row for uncategorized content $uncat = JHTML::_('select.option', '0,0', JText::_('UNCATEGORIZED')); $rows = $db->loadObjectList(); array_unshift($rows, $uncat); // build the html select list $sectCatList = JHTML::_('select.genericlist', $rows, 'sectcat', 'class="inputbox" size="10"', 'value', 'text', NULL); ContentView::copySection($option, $cid, $sectCatList, $sectionid, $items); } /** * saves Copies of items **/ function copyItemSave() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(), 'post', 'array' ); $sectionid = JRequest::getVar( 'sectionid', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); JArrayHelper::toInteger($cid); $item = null; $sectcat = JRequest::getVar( 'sectcat', '-1,-1', 'post', 'string' ); //seperate sections and categories from selection $sectcat = explode(',', $sectcat); $newsect = (int) @$sectcat[0]; $newcat = (int) @$sectcat[1]; if (($newsect == -1) || ($newcat == -1)) { $mainframe->redirect('index.php?option=com_content§ionid='.$sectionid, JText::_('An error has occurred')); } // find section name $query = 'SELECT a.title' . ' FROM #__sections AS a' . ' WHERE a.id = '. (int) $newsect; $db->setQuery($query); $section = $db->loadResult(); // find category name $query = 'SELECT a.title' . ' FROM #__categories AS a' . ' WHERE a.id = '. (int) $newcat; $db->setQuery($query); $category = $db->loadResult(); if (($newsect == 0) && ($newcat == 0)) { $section = JText::_('UNCATEGORIZED'); $category = JText::_('UNCATEGORIZED'); } $total = count($cid); for ($i = 0; $i < $total; $i ++) { $row = & JTable::getInstance('content'); // main query $query = 'SELECT a.*' . ' FROM #__content AS a' . ' WHERE a.id = '.(int) $cid[$i]; $db->setQuery($query, 0, 1); $item = $db->loadObject(); // values loaded into array set for store $row->id = NULL; $row->sectionid = $newsect; $row->catid = $newcat; $row->hits = '0'; $row->ordering = '0'; $row->title = $item->title; $row->alias = $item->alias; $row->title_alias = $item->title_alias; $row->introtext = $item->introtext; $row->fulltext = $item->fulltext; $row->state = $item->state; $row->mask = $item->mask; $row->created = $item->created; $row->created_by = $item->created_by; $row->created_by_alias = $item->created_by_alias; $row->modified = $item->modified; $row->modified_by = $item->modified_by; $row->checked_out = $item->checked_out; $row->checked_out_time = $item->checked_out_time; $row->publish_up = $item->publish_up; $row->publish_down = $item->publish_down; $row->images = $item->images; $row->attribs = $item->attribs; $row->version = $item->parentid; $row->parentid = $item->parentid; $row->metakey = $item->metakey; $row->metadesc = $item->metadesc; $row->access = $item->access; if (!$row->check()) { JError::raiseError( 500, $row->getError() ); return false; } if (!$row->store()) { JError::raiseError( 500, $row->getError() ); return false; } $row->reorder('catid='.(int) $row->catid.' AND state >= 0'); } $msg = JText::sprintf('Item(s) successfully copied to Section', $total, $section, $category); $mainframe->redirect('index.php?option='.$option.'§ionid='.$sectionid, $msg); } /** * @param integer The id of the article * @param integer The new access level * @param string The URL option */ function accessMenu($access) { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $option = JRequest::getCmd( 'option' ); $cid = $cid[0]; // Create and load the article table object $row = & JTable::getInstance('content'); $row->load($cid); $row->access = $access; // Ensure the article object is valid if (!$row->check()) { JError::raiseError( 500, $row->getError() ); return false; } // Store the changes if (!$row->store()) { JError::raiseError( 500, $row->getError() ); return false; } $cache = & JFactory::getCache('com_content'); $cache->clean(); $mainframe->redirect('index.php?option='.$option); } function saveOrder() { global $mainframe; // Check for request forgeries JRequest::checkToken() or jexit( 'Invalid Token' ); // Initialize variables $db = & JFactory::getDBO(); $cid = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $order = JRequest::getVar( 'order', array (0), 'post', 'array' ); $redirect = JRequest::getVar( 'redirect', 0, 'post', 'int' ); $rettask = JRequest::getVar( 'returntask', '', 'post', 'cmd' ); $total = count($cid); $conditions = array (); JArrayHelper::toInteger($cid, array(0)); JArrayHelper::toInteger($order, array(0)); // Instantiate an article table object $row = & JTable::getInstance('content'); // Update the ordering for items in the cid array for ($i = 0; $i < $total; $i ++) { $row->load( (int) $cid[$i] ); if ($row->ordering != $order[$i]) { $row->ordering = $order[$i]; if (!$row->store()) { JError::raiseError( 500, $db->getErrorMsg() ); return false; } // remember to updateOrder this group $condition = 'catid = '.(int) $row->catid.' AND state >= 0'; $found = false; foreach ($conditions as $cond) if ($cond[1] == $condition) { $found = true; break; } if (!$found) $conditions[] = array ($row->id, $condition); } } // execute updateOrder for each group foreach ($conditions as $cond) { $row->load($cond[0]); $row->reorder($cond[1]); } $cache = & JFactory::getCache('com_content'); $cache->clean(); $msg = JText::_('New ordering saved'); switch ($rettask) { case 'showarchive' : $mainframe->redirect('index.php?option=com_content&task=showarchive§ionid='.$redirect, $msg); break; default : $mainframe->redirect('index.php?option=com_content§ionid='.$redirect, $msg); break; } } function previewContent() { // Initialize variables $document =& JFactory::getDocument(); $db =& JFactory::getDBO(); $id = JRequest::getVar( 'id', 0, '', 'int' ); $option = JRequest::getCmd( 'option' ); // Get the current default template $query = 'SELECT template' . ' FROM #__templates_menu' . ' WHERE client_id = 0' . ' AND menuid = 0'; $db->setQuery($query); $template = $db->loadResult(); // check if template editor stylesheet exists if (!file_exists( JPATH_SITE.DS.'templates'.DS.$template.DS.'css'.DS.'editor.css' )) { $template = 'system'; } // Set page title $document->setTitle(JText::_('Article Preview')); $document->addStyleSheet(JURI::root() . 'templates/'.$template.'/css/editor.css'); $document->setBase(JUri::root()); // Render article preview ContentView::previewContent(); } function insertPagebreak() { $document =& JFactory::getDocument(); $document->setTitle(JText::_('PGB ARTICLE PAGEBRK')); ContentView::insertPagebreak(); }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -