📄 controller.php
字号:
$mainframe->redirect('index.php?option='.$option.'&task='.$return, $msg);
}
/**
* Cancels an edit operation
*/
function cancelContent()
{
global $mainframe;
// 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;
// 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()
{
// 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;
// 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()
{
// 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;
// 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->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;
// 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;
// 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();
// Set page title
$document->setTitle(JText::_('Article Preview'));
$document->addStyleSheet('../templates/'.$template.'/css/editor.css');
// Render article preview
ContentView::previewContent();
}
function insertPagebreak()
{
$document =& JFactory::getDocument();
$document->setTitle(JText::_('PGB ARTICLE PAGEBRK'));
ContentView::insertPagebreak();
}
function _validateDate($date)
{
$db =& JFactory::getDBO();
if (JHTML::_('date', $date, '%Y') == 1969 || $date == $db->getNullDate()) {
$newDate = JText::_('Never');
} else {
$newDate = JHTML::_('date', $date, '%Y-%m-%d %H:%M:%S');
}
return $newDate;
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -