Файловый менеджер - Редактировать - /home/wuectly/www/03cbe/com_content.zip
Назад
PK �s!]��QX�S �S com_content.phpnu &1i� <?php /** * @version $Id$ * @copyright Copyright (C) 2007 - 2009 Joomla! Vargas. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt * @author Guillermo Vargas (guille@vargas.co.cr) */ defined( '_JEXEC' ) or die( 'Restricted access' ); require_once JPATH_SITE . '/components/com_content/helpers/route.php'; require_once JPATH_SITE . '/components/com_content/helpers/query.php'; /** * Handles standard Joomla's Content articles/categories * * This plugin is able to expand the categories keeping the right order of the * articles acording to the menu settings and the user session data (user state). * * This is a very complex plugin, if you are trying to build your own plugin * for other component, I suggest you to take a look to another plugis as * they are usually most simple. ;) */ class xmap_com_content { /** * This function is called before a menu item is printed. We use it to set the * proper uniqueid for the item * * @param object Menu item to be "prepared" * @param array The extension params * * @return void * @since 1.2 */ static function prepareMenuItem($node, &$params) { $db = JFactory::getDbo(); $link_query = parse_url($node->link); if (!isset($link_query['query'])) { return; } parse_str(html_entity_decode($link_query['query']), $link_vars); $view = JArrayHelper::getValue($link_vars, 'view', ''); $layout = JArrayHelper::getValue($link_vars, 'layout', ''); $id = JArrayHelper::getValue($link_vars, 'id', 0); //----- Set add_images param $params['add_images'] = JArrayHelper::getValue($params, 'add_images', 0); //----- Set add pagebreaks param $add_pagebreaks = JArrayHelper::getValue($params, 'add_pagebreaks', 1); $params['add_pagebreaks'] = JArrayHelper::getValue($params, 'add_pagebreaks', 1); switch ($view) { case 'category': if ($id) { $node->uid = 'com_contentc' . $id; } else { $node->uid = 'com_content' . $layout; } $node->expandible = true; break; case 'article': $node->uid = 'com_contenta' . $id; $node->expandible = false; $query = $db->getQuery(true); $query->select($db->quoteName('created')) ->select($db->quoteName('modified')) ->from($db->quoteName('#__content')) ->where($db->quoteName('id').'='.intval($id)); if ($params['add_pagebreaks'] || $params['add_images']){ $query->select($db->quoteName('introtext')) ->select($db->quoteName('fulltext')); } $db->setQuery($query); if (($row = $db->loadObject()) != NULL) { $node->modified = $row->modified; $text = @$item->introtext . @$item->fulltext; if ($params['add_images']) { $node->images = XmapHelper::getImages($text,JArrayHelper::getValue($params, 'max_images', 1000)); } if ($params['add_pagebreaks']) { $node->subnodes = XmapHelper::getPagebreaks($text,$node->link); $node->expandible = (count($node->subnodes) > 0); // This article has children } } break; case 'archive': $node->expandible = true; break; case 'featured': $node->uid = 'com_contentfeatured'; $node->expandible = false; } } /** * Expands a com_content menu item * * @return void * @since 1.0 */ static function getTree($xmap, $parent, &$params) { $db = JFactory::getDBO(); $app = JFactory::getApplication(); $user = JFactory::getUser(); $result = null; $link_query = parse_url($parent->link); if (!isset($link_query['query'])) { return; } parse_str(html_entity_decode($link_query['query']), $link_vars); $view = JArrayHelper::getValue($link_vars, 'view', ''); $id = intval(JArrayHelper::getValue($link_vars, 'id', '')); /* * * * Parameters Initialitation * */ //----- Set expand_categories param $expand_categories = JArrayHelper::getValue($params, 'expand_categories', 1); $expand_categories = ( $expand_categories == 1 || ( $expand_categories == 2 && $xmap->view == 'xml') || ( $expand_categories == 3 && $xmap->view == 'html') || $xmap->view == 'navigator'); $params['expand_categories'] = $expand_categories; //----- Set expand_featured param $expand_featured = JArrayHelper::getValue($params, 'expand_featured', 1); $expand_featured = ( $expand_featured == 1 || ( $expand_featured == 2 && $xmap->view == 'xml') || ( $expand_featured == 3 && $xmap->view == 'html') || $xmap->view == 'navigator'); $params['expand_featured'] = $expand_featured; //----- Set expand_featured param $include_archived = JArrayHelper::getValue($params, 'include_archived', 2); $include_archived = ( $include_archived == 1 || ( $include_archived == 2 && $xmap->view == 'xml') || ( $include_archived == 3 && $xmap->view == 'html') || $xmap->view == 'navigator'); $params['include_archived'] = $include_archived; //----- Set show_unauth param $show_unauth = JArrayHelper::getValue($params, 'show_unauth', 1); $show_unauth = ( $show_unauth == 1 || ( $show_unauth == 2 && $xmap->view == 'xml') || ( $show_unauth == 3 && $xmap->view == 'html')); $params['show_unauth'] = $show_unauth; //----- Set add_images param $add_images = JArrayHelper::getValue($params, 'add_images', 0) && $xmap->isImages; $add_images = ( $add_images && $xmap->view == 'xml'); $params['add_images'] = $add_images; $params['max_images'] = JArrayHelper::getValue($params, 'max_images', 1000); //----- Set add pagebreaks param $add_pagebreaks = JArrayHelper::getValue($params, 'add_pagebreaks', 1); $add_pagebreaks = ( $add_pagebreaks == 1 || ( $add_pagebreaks == 2 && $xmap->view == 'xml') || ( $add_pagebreaks == 3 && $xmap->view == 'html') || $xmap->view == 'navigator'); $params['add_pagebreaks'] = $add_pagebreaks; if ($params['add_pagebreaks'] && !defined('_XMAP_COM_CONTENT_LOADED')) { define('_XMAP_COM_CONTENT_LOADED',1); // Load it just once $lang = JFactory::getLanguage(); $lang->load('plg_content_pagebreak'); } //----- Set cat_priority and cat_changefreq params $priority = JArrayHelper::getValue($params, 'cat_priority', $parent->priority); $changefreq = JArrayHelper::getValue($params, 'cat_changefreq', $parent->changefreq); if ($priority == '-1') $priority = $parent->priority; if ($changefreq == '-1') $changefreq = $parent->changefreq; $params['cat_priority'] = $priority; $params['cat_changefreq'] = $changefreq; //----- Set art_priority and art_changefreq params $priority = JArrayHelper::getValue($params, 'art_priority', $parent->priority); $changefreq = JArrayHelper::getValue($params, 'art_changefreq', $parent->changefreq); if ($priority == '-1') $priority = $parent->priority; if ($changefreq == '-1') $changefreq = $parent->changefreq; $params['art_priority'] = $priority; $params['art_changefreq'] = $changefreq; $params['max_art'] = intval(JArrayHelper::getValue($params, 'max_art', 0)); $params['max_art_age'] = intval(JArrayHelper::getValue($params, 'max_art_age', 0)); $params['nullDate'] = $db->Quote($db->getNullDate()); $params['nowDate'] = $db->Quote(JFactory::getDate()->toSql()); $params['groups'] = implode(',', $user->getAuthorisedViewLevels()); // Define the language filter condition for the query $params['language_filter'] = $app->getLanguageFilter(); switch ($view) { case 'category': if (!$id) { $id = intval(JArrayHelper::getValue($params, 'id', 0)); } if ($params['expand_categories'] && $id) { $result = self::expandCategory($xmap, $parent, $id, $params, $parent->id); } break; case 'featured': if ($params['expand_featured']) { $result = self::includeCategoryContent($xmap, $parent, 'featured', $params,$parent->id); } break; case 'categories': if ($params['expand_categories']) { $result = self::expandCategory($xmap, $parent, ($id ? $id : 1), $params, $parent->id); } break; case 'archive': if ($params['expand_featured']) { $result = self::includeCategoryContent($xmap, $parent, 'archived', $params,$parent->id); } break; case 'article': // if it's an article menu item, we have to check if we have to expand the // article's page breaks if ($params['add_pagebreaks']){ $query = $db->getQuery(true); $query->select($db->quoteName('introtext')) ->select($db->quoteName('fulltext')) ->select($db->quoteName('alias')) ->select($db->quoteName('catid')) ->from($db->quoteName('#__content')) ->where($db->quoteName('id').'='.intval($id)); $db->setQuery($query); $row = $db->loadObject(); $parent->slug = $row->alias ? ($id . ':' . $row->alias) : $id; $parent->link = ContentHelperRoute::getArticleRoute($parent->slug, $row->catid); $subnodes = XmapHelper::getPagebreaks($row->introtext.$row->fulltext,$parent->link); self::printNodes($xmap, $parent, $params, $subnodes); } } return $result; } /** * Get all content items within a content category. * Returns an array of all contained content items. * * @param object $xmap * @param object $parent the menu item * @param int $catid the id of the category to be expanded * @param array $params an assoc array with the params for this plugin on Xmap * @param int $itemid the itemid to use for this category's children */ static function expandCategory($xmap, $parent, $catid, &$params, $itemid) { $db = JFactory::getDBO(); $where = array('a.parent_id = ' . $catid . ' AND a.published = 1 AND a.extension=\'com_content\''); if ($params['language_filter'] ) { $where[] = 'a.language in ('.$db->quote(JFactory::getLanguage()->getTag()).','.$db->quote('*').')'; } if (!$params['show_unauth']) { $where[] = 'a.access IN (' . $params['groups'] . ') '; } $orderby = 'a.lft'; $query = 'SELECT a.id, a.title, a.alias, a.access, a.path AS route, ' . 'a.created_time created, a.modified_time modified ' . 'FROM #__categories AS a ' . 'WHERE '. implode(' AND ',$where) . ( $xmap->view != 'xml' ? "\n ORDER BY " . $orderby . "" : '' ); $db->setQuery($query); #echo nl2br(str_replace('#__','jos_',$db->getQuery()));exit; $items = $db->loadObjectList(); if (count($items) > 0) { $xmap->changeLevel(1); foreach ($items as $item) { $node = new stdclass(); $node->id = $parent->id; $node->uid = $parent->uid . 'c' . $item->id; $node->browserNav = $parent->browserNav; $node->priority = $params['cat_priority']; $node->changefreq = $params['cat_changefreq']; $node->name = $item->title; $node->expandible = true; $node->secure = $parent->secure; // TODO: Should we include category name or metakey here? // $node->keywords = $item->metakey; $node->newsItem = 0; // For the google news we should use te publication date instead // the last modification date. See if ($xmap->isNews || !$item->modified) $item->modified = $item->created; $node->slug = $item->route ? ($item->id . ':' . $item->route) : $item->id; $node->link = ContentHelperRoute::getCategoryRoute($node->slug); if (strpos($node->link,'Itemid=')===false) { $node->itemid = $itemid; $node->link .= '&Itemid='.$itemid; } else { $node->itemid = preg_replace('/.*Itemid=([0-9]+).*/','$1',$node->link); } if ($xmap->printNode($node)) { self::expandCategory($xmap, $parent, $item->id, $params, $node->itemid); } } $xmap->changeLevel(-1); } // Include Category's content self::includeCategoryContent($xmap, $parent, $catid, $params, $itemid); return true; } /** * Get all content items within a content category. * Returns an array of all contained content items. * * @since 2.0 */ static function includeCategoryContent($xmap, $parent, $catid, &$params,$Itemid) { $db = JFactory::getDBO(); // We do not do ordering for XML sitemap. if ($xmap->view != 'xml') { $orderby = self::buildContentOrderBy($parent->params,$parent->id,$Itemid); //$orderby = !empty($menuparams['orderby']) ? $menuparams['orderby'] : (!empty($menuparams['orderby_sec']) ? $menuparams['orderby_sec'] : 'rdate' ); //$orderby = self::orderby_sec($orderby); } if ($params['include_archived']) { $where = array('(a.state = 1 or a.state = 2)'); } else { $where = array('a.state = 1'); } if ($catid=='featured') { $where[] = 'a.featured=1'; } elseif ($catid=='archived') { $where = array('a.state=2'); } elseif(is_numeric($catid)) { $where[] = 'a.catid='.(int) $catid; } if ($params['max_art_age'] || $xmap->isNews) { $days = (($xmap->isNews && ($params['max_art_age'] > 3 || !$params['max_art_age'])) ? 3 : $params['max_art_age']); $where[] = "( a.created >= '" . date('Y-m-d H:i:s', time() - $days * 86400) . "' ) "; } if ($params['language_filter'] ) { $where[] = 'a.language in ('.$db->quote(JFactory::getLanguage()->getTag()).','.$db->quote('*').')'; } if (!$params['show_unauth'] ){ $where[] = 'a.access IN (' . $params['groups'] . ') '; } $query = 'SELECT a.id, a.title, a.alias, a.catid, ' . 'a.created created, a.modified modified' . ',a.language' . (($params['add_images'] || $params['add_pagebreaks']) ? ',a.introtext, a.fulltext ' : ' ') . 'FROM #__content AS a ' . ($catid =='featured'? 'LEFT JOIN #__content_frontpage AS fp ON a.id = fp.content_id ' : ' ') . 'WHERE ' . implode(' AND ',$where) . ' AND ' . ' (a.publish_up = ' . $params['nullDate'] . ' OR a.publish_up <= ' . $params['nowDate'] . ') AND ' . ' (a.publish_down = ' . $params['nullDate'] . ' OR a.publish_down >= ' . $params['nowDate'] . ') ' . ( $xmap->view != 'xml' ? "\n ORDER BY $orderby " : '' ) . ( $params['max_art'] ? "\n LIMIT {$params['max_art']}" : ''); $db->setQuery($query); //echo nl2br(str_replace('#__','mgbj2_',$db->getQuery())); $items = $db->loadObjectList(); if (count($items) > 0) { $xmap->changeLevel(1); foreach ($items as $item) { $node = new stdclass(); $node->id = $parent->id; $node->uid = $parent->uid . 'a' . $item->id; $node->browserNav = $parent->browserNav; $node->priority = $params['art_priority']; $node->changefreq = $params['art_changefreq']; $node->name = $item->title; $node->modified = $item->modified; $node->expandible = false; $node->secure = $parent->secure; // TODO: Should we include category name or metakey here? // $node->keywords = $item->metakey; $node->newsItem = 1; $node->language = $item->language; // For the google news we should use te publication date instead // the last modification date. See if ($xmap->isNews || !$node->modified) $node->modified = $item->created; $node->slug = $item->alias ? ($item->id . ':' . $item->alias) : $item->id; //$node->catslug = $item->category_route ? ($catid . ':' . $item->category_route) : $catid; $node->catslug = $item->catid; $node->link = ContentHelperRoute::getArticleRoute($node->slug, $node->catslug); // Add images to the article $text = @$item->introtext . @$item->fulltext; if ($params['add_images']) { $node->images = XmapHelper::getImages($text,$params['max_images']); } if ($params['add_pagebreaks']) { $subnodes = XmapHelper::getPagebreaks($text,$node->link); $node->expandible = (count($subnodes) > 0); // This article has children } if ($xmap->printNode($node) && $node->expandible) { self::printNodes($xmap, $parent, $params, $subnodes); } } $xmap->changeLevel(-1); } return true; } static private function printNodes($xmap, $parent, &$params, &$subnodes) { $xmap->changeLevel(1); $i=0; foreach ($subnodes as $subnode) { $i++; $subnode->id = $parent->id; $subnode->uid = $parent->uid.'p'.$i; $subnode->browserNav = $parent->browserNav; $subnode->priority = $params['art_priority']; $subnode->changefreq = $params['art_changefreq']; $subnode->secure = $parent->secure; $xmap->printNode($subnode); } $xmap->changeLevel(-1); } /** * Generates the order by part of the query according to the * menu/component/user settings. It checks if the current user * has already changed the article's ordering column in the frontend * * @param JRegistry $params * @param int $parentId * @param int $itemid * @return string */ static function buildContentOrderBy(&$params,$parentId,$itemid) { $app = JFactory::getApplication('site'); // Case when the child gets a different menu itemid than it's parent if ($parentId != $itemid) { $menu = $app->getMenu(); $item = $menu->getItem($itemid); $menuParams = clone($params); $itemParams = new JRegistry($item->params); $menuParams->merge($itemParams); } else { $menuParams =& $params; } $filter_order = $app->getUserStateFromRequest('com_content.category.list.' . $itemid . '.filter_order', 'filter_order', '', 'string'); $filter_order_Dir = $app->getUserStateFromRequest('com_content.category.list.' . $itemid . '.filter_order_Dir', 'filter_order_Dir', '', 'cmd'); $orderby = ' '; if ($filter_order && $filter_order_Dir) { $orderby .= $filter_order . ' ' . $filter_order_Dir . ', '; } $articleOrderby = $menuParams->get('orderby_sec', 'rdate'); $articleOrderDate = $menuParams->get('order_date'); //$categoryOrderby = $menuParams->def('orderby_pri', ''); $secondary = ContentHelperQuery::orderbySecondary($articleOrderby, $articleOrderDate) . ', '; //$primary = ContentHelperQuery::orderbyPrimary($categoryOrderby); //$orderby .= $primary . ' ' . $secondary . ' a.created '; $orderby .= $secondary . ' a.created '; return $orderby; } }PK �s!]nPō� � com_content.xmlnu &1i� <?xml version="1.0" encoding="UTF-8"?> <!-- $Id$ --> <extension type="plugin" group="xmap" version="2.5" method="upgrade"> <name>Xmap Content Plugin</name> <author>Guillermo Vargas</author> <creationDate>02-05-2014</creationDate> <copyright>GNU GPL</copyright> <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license> <authorEmail>guille@vargas.co.cr</authorEmail> <authorUrl>joomla.vargas.co.cr</authorUrl> <version>2.0.4c</version> <description>XMAP_CONTENT_PLUGIN_DESCRIPTION</description> <files> <filename plugin="com_content">com_content.php</filename> <filename>index.html</filename> </files> <languages folder="language"> <!-- these files will be installed in the administrator/language folder. --> <language tag="en-GB">en-GB.plg_xmap_com_content.ini</language> <language tag="es-ES">es-ES.plg_xmap_com_content.ini</language> <language tag="fr-FR">fr-FR.plg_xmap_com_content.ini</language> <language tag="fa-IR">fa-IR.plg_xmap_com_content.ini</language> <language tag="cs-CZ">cs-CZ.plg_xmap_com_content.ini</language> <language tag="nl-NL">nl-NL.plg_xmap_com_content.ini</language> <language tag="ru-RU">ru-RU.plg_xmap_com_content.ini</language> </languages> <config> <fields name="params"> <fieldset name="basic"> <field name="expand_categories" type="list" default="1" label="XMAP_SETTING_EXPAND_CATEGORIES" description="XMAP_SETTING_EXPAND_CATEGORIES_DESC"> <option value="0">XMAP_OPTION_NEVER</option> <option value="1">XMAP_OPTION_ALWAYS</option> <option value="2">XMAP_OPTION_XML_ONLY</option> <option value="3">XMAP_OPTION_HTML_ONLY</option> </field> <field name="expand_featured" type="list" default="1" label="XMAP_SETTING_EXPAND_FEATURED" description="XMAP_SETTING_EXPAND_FEATURED_DESC"> <option value="0">XMAP_OPTION_NEVER</option> <option value="1">XMAP_OPTION_ALWAYS</option> <option value="2">XMAP_OPTION_XML_ONLY</option> <option value="3">XMAP_OPTION_HTML_ONLY</option> </field> <field name="include_archived" type="list" default="2" label="XMAP_SETTING_INCLUDE_ARCHIVED" description="XMAP_SETTING_INCLUDE_ARCHIVED_DESC"> <option value="0">XMAP_OPTION_NEVER</option> <option value="1">XMAP_OPTION_ALWAYS</option> <option value="2">XMAP_OPTION_XML_ONLY</option> <option value="3">XMAP_OPTION_HTML_ONLY</option> </field> <field name="show_unauth" type="list" default="0" label="XMAP_SETTING_SHOW_UNAUTH_LINKS" description="XMAP_SETTING_SHOW_UNAUTH_LINKS_DESC"> <option value="0">XMAP_OPTION_NEVER</option> <option value="1">XMAP_OPTION_ALWAYS</option> <option value="2">XMAP_OPTION_XML_ONLY</option> <option value="3">XMAP_OPTION_HTML_ONLY</option> </field> <field name="add_pagebreaks" type="list" default="1" label="XMAP_SETTING_ADD_PAGEBREAKS_LABEL" description="XMAP_SETTING_ADD_PAGEBREAKS_DESC"> <option value="0">XMAP_OPTION_NEVER</option> <option value="1">XMAP_OPTION_ALWAYS</option> <option value="2">XMAP_OPTION_XML_ONLY</option> <option value="3">XMAP_OPTION_HTML_ONLY</option> </field> <field name="max_art" type="text" default="0" label="XMAP_SETTING_MAX_ART_CAT" description="XMAP_SETTING_MAX_ART_CAT_DESC" /> <field name="max_art_age" type="text" default="0" label="XMAP_SETTING_MAX_ART_AGE" description="XMAP_SETTING_MAX_ART_AGE_DESC" /> </fieldset> <fieldset name="xml"> <field name="add_images" type="list" default="1" label="XMAP_SETTING_ADD_IMAGES_LABEL" description="XMAP_SETTING_ADD_IMAGES_DESC"> <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="cat_priority" type="list" default="-1" label="XMAP_SETTING_CAT_PRIORITY" description="XMAP_SETTING_CAT_PRIORITY_DESC"> <option value="-1">XMAP_OPTION_USE_PARENT_MENU</option> <option value="0.0">0.0</option> <option value="0.1">0.1</option> <option value="0.2">0.2</option> <option value="0.3">0.3</option> <option value="0.4">0.4</option> <option value="0.5">0.5</option> <option value="0.6">0.6</option> <option value="0.7">0.7</option> <option value="0.8">0.8</option> <option value="0.9">0.9</option> <option value="1">1</option> </field> <field name="cat_changefreq" type="list" default="-1" label="XMAP_SETTING_CAT_CHANCE_FREQ" description="XMAP_SETTING_CAT_CHANCE_FREQ_DESC"> <option value="-1">XMAP_OPTION_USE_PARENT_MENU</option> <option value="always">XMAP_OPTION_ALWAYS</option> <option value="hourly">XMAP_OPTION_HOURLY</option> <option value="daily">XMAP_OPTION_DAILY</option> <option value="weekly">XMAP_OPTION_WEEKLY</option> <option value="monthly">XMAP_OPTION_MONTHLY</option> <option value="yearly">XMAP_OPTION_YEARLY</option> <option value="never">XMAP_OPTION_NEVER</option> </field> <field name="art_priority" type="list" default="-1" label="XMAP_SETTING_ART_PRIORITY" description="XMAP_SETTING_ART_PRIORITY_DESC"> <option value="-1">XMAP_OPTION_USE_PARENT_MENU</option> <option value="0.0">0.0</option> <option value="0.1">0.1</option> <option value="0.2">0.2</option> <option value="0.3">0.3</option> <option value="0.4">0.4</option> <option value="0.5">0.5</option> <option value="0.6">0.6</option> <option value="0.7">0.7</option> <option value="0.8">0.8</option> <option value="0.9">0.9</option> <option value="1">1</option> </field> <field name="art_changefreq" type="list" default="-1" label="XMAP_SETTING_ART_CHANCE_FREQ" description="XMAP_SETTING_ART_CHANCE_FREQ_DESC"> <option value="-1">XMAP_OPTION_USE_PARENT_MENU</option> <option value="always">XMAP_OPTION_ALWAYS</option> <option value="hourly">XMAP_OPTION_HOURLY</option> <option value="daily">XMAP_OPTION_DAILY</option> <option value="weekly">XMAP_OPTION_WEEKLY</option> <option value="monthly">XMAP_OPTION_MONTHLY</option> <option value="yearly">XMAP_OPTION_YEARLY</option> <option value="never">XMAP_OPTION_NEVER</option> </field> </fieldset> <fieldset name="news"> <field name="keywords" type="list" default="1" label="XMAP_SETTING_NEWS_KEYWORDS_LABEL" description="XMAP_SETTING_NEWS_KEYWORDS_DESC"> <option value="metakey">XMAP_SETTING_NEWS_KEYWORDS_METAKEYS</option> <option value="category">XMAP_SETTING_NEWS_KEYWORDS_CATTITLE</option> <option value="both">XMAP_SETTING_NEWS_KEYWORDS_METAKEYS_CATTITLE</option> <option value="none">XMAP_SETTING_NEWS_KEYWORDS_NONE</option> </field> </fieldset> </fields> </config> </extension> PK �s!]�6� index.htmlnu &1i� <!DOCTYPE html><title></title>PK t!]���Ts s js/admin-article-readmore.jsnu &1i� /** * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ window.insertReadmore = function(editor) { "use strict"; if (!Joomla.getOptions('xtd-readmore')) { // Something went wrong! return false; } var content, options = window.Joomla.getOptions('xtd-readmore'); if (window.Joomla && window.Joomla.editors && window.Joomla.editors.instances && window.Joomla.editors.instances.hasOwnProperty(editor)) { content = window.Joomla.editors.instances[editor].getValue(); } else { content = (new Function('return ' + options.editor))(); } if (content.match(/<hr\s+id=("|')system-readmore("|')\s*\/*>/i)) { alert(options.exists); return false; } else { /** Use the API, if editor supports it **/ if (window.Joomla && window.Joomla.editors && window.Joomla.editors.instances && window.Joomla.editors.instances.hasOwnProperty(editor)) { window.Joomla.editors.instances[editor].replaceSelection('<hr id="system-readmore" />'); } else { window.jInsertEditorText('<hr id="system-readmore" />', editor); } } }; PK t!]��� � js/admin-articles-modal.min.jsnu &1i� !function(){"use strict";window.jSelectArticle=function(a,b,c,d,e,f){var h,i,g="";return Joomla.getOptions("xtd-articles")?(h=Joomla.getOptions("xtd-articles").editor,""!==f&&(g=' hreflang="'+f+'"'),i="<a"+g+' href="'+e+'">'+b+"</a>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(h)?window.parent.Joomla.editors.instances[h].replaceSelection(i):window.parent.jInsertEditorText(i,h),void window.parent.jModalClose()):(window.parent.jModalClose(),!1)},document.addEventListener("DOMContentLoaded",function(){for(var a=document.querySelectorAll(".select-link"),b=0,c=a.length;c>b;b++)a[b].addEventListener("click",function(a){a.preventDefault();var b=a.target.getAttribute("data-function");"jSelectArticle"===b?window[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),a.target.getAttribute("data-cat-id"),null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language")):window.parent[b](a.target.getAttribute("data-id"),a.target.getAttribute("data-title"),a.target.getAttribute("data-cat-id"),null,a.target.getAttribute("data-uri"),a.target.getAttribute("data-language"))})})}();PK t!]-T3�� � js/admin-article-pagebreak.jsnu &1i� /** * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ (function() { "use strict"; window.insertPagebreak = function(editor) { /** Get the pagebreak title **/ var alt, tag, title = document.getElementById('title').value; if (!window.parent.Joomla.getOptions('xtd-pagebreak')) { // Something went wrong! window.parent.jModalClose(); return false; } /** Get the pagebreak toc alias -- not inserting for now **/ /** don't know which attribute to use... **/ alt = document.getElementById('alt').value; title = (title != '') ? 'title="' + title + '"' : ''; alt = (alt != '') ? 'alt="' + alt + '"' : ''; tag = '<hr class="system-pagebreak" ' + title + ' ' + alt + '/>'; /** Use the API, if editor supports it **/ if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) { window.parent.Joomla.editors.instances[editor].replaceSelection(tag) } else { window.parent.jInsertEditorText(tag, editor); } window.parent.jModalClose(); return false; }; })(); PK t!]_(zZ� � js/admin-article-readmore.min.jsnu &1i� window.insertReadmore=function(a){"use strict";if(!Joomla.getOptions("xtd-readmore"))return!1;var b,c=window.Joomla.getOptions("xtd-readmore");if(b=window.Joomla&&window.Joomla.editors&&window.Joomla.editors.instances&&window.Joomla.editors.instances.hasOwnProperty(a)?window.Joomla.editors.instances[a].getValue():new Function("return "+c.editor)(),b.match(/<hr\s+id=("|')system-readmore("|')\s*\/*>/i))return alert(c.exists),!1;window.Joomla&&window.Joomla.editors&&window.Joomla.editors.instances&&window.Joomla.editors.instances.hasOwnProperty(a)?window.Joomla.editors.instances[a].replaceSelection('<hr id="system-readmore" />'):window.jInsertEditorText('<hr id="system-readmore" />',a)};PK t!]�h�mm m ! js/admin-article-pagebreak.min.jsnu &1i� !function(){"use strict";window.insertPagebreak=function(a){var b,c,d=document.getElementById("title").value;return window.parent.Joomla.getOptions("xtd-pagebreak")?(b=document.getElementById("alt").value,d=""!=d?'title="'+d+'"':"",b=""!=b?'alt="'+b+'"':"",c='<hr class="system-pagebreak" '+d+" "+b+"/>",window.parent.Joomla&&window.parent.Joomla.editors&&window.parent.Joomla.editors.instances&&window.parent.Joomla.editors.instances.hasOwnProperty(a)?window.parent.Joomla.editors.instances[a].replaceSelection(c):window.parent.jInsertEditorText(c,a),window.parent.jModalClose(),!1):(window.parent.jModalClose(),!1)}}();PK t!]�Ƽ{� � js/admin-articles-modal.jsnu &1i� /** * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ (function() { "use strict"; /** * Javascript to insert the link * View element calls jSelectArticle when an article is clicked * jSelectArticle creates the link tag, sends it to the editor, * and closes the select frame. **/ window.jSelectArticle = function (id, title, catid, object, link, lang) { var hreflang = '', editor, tag; if (!Joomla.getOptions('xtd-articles')) { // Something went wrong! window.parent.jModalClose(); return false; } editor = Joomla.getOptions('xtd-articles').editor; if (lang !== '') { hreflang = ' hreflang="' + lang + '"'; } tag = '<a' + hreflang + ' href="' + link + '">' + title + '</a>'; /** Use the API, if editor supports it **/ if (window.parent.Joomla && window.parent.Joomla.editors && window.parent.Joomla.editors.instances && window.parent.Joomla.editors.instances.hasOwnProperty(editor)) { window.parent.Joomla.editors.instances[editor].replaceSelection(tag) } else { window.parent.jInsertEditorText(tag, editor); } window.parent.jModalClose(); }; document.addEventListener('DOMContentLoaded', function(){ // Get the elements var elements = document.querySelectorAll('.select-link'); for(var i = 0, l = elements.length; l>i; i++) { // Listen for click event elements[i].addEventListener('click', function (event) { event.preventDefault(); var functionName = event.target.getAttribute('data-function'); if (functionName === 'jSelectArticle') { // Used in xtd_contacts window[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), event.target.getAttribute('data-cat-id'), null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language')); } else { // Used in com_menus window.parent[functionName](event.target.getAttribute('data-id'), event.target.getAttribute('data-title'), event.target.getAttribute('data-cat-id'), null, event.target.getAttribute('data-uri'), event.target.getAttribute('data-language')); } }) } }); })(); PK �|!]jd��o �o config.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <config> <fieldset name="articles" label="JGLOBAL_ARTICLES" description="COM_CONTENT_CONFIG_ARTICLE_SETTINGS_DESC" > <field name="article_layout" type="componentlayout" label="JGLOBAL_FIELD_LAYOUT_LABEL" description="JGLOBAL_FIELD_LAYOUT_DESC" menuitems="true" extension="com_content" view="article" /> <field name="show_title" type="radio" label="JGLOBAL_SHOW_TITLE_LABEL" description="JGLOBAL_SHOW_TITLE_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="link_titles" type="radio" label="JGLOBAL_LINKED_TITLES_LABEL" description="JGLOBAL_LINKED_TITLES_DESC" class="btn-group btn-group-yesno" default="1" showon="show_title:1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="show_intro" type="radio" label="JGLOBAL_SHOW_INTRO_LABEL" description="JGLOBAL_SHOW_INTRO_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="info_block_position" type="list" label="COM_CONTENT_FIELD_INFOBLOCK_POSITION_LABEL" description="COM_CONTENT_FIELD_INFOBLOCK_POSITION_DESC" default="0" > <option value="0">COM_CONTENT_FIELD_OPTION_ABOVE</option> <option value="1">COM_CONTENT_FIELD_OPTION_BELOW</option> <option value="2">COM_CONTENT_FIELD_OPTION_SPLIT</option> </field> <field name="info_block_show_title" type="radio" label="COM_CONTENT_FIELD_INFOBLOCK_TITLE_LABEL" description="COM_CONTENT_FIELD_INFOBLOCK_TITLE_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_category" type="radio" label="JGLOBAL_SHOW_CATEGORY_LABEL" description="JGLOBAL_SHOW_CATEGORY_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="link_category" type="radio" label="JGLOBAL_LINK_CATEGORY_LABEL" description="JGLOBAL_LINK_CATEGORY_DESC" class="btn-group btn-group-yesno" default="1" showon="show_category:1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="show_parent_category" type="radio" label="JGLOBAL_SHOW_PARENT_CATEGORY_LABEL" description="JGLOBAL_SHOW_PARENT_CATEGORY_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="link_parent_category" type="radio" label="JGLOBAL_LINK_PARENT_CATEGORY_LABEL" description="JGLOBAL_LINK_PARENT_CATEGORY_DESC" class="btn-group btn-group-yesno" default="1" showon="show_parent_category:1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="spacer1" type="spacer" hr="true" /> <field name="show_associations" type="radio" label="JGLOBAL_SHOW_ASSOCIATIONS_LABEL" description="JGLOBAL_SHOW_ASSOCIATIONS_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="flags" type="radio" label="JGLOBAL_SHOW_FLAG_LABEL" description="JGLOBAL_SHOW_FLAG_DESC" class="btn-group btn-group-yesno" default="1" showon="show_associations:1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="spacer3" type="spacer" hr="true" /> <field name="show_author" type="radio" label="JGLOBAL_SHOW_AUTHOR_LABEL" description="JGLOBAL_SHOW_AUTHOR_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="link_author" type="radio" label="JGLOBAL_LINK_AUTHOR_LABEL" description="JGLOBAL_LINK_AUTHOR_DESC" class="btn-group btn-group-yesno" default="0" showon="show_author:1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="show_create_date" type="radio" label="JGLOBAL_SHOW_CREATE_DATE_LABEL" description="JGLOBAL_SHOW_CREATE_DATE_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_modify_date" type="radio" label="JGLOBAL_SHOW_MODIFY_DATE_LABEL" description="JGLOBAL_SHOW_MODIFY_DATE_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_publish_date" type="radio" label="JGLOBAL_SHOW_PUBLISH_DATE_LABEL" description="JGLOBAL_SHOW_PUBLISH_DATE_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_item_navigation" type="radio" label="JGLOBAL_SHOW_NAVIGATION_LABEL" description="JGLOBAL_SHOW_NAVIGATION_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_vote" type="radio" label="JGLOBAL_SHOW_VOTE_LABEL" description="JGLOBAL_SHOW_VOTE_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_readmore" type="radio" label="JGLOBAL_SHOW_READMORE_LABEL" description="JGLOBAL_SHOW_READMORE_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_readmore_title" type="radio" label="JGLOBAL_SHOW_READMORE_TITLE_LABEL" description="JGLOBAL_SHOW_READMORE_TITLE_DESC" class="btn-group btn-group-yesno" default="1" showon="show_readmore:1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="readmore_limit" type="number" label="JGLOBAL_SHOW_READMORE_LIMIT_LABEL" description="JGLOBAL_SHOW_READMORE_LIMIT_DESC" default="100" showon="show_readmore:1[AND]show_readmore_title:1" /> <field name="show_tags" type="radio" label="COM_CONTENT_FIELD_SHOW_TAGS_LABEL" description="COM_CONTENT_FIELD_SHOW_TAGS_DESC" id="show_tags" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="spacer2" type="spacer" hr="true" /> <field name="show_icons" type="radio" label="JGLOBAL_SHOW_ICONS_LABEL" description="JGLOBAL_SHOW_ICONS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_print_icon" type="radio" label="JGLOBAL_SHOW_PRINT_ICON_LABEL" description="JGLOBAL_SHOW_PRINT_ICON_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_email_icon" type="radio" label="JGLOBAL_SHOW_EMAIL_ICON_LABEL" description="JGLOBAL_SHOW_EMAIL_ICON_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_hits" type="radio" label="JGLOBAL_SHOW_HITS_LABEL" description="JGLOBAL_SHOW_HITS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="record_hits" type="radio" label="JGLOBAL_RECORD_HITS_LABEL" description="JGLOBAL_RECORD_HITS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="show_noauth" type="radio" label="JGLOBAL_SHOW_UNAUTH_LINKS_LABEL" description="JGLOBAL_SHOW_UNAUTH_LINKS_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="urls_position" type="radio" label="COM_CONTENT_FIELD_URLSPOSITION_LABEL" description="COM_CONTENT_FIELD_URLSPOSITION_DESC" class="btn-group btn-group-yesno" default="0" > <option value="0">COM_CONTENT_FIELD_OPTION_ABOVE</option> <option value="1">COM_CONTENT_FIELD_OPTION_BELOW</option> </field> </fieldset> <fieldset name="editinglayout" label="COM_CONTENT_EDITING_LAYOUT" description="COM_CONTENT_CONFIG_EDITOR_LAYOUT" > <field name="captcha" type="plugins" label="COM_CONTENT_FIELD_CAPTCHA_LABEL" description="COM_CONTENT_FIELD_CAPTCHA_DESC" folder="captcha" filter="cmd" useglobal="true" > <option value="0">JOPTION_DO_NOT_USE</option> </field> <field name="show_publishing_options" type="radio" label="COM_CONTENT_SHOW_PUBLISHING_OPTIONS_LABEL" description="COM_CONTENT_SHOW_PUBLISHING_OPTIONS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_article_options" type="radio" label="COM_CONTENT_SHOW_ARTICLE_OPTIONS_LABEL" description="COM_CONTENT_SHOW_ARTICLE_OPTIONS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="save_history" type="radio" label="JGLOBAL_SAVE_HISTORY_OPTIONS_LABEL" description="JGLOBAL_SAVE_HISTORY_OPTIONS_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="history_limit" type="number" label="JGLOBAL_HISTORY_LIMIT_OPTIONS_LABEL" description="JGLOBAL_HISTORY_LIMIT_OPTIONS_DESC" filter="integer" default="10" showon="save_history:1" /> <field name="show_urls_images_frontend" type="radio" label="COM_CONTENT_SHOW_IMAGES_URLS_FRONT_LABEL" description="COM_CONTENT_SHOW_IMAGES_URLS_FRONT_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_urls_images_backend" type="radio" label="COM_CONTENT_SHOW_IMAGES_URLS_BACK_LABEL" description="COM_CONTENT_SHOW_IMAGES_URLS_BACK_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="spacer3" type="spacer" hr="true" showon="show_urls_images_backend:1[OR]show_urls_images_frontend:1" /> <field name="targeta" type="list" label="COM_CONTENT_URL_FIELD_A_BROWSERNAV_LABEL" description="COM_CONTENT_URL_FIELD_BROWSERNAV_DESC" default="Parent" filter="int" showon="show_urls_images_backend:1[OR]show_urls_images_frontend:1" > <option value="0">JBROWSERTARGET_PARENT</option> <option value="1">JBROWSERTARGET_NEW</option> <option value="2">JBROWSERTARGET_POPUP</option> <option value="3">JBROWSERTARGET_MODAL</option> </field> <field name="targetb" type="list" label="COM_CONTENT_URL_FIELD_B_BROWSERNAV_LABEL" description="COM_CONTENT_URL_FIELD_BROWSERNAV_DESC" default="Parent" filter="int" showon="show_urls_images_backend:1[OR]show_urls_images_frontend:1" > <option value="0">JBROWSERTARGET_PARENT</option> <option value="1">JBROWSERTARGET_NEW</option> <option value="2">JBROWSERTARGET_POPUP</option> <option value="3">JBROWSERTARGET_MODAL</option> </field> <field name="targetc" type="list" label="COM_CONTENT_URL_FIELD_C_BROWSERNAV_LABEL" description="COM_CONTENT_URL_FIELD_BROWSERNAV_DESC" default="Parent" filter="int" showon="show_urls_images_backend:1[OR]show_urls_images_frontend:1" > <option value="0">JBROWSERTARGET_PARENT</option> <option value="1">JBROWSERTARGET_NEW</option> <option value="2">JBROWSERTARGET_POPUP</option> <option value="3">JBROWSERTARGET_MODAL</option> </field> <field name="spacer4" type="spacer" hr="true" showon="show_urls_images_backend:1[OR]show_urls_images_frontend:1" /> <field name="float_intro" type="list" label="COM_CONTENT_FLOAT_INTRO_LABEL" description="COM_CONTENT_FLOAT_DESC" showon="show_urls_images_backend:1[OR]show_urls_images_frontend:1" > <option value="right">COM_CONTENT_RIGHT</option> <option value="left">COM_CONTENT_LEFT</option> <option value="none">COM_CONTENT_NONE</option> </field> <field name="float_fulltext" type="list" label="COM_CONTENT_FLOAT_FULLTEXT_LABEL" description="COM_CONTENT_FLOAT_DESC" showon="show_urls_images_backend:1[OR]show_urls_images_frontend:1" > <option value="right">COM_CONTENT_RIGHT</option> <option value="left">COM_CONTENT_LEFT</option> <option value="none">COM_CONTENT_NONE</option> </field> </fieldset> <fieldset name="category" label="JCATEGORY" description="COM_CONTENT_CONFIG_CATEGORY_SETTINGS_DESC" > <field name="category_layout" type="componentlayout" label="JGLOBAL_FIELD_LAYOUT_LABEL" description="JGLOBAL_FIELD_LAYOUT_DESC" menuitems="true" extension="com_content" view="category" /> <field name="show_category_heading_title_text" type="radio" label="JGLOBAL_SHOW_CATEGORY_HEADING_TITLE_TEXT_LABEL" description="JGLOBAL_SHOW_CATEGORY_HEADING_TITLE_TEXT_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_category_title" type="radio" label="JGLOBAL_SHOW_CATEGORY_TITLE" description="JGLOBAL_SHOW_CATEGORY_TITLE_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_description" type="radio" label="JGLOBAL_SHOW_CATEGORY_DESCRIPTION_LABEL" description="JGLOBAL_SHOW_CATEGORY_DESCRIPTION_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_description_image" type="radio" label="JGLOBAL_SHOW_CATEGORY_IMAGE_LABEL" description="JGLOBAL_SHOW_CATEGORY_IMAGE_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="maxLevel" type="list" label="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_LABEL" description="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_DESC" default="-1" > <option value="0">JNONE</option> <option value="-1">JALL</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> <field name="show_empty_categories" type="radio" label="JGLOBAL_SHOW_EMPTY_CATEGORIES_LABEL" description="COM_CONTENT_SHOW_EMPTY_CATEGORIES_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_no_articles" type="radio" label="COM_CONTENT_NO_ARTICLES_LABEL" description="COM_CONTENT_NO_ARTICLES_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_subcat_desc" type="radio" label="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_LABEL" description="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_DESC" default="1" class="btn-group btn-group-yesno" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_cat_num_articles" type="radio" label="COM_CONTENT_NUMBER_CATEGORY_ITEMS_LABEL" description="COM_CONTENT_NUMBER_CATEGORY_ITEMS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_cat_tags" type="radio" label="COM_CONTENT_FIELD_SHOW_CAT_TAGS_LABEL" description="COM_CONTENT_FIELD_SHOW_CAT_TAGS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> </fieldset> <fieldset name="categories" label="JCATEGORIES" description="COM_CONTENT_CONFIG_CATEGORIES_SETTINGS_DESC" > <field name="show_base_description" type="radio" label="JGLOBAL_FIELD_SHOW_BASE_DESCRIPTION_LABEL" description="JGLOBAL_FIELD_SHOW_BASE_DESCRIPTION_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="maxLevelcat" type="list" label="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_LABEL" description="JGLOBAL_MAXIMUM_CATEGORY_LEVELS_DESC" default="-1" > <option value="0">JNONE</option> <option value="-1">JALL</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> <field name="show_empty_categories_cat" type="radio" label="JGLOBAL_SHOW_EMPTY_CATEGORIES_LABEL" description="COM_CONTENT_SHOW_EMPTY_CATEGORIES_DESC" class="btn-group btn-group-yesno" default="0" showon="maxLevelcat:-1,1,2,3,4,5" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_subcat_desc_cat" type="radio" label="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_LABEL" description="JGLOBAL_SHOW_SUBCATEGORIES_DESCRIPTION_DESC" class="btn-group btn-group-yesno" default="1" showon="maxLevelcat:-1,1,2,3,4,5" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_cat_num_articles_cat" type="radio" label="COM_CONTENT_NUMBER_CATEGORY_ITEMS_LABEL" description="COM_CONTENT_NUMBER_CATEGORY_ITEMS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> </fieldset> <fieldset name="blog_default_parameters" label="COM_CONTENT_CONFIG_BLOG_SETTINGS_LABEL" description="COM_CONTENT_CONFIG_BLOG_SETTINGS_DESC" > <field name="num_leading_articles" type="number" label="JGLOBAL_NUM_LEADING_ARTICLES_LABEL" description="JGLOBAL_NUM_LEADING_ARTICLES_DESC" default="1" /> <field name="num_intro_articles" type="number" label="JGLOBAL_NUM_INTRO_ARTICLES_LABEL" description="JGLOBAL_NUM_INTRO_ARTICLES_DESC" default="4" /> <field name="num_columns" type="number" label="JGLOBAL_NUM_COLUMNS_LABEL" description="JGLOBAL_NUM_COLUMNS_DESC" default="2" /> <field name="num_links" type="number" label="JGLOBAL_NUM_LINKS_LABEL" description="JGLOBAL_NUM_LINKS_DESC" default="4" /> <field name="multi_column_order" type="list" label="JGLOBAL_MULTI_COLUMN_ORDER_LABEL" description="JGLOBAL_MULTI_COLUMN_ORDER_DESC" default="0" showon="num_columns!:,0,1" > <option value="0">JGLOBAL_DOWN</option> <option value="1">JGLOBAL_ACROSS</option> </field> <field name="spacer1" type="spacer" hr="true" /> <field name="show_subcategory_content" type="list" label="JGLOBAL_SHOW_SUBCATEGORY_CONTENT_LABEL" description="JGLOBAL_SHOW_SUBCATEGORY_CONTENT_DESC" default="0" > <option value="0">JNONE</option> <option value="-1">JALL</option> <option value="1">J1</option> <option value="2">J2</option> <option value="3">J3</option> <option value="4">J4</option> <option value="5">J5</option> </field> </fieldset> <fieldset name="list_default_parameters" label="JGLOBAL_LIST_LAYOUT_OPTIONS" description="COM_CONTENT_CONFIG_LIST_SETTINGS_DESC" addfieldpath="/administrator/components/com_content/models/fields" > <field name="show_pagination_limit" type="radio" label="JGLOBAL_DISPLAY_SELECT_LABEL" description="JGLOBAL_DISPLAY_SELECT_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="filter_field" type="list" label="JGLOBAL_FILTER_FIELD_LABEL" description="JGLOBAL_FILTER_FIELD_DESC" default="hide" > <option value="hide">JHIDE</option> <option value="title">JGLOBAL_TITLE</option> <option value="author">JAUTHOR</option> <option value="hits">JGLOBAL_HITS</option> <option value="tag">JTAG</option> <option value="month">JMONTH_PUBLISHED</option> </field> <field name="show_headings" type="radio" label="JGLOBAL_SHOW_HEADINGS_LABEL" description="JGLOBAL_SHOW_HEADINGS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="list_show_date" type="list" label="JGLOBAL_SHOW_DATE_LABEL" description="JGLOBAL_SHOW_DATE_DESC" default="0" > <option value="0">JHIDE</option> <option value="created">JGLOBAL_CREATED</option> <option value="modified">JGLOBAL_MODIFIED</option> <option value="published">JPUBLISHED</option> </field> <field name="date_format" type="text" label="JGLOBAL_DATE_FORMAT_LABEL" description="JGLOBAL_DATE_FORMAT_DESC" size="15" showon="list_show_date:created,modified,published" /> <field name="list_show_hits" type="radio" label="JGLOBAL_LIST_HITS_LABEL" description="JGLOBAL_LIST_HITS_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="list_show_author" type="radio" label="JGLOBAL_LIST_AUTHOR_LABEL" description="JGLOBAL_LIST_AUTHOR_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="list_show_votes" type="voteradio" label="JGLOBAL_LIST_VOTES_LABEL" description="JGLOBAL_LIST_VOTES_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="list_show_ratings" type="voteradio" label="JGLOBAL_LIST_RATINGS_LABEL" description="JGLOBAL_LIST_RATINGS_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> </fieldset> <fieldset name="shared" label="COM_CONTENT_SHARED_LABEL" description="COM_CONTENT_SHARED_DESC" > <field name="orderby_pri" type="list" label="JGLOBAL_CATEGORY_ORDER_LABEL" description="JGLOBAL_CATEGORY_ORDER_DESC" default="none" > <option value="none">JGLOBAL_NO_ORDER</option> <option value="alpha">JGLOBAL_TITLE_ALPHABETICAL</option> <option value="ralpha">JGLOBAL_TITLE_REVERSE_ALPHABETICAL</option> <option value="order">JGLOBAL_CATEGORY_MANAGER_ORDER</option> </field> <field name="orderby_sec" type="list" label="JGLOBAL_ARTICLE_ORDER_LABEL" description="JGLOBAL_ARTICLE_ORDER_DESC" default="rdate" > <option value="rdate">JGLOBAL_MOST_RECENT_FIRST</option> <option value="date">JGLOBAL_OLDEST_FIRST</option> <option value="alpha">JGLOBAL_TITLE_ALPHABETICAL</option> <option value="ralpha">JGLOBAL_TITLE_REVERSE_ALPHABETICAL</option> <option value="author">JGLOBAL_AUTHOR_ALPHABETICAL</option> <option value="rauthor">JGLOBAL_AUTHOR_REVERSE_ALPHABETICAL</option> <option value="hits">JGLOBAL_MOST_HITS</option> <option value="rhits">JGLOBAL_LEAST_HITS</option> <option value="order">JGLOBAL_ARTICLE_MANAGER_ORDER</option> <option value="rorder">JGLOBAL_ARTICLE_MANAGER_REVERSE_ORDER</option> <option value="vote" requires="vote">JGLOBAL_VOTES_DESC</option> <option value="rvote" requires="vote">JGLOBAL_VOTES_ASC</option> <option value="rank" requires="vote">JGLOBAL_RATINGS_DESC</option> <option value="rrank" requires="vote">JGLOBAL_RATINGS_ASC</option> </field> <field name="order_date" type="list" label="JGLOBAL_ORDERING_DATE_LABEL" description="JGLOBAL_ORDERING_DATE_DESC" showon="orderby_sec:rdate,date" default="published" > <option value="created">JGLOBAL_CREATED</option> <option value="modified">JGLOBAL_MODIFIED</option> <option value="published">JPUBLISHED</option> </field> <field name="show_pagination" type="list" label="JGLOBAL_PAGINATION_LABEL" description="JGLOBAL_PAGINATION_DESC" default="2" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> <option value="2">JGLOBAL_AUTO</option> </field> <field name="show_pagination_results" type="radio" label="JGLOBAL_PAGINATION_RESULTS_LABEL" description="JGLOBAL_PAGINATION_RESULTS_DESC" class="btn-group btn-group-yesno" default="1" showon="show_pagination:1,2" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_featured" type="list" label="JGLOBAL_SHOW_FEATURED_ARTICLES_LABEL" description="JGLOBAL_SHOW_FEATURED_ARTICLES_DESC" default="show" > <option value="show">JSHOW</option> <option value="hide">JHIDE</option> <option value="only">JONLY</option> </field> </fieldset> <fieldset name="integration" label="JGLOBAL_INTEGRATION_LABEL" description="COM_CONTENT_CONFIG_INTEGRATION_SETTINGS_DESC" > <field name="integration_newsfeeds" type="note" label="JGLOBAL_FEED_TITLE" /> <field name="show_feed_link" type="radio" label="JGLOBAL_SHOW_FEED_LINK_LABEL" description="JGLOBAL_SHOW_FEED_LINK_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="feed_summary" type="list" label="JGLOBAL_FEED_SUMMARY_LABEL" description="JGLOBAL_FEED_SUMMARY_DESC" default="0" showon="show_feed_link:1" > <option value="0">JGLOBAL_INTRO_TEXT</option> <option value="1">JGLOBAL_FULL_TEXT</option> </field> <field name="feed_show_readmore" type="radio" label="JGLOBAL_FEED_SHOW_READMORE_LABEL" description="JGLOBAL_FEED_SHOW_READMORE_DESC" class="btn-group btn-group-yesno" default="0" showon="show_feed_link:1[AND]feed_summary:0" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="integration_sef" type="note" label="JGLOBAL_SEF_TITLE" /> <field name="sef_advanced" type="radio" class="btn-group btn-group-yesno btn-group-reversed" default="0" label="JGLOBAL_SEF_ADVANCED_LABEL" description="JGLOBAL_SEF_ADVANCED_DESC" filter="integer" > <option value="0">JGLOBAL_SEF_ADVANCED_LEGACY</option> <option value="1">JGLOBAL_SEF_ADVANCED_MODERN</option> </field> <field name="sef_ids" type="radio" class="btn-group btn-group-yesno" default="0" label="JGLOBAL_SEF_NOIDS_LABEL" description="JGLOBAL_SEF_NOIDS_DESC" showon="sef_advanced:1" filter="integer" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="integration_customfields" type="note" label="JGLOBAL_FIELDS_TITLE" /> <field name="custom_fields_enable" type="radio" label="JGLOBAL_CUSTOM_FIELDS_ENABLE_LABEL" description="JGLOBAL_CUSTOM_FIELDS_ENABLE_DESC" class="btn-group btn-group-yesno" default="1" > <option value="1">JYES</option> <option value="0">JNO</option> </field> </fieldset> <fieldset name="permissions" label="JCONFIG_PERMISSIONS_LABEL" description="JCONFIG_PERMISSIONS_DESC" > <field name="rules" type="rules" label="JCONFIG_PERMISSIONS_LABEL" validate="rules" filter="rules" component="com_content" section="component" /> </fieldset> </config> PK �|!]���[p p content.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <extension type="component" version="3.1" method="upgrade"> <name>com_content</name> <author>Joomla! Project</author> <creationDate>April 2006</creationDate> <copyright>(C) 2006 Open Source Matters, Inc.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <authorEmail>admin@joomla.org</authorEmail> <authorUrl>www.joomla.org</authorUrl> <version>3.0.0</version> <description>COM_CONTENT_XML_DESCRIPTION</description> <files folder="site"> <filename>content.php</filename> <filename>controller.php</filename> <filename>router.php</filename> <folder>helpers</folder> <folder>models</folder> </files> <languages folder="site"> <language tag="en-GB">language/en-GB.com_content.ini</language> </languages> <administration> <files folder="admin"> <filename>access.xml</filename> <filename>config.xml</filename> <filename>content.php</filename> <filename>controller.php</filename> <folder>controllers</folder> <folder>elements</folder> <folder>helpers</folder> <folder>models</folder> <folder>tables</folder> <folder>views</folder> </files> <languages folder="admin"> <language tag="en-GB">language/en-GB.com_content.ini</language> <language tag="en-GB">language/en-GB.com_content.sys.ini</language> </languages> </administration> </extension> PK �|!]�l<� � content.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::_('behavior.tabstate'); if (!JFactory::getUser()->authorise('core.manage', 'com_content')) { throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403); } JLoader::register('ContentHelper', __DIR__ . '/helpers/content.php'); $controller = JControllerLegacy::getInstance('Content'); $controller->execute(JFactory::getApplication()->input->get('task')); $controller->redirect(); PK �|!]�X6� views/featured/view.html.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * View class for a list of featured articles. * * @since 1.6 */ class ContentViewFeatured extends JViewLegacy { /** * The item authors * * @var stdClass * * @deprecated 4.0 To be removed with Hathor */ protected $authors; /** * An array of items * * @var array */ protected $items; /** * The pagination object * * @var JPagination */ protected $pagination; /** * The model state * * @var object */ protected $state; /** * Form object for search filters * * @var JForm */ public $filterForm; /** * The active search filters * * @var array */ public $activeFilters; /** * The sidebar markup * * @var string */ protected $sidebar; /** * Display the view * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise an Error object. */ public function display($tpl = null) { ContentHelper::addSubmenu('featured'); $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->state = $this->get('State'); $this->authors = $this->get('Authors'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); $this->vote = JPluginHelper::isEnabled('content', 'vote'); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new Exception(implode("\n", $errors), 500); } // Levels filter - Used in Hathor. // @deprecated 4.0 To be removed with Hathor $this->f_levels = array( JHtml::_('select.option', '1', JText::_('J1')), JHtml::_('select.option', '2', JText::_('J2')), JHtml::_('select.option', '3', JText::_('J3')), JHtml::_('select.option', '4', JText::_('J4')), JHtml::_('select.option', '5', JText::_('J5')), JHtml::_('select.option', '6', JText::_('J6')), JHtml::_('select.option', '7', JText::_('J7')), JHtml::_('select.option', '8', JText::_('J8')), JHtml::_('select.option', '9', JText::_('J9')), JHtml::_('select.option', '10', JText::_('J10')), ); $this->addToolbar(); $this->sidebar = JHtmlSidebar::render(); return parent::display($tpl); } /** * Add the page title and toolbar. * * @return void * * @since 1.6 */ protected function addToolbar() { $state = $this->get('State'); $canDo = JHelperContent::getActions('com_content', 'category', $this->state->get('filter.category_id')); JToolbarHelper::title(JText::_('COM_CONTENT_FEATURED_TITLE'), 'star featured'); if ($canDo->get('core.create')) { JToolbarHelper::addNew('article.add'); } if ($canDo->get('core.edit')) { JToolbarHelper::editList('article.edit'); } if ($canDo->get('core.edit.state')) { JToolbarHelper::publish('articles.publish', 'JTOOLBAR_PUBLISH', true); JToolbarHelper::unpublish('articles.unpublish', 'JTOOLBAR_UNPUBLISH', true); JToolbarHelper::custom('articles.unfeatured', 'unfeatured.png', 'featured_f2.png', 'JUNFEATURE', true); JToolbarHelper::archiveList('articles.archive'); JToolbarHelper::checkin('articles.checkin'); } if ($state->get('filter.published') == -2 && $canDo->get('core.delete')) { JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'articles.delete', 'JTOOLBAR_EMPTY_TRASH'); } elseif ($canDo->get('core.edit.state')) { JToolbarHelper::trash('articles.trash'); } if ($canDo->get('core.admin') || $canDo->get('core.options')) { JToolbarHelper::preferences('com_content'); } JToolbarHelper::help('JHELP_CONTENT_FEATURED_ARTICLES'); } /** * Returns an array of fields the table can be sorted by * * @return array Array containing the field name to sort by as the key and display text as value * * @since 3.0 */ protected function getSortFields() { return array( 'fp.ordering' => JText::_('JGRID_HEADING_ORDERING'), 'a.state' => JText::_('JSTATUS'), 'a.title' => JText::_('JGLOBAL_TITLE'), 'category_title' => JText::_('JCATEGORY'), 'access_level' => JText::_('JGRID_HEADING_ACCESS'), 'a.created_by' => JText::_('JAUTHOR'), 'language' => JText::_('JGRID_HEADING_LANGUAGE'), 'a.created' => JText::_('JDATE'), 'a.id' => JText::_('JGRID_HEADING_ID'), ); } } PK �|!]M���4 �4 views/featured/tmpl/default.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); JHtml::_('bootstrap.tooltip'); JHtml::_('behavior.multiselect'); JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_ACCESS'))); JHtml::_('formbehavior.chosen', '.multipleAuthors', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_AUTHOR'))); JHtml::_('formbehavior.chosen', '.multipleCategories', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_CATEGORY'))); JHtml::_('formbehavior.chosen', '.multipleTags', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_TAG'))); JHtml::_('formbehavior.chosen', 'select'); $user = JFactory::getUser(); $userId = $user->get('id'); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'fp.ordering'; $columns = 10; if (strpos($listOrder, 'publish_up') !== false) { $orderingColumn = 'publish_up'; } elseif (strpos($listOrder, 'publish_down') !== false) { $orderingColumn = 'publish_down'; } else { $orderingColumn = 'created'; } if ($saveOrder) { $saveOrderingUrl = 'index.php?option=com_content&task=featured.saveOrderAjax&tmpl=component'; JHtml::_('sortablelist.sortable', 'articleList', 'adminForm', strtolower($listDirn), $saveOrderingUrl); } ?> <form action="<?php echo JRoute::_('index.php?option=com_content&view=featured'); ?>" method="post" name="adminForm" id="adminForm"> <?php if (!empty( $this->sidebar)) : ?> <div id="j-sidebar-container" class="span2"> <?php echo $this->sidebar; ?> </div> <div id="j-main-container" class="span10"> <?php else : ?> <div id="j-main-container"> <?php endif; ?> <?php // Search tools bar echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this)); ?> <?php if (empty($this->items)) : ?> <div class="alert alert-no-items"> <?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?> </div> <?php else : ?> <table class="table table-striped" id="articleList"> <thead> <tr> <th width="1%" class="nowrap center hidden-phone"> <?php echo JHtml::_('searchtools.sort', '', 'fp.ordering', $listDirn, $listOrder, null, 'asc', 'JGRID_HEADING_ORDERING', 'icon-menu-2'); ?> </th> <th width="1%" class="center"> <?php echo JHtml::_('grid.checkall'); ?> </th> <th width="1%" style="min-width:55px" class="nowrap center"> <?php echo JHtml::_('searchtools.sort', 'JSTATUS', 'a.state', $listDirn, $listOrder); ?> </th> <th> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_TITLE', 'a.title', $listDirn, $listOrder); ?> </th> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_ACCESS', 'a.access', $listDirn, $listOrder); ?> </th> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JAUTHOR', 'a.created_by', $listDirn, $listOrder); ?> </th> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_LANGUAGE', 'language', $listDirn, $listOrder); ?> </th> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'COM_CONTENT_HEADING_DATE_' . strtoupper($orderingColumn), 'a.' . $orderingColumn, $listDirn, $listOrder); ?> </th> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_HITS', 'a.hits', $listDirn, $listOrder); ?> </th> <?php if ($this->vote) : ?> <?php $columns++; ?> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_VOTES', 'rating_count', $listDirn, $listOrder); ?> </th> <?php $columns++; ?> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_RATINGS', 'rating', $listDirn, $listOrder); ?> </th> <?php endif; ?> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_ID', 'a.id', $listDirn, $listOrder); ?> </th> </tr> </thead> <tfoot> <tr> <td colspan="<?php echo $columns; ?>"> <?php echo $this->pagination->getListFooter(); ?> </td> </tr> </tfoot> <tbody> <?php $count = count($this->items); ?> <?php foreach ($this->items as $i => $item) : $item->max_ordering = 0; $ordering = ($listOrder == 'fp.ordering'); $assetId = 'com_content.article.' . $item->id; $canCreate = $user->authorise('core.create', 'com_content.category.' . $item->catid); $canEdit = $user->authorise('core.edit', 'com_content.article.' . $item->id); $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $userId || $item->checked_out == 0; $canChange = $user->authorise('core.edit.state', 'com_content.article.' . $item->id) && $canCheckin; $canEditCat = $user->authorise('core.edit', 'com_content.category.' . $item->catid); $canEditOwnCat = $user->authorise('core.edit.own', 'com_content.category.' . $item->catid) && $item->category_uid == $userId; $canEditParCat = $user->authorise('core.edit', 'com_content.category.' . $item->parent_category_id); $canEditOwnParCat = $user->authorise('core.edit.own', 'com_content.category.' . $item->parent_category_id) && $item->parent_category_uid == $userId; ?> <tr class="row<?php echo $i % 2; ?>"> <td class="order nowrap center hidden-phone"> <?php $iconClass = ''; if (!$canChange) { $iconClass = ' inactive'; } elseif (!$saveOrder) { $iconClass = ' inactive tip-top hasTooltip" title="' . JHtml::_('tooltipText', 'JORDERINGDISABLED'); } ?> <span class="sortable-handler<?php echo $iconClass ?>"> <span class="icon-menu" aria-hidden="true"></span> </span> <?php if ($canChange && $saveOrder) : ?> <input type="text" style="display:none" name="order[]" size="5" value="<?php echo $item->ordering; ?>" class="width-20 text-area-order" /> <?php endif; ?> </td> <td class="center"> <?php echo JHtml::_('grid.id', $i, $item->id); ?> </td> <td class="center"> <div class="btn-group"> <?php echo JHtml::_('jgrid.published', $item->state, $i, 'articles.', $canChange, 'cb', $item->publish_up, $item->publish_down); ?> <?php echo JHtml::_('contentadministrator.featured', $item->featured, $i, $canChange); ?> <?php // Create dropdown items and render the dropdown list. if ($canChange) { JHtml::_('actionsdropdown.' . ((int) $item->state === 2 ? 'un' : '') . 'archive', 'cb' . $i, 'articles'); JHtml::_('actionsdropdown.' . ((int) $item->state === -2 ? 'un' : '') . 'trash', 'cb' . $i, 'articles'); echo JHtml::_('actionsdropdown.render', $this->escape($item->title)); } ?> </div> </td> <td class="has-context"> <div class="pull-left break-word"> <?php if ($item->checked_out) : ?> <?php echo JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, 'articles.', $canCheckin); ?> <?php endif; ?> <?php if ($canEdit) : ?> <a class="hasTooltip" href="<?php echo JRoute::_('index.php?option=com_content&task=article.edit&return=featured&id=' . $item->id); ?>" title="<?php echo JText::_('JACTION_EDIT'); ?>"> <?php echo $this->escape($item->title); ?></a> <?php else : ?> <span title="<?php echo JText::sprintf('JFIELD_ALIAS_LABEL', $this->escape($item->alias)); ?>"><?php echo $this->escape($item->title); ?></span> <?php endif; ?> <span class="small break-word"> <?php if (empty($item->note)) : ?> <?php echo JText::sprintf('JGLOBAL_LIST_ALIAS', $this->escape($item->alias)); ?> <?php else : ?> <?php echo JText::sprintf('JGLOBAL_LIST_ALIAS_NOTE', $this->escape($item->alias), $this->escape($item->note)); ?> <?php endif; ?> </span> <div class="small"> <?php $ParentCatUrl = JRoute::_('index.php?option=com_categories&task=category.edit&id=' . $item->parent_category_id . '&extension=com_content'); $CurrentCatUrl = JRoute::_('index.php?option=com_categories&task=category.edit&id=' . $item->catid . '&extension=com_content'); $EditCatTxt = JText::_('COM_CONTENT_EDIT_CATEGORY'); echo JText::_('JCATEGORY') . ': '; if ($item->category_level != '1') : if ($item->parent_category_level != '1') : echo ' » '; endif; endif; if (JFactory::getLanguage()->isRtl()) { if ($canEditCat || $canEditOwnCat) : echo '<a class="hasTooltip" href="' . $CurrentCatUrl . '" title="' . $EditCatTxt . '">'; endif; echo $this->escape($item->category_title); if ($canEditCat || $canEditOwnCat) : echo '</a>'; endif; if ($item->category_level != '1') : echo ' « '; if ($canEditParCat || $canEditOwnParCat) : echo '<a class="hasTooltip" href="' . $ParentCatUrl . '" title="' . $EditCatTxt . '">'; endif; echo $this->escape($item->parent_category_title); if ($canEditParCat || $canEditOwnParCat) : echo '</a>'; endif; endif; } else { if ($item->category_level != '1') : if ($canEditParCat || $canEditOwnParCat) : echo '<a class="hasTooltip" href="' . $ParentCatUrl . '" title="' . $EditCatTxt . '">'; endif; echo $this->escape($item->parent_category_title); if ($canEditParCat || $canEditOwnParCat) : echo '</a>'; endif; echo ' » '; endif; if ($canEditCat || $canEditOwnCat) : echo '<a class="hasTooltip" href="' . $CurrentCatUrl . '" title="' . $EditCatTxt . '">'; endif; echo $this->escape($item->category_title); if ($canEditCat || $canEditOwnCat) : echo '</a>'; endif; } ?> </div> </div> </td> <td class="small hidden-phone"> <?php echo $this->escape($item->access_level); ?> </td> <td class="small hidden-phone"> <?php if ((int) $item->created_by != 0) : ?> <?php if ($item->created_by_alias) : ?> <a class="hasTooltip" href="<?php echo JRoute::_('index.php?option=com_users&task=user.edit&id=' . (int) $item->created_by); ?>" title="<?php echo JText::_('JAUTHOR'); ?>"> <?php echo $this->escape($item->author_name); ?></a> <div class="smallsub"><?php echo JText::sprintf('JGLOBAL_LIST_ALIAS', $this->escape($item->created_by_alias)); ?></div> <?php else : ?> <a class="hasTooltip" href="<?php echo JRoute::_('index.php?option=com_users&task=user.edit&id=' . (int) $item->created_by); ?>" title="<?php echo JText::_('JAUTHOR'); ?>"> <?php echo $this->escape($item->author_name); ?></a> <?php endif; ?> <?php else : ?> <?php if ($item->created_by_alias) : ?> <?php echo JText::_('JNONE'); ?> <div class="smallsub"><?php echo JText::sprintf('JGLOBAL_LIST_ALIAS', $this->escape($item->created_by_alias)); ?></div> <?php else : ?> <?php echo JText::_('JNONE'); ?> <?php endif; ?> <?php endif; ?> </td> <td class="small hidden-phone"> <?php echo JLayoutHelper::render('joomla.content.language', $item); ?> </td> <td class="nowrap small hidden-phone"> <?php $date = $item->{$orderingColumn}; echo $date > 0 ? JHtml::_('date', $date, JText::_('DATE_FORMAT_LC4')) : '-'; ?> </td> <td class="center hidden-phone"> <span class="badge badge-info"> <?php echo (int) $item->hits; ?> </span> </td> <?php if ($this->vote) : ?> <td class="hidden-phone"> <span class="badge badge-success" > <?php echo (int) $item->rating_count; ?> </span> </td> <td class="hidden-phone"> <span class="badge badge-warning" > <?php echo (int) $item->rating; ?> </span> </td> <?php endif; ?> <td class="center hidden-phone"> <?php echo (int) $item->id; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php endif; ?> <input type="hidden" name="task" value="" /> <input type="hidden" name="featured" value="1" /> <input type="hidden" name="boxchecked" value="0" /> <?php echo JHtml::_('form.token'); ?> </div> </form> PK �|!]鎊�� � views/featured/tmpl/default.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTENT_FEATURED_VIEW_DEFAULT_TITLE"> <message> <![CDATA[COM_CONTENT_FEATURED_VIEW_DEFAULT_DESC]]> </message> </layout> </metadata> PK �|!]��ڕ� � views/article/view.html.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * View to edit an article. * * @since 1.6 */ class ContentViewArticle extends JViewLegacy { /** * The JForm object * * @var JForm */ protected $form; /** * The active item * * @var object */ protected $item; /** * The model state * * @var object */ protected $state; /** * The actions the user is authorised to perform * * @var JObject */ protected $canDo; /** * Execute and display a template script. * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise an Error object. * * @since 1.6 */ public function display($tpl = null) { if ($this->getLayout() == 'pagebreak') { return parent::display($tpl); } $this->form = $this->get('Form'); $this->item = $this->get('Item'); $this->state = $this->get('State'); $this->canDo = JHelperContent::getActions('com_content', 'article', $this->item->id); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new Exception(implode("\n", $errors), 500); } // If we are forcing a language in modal (used for associations). if ($this->getLayout() === 'modal' && $forcedLanguage = JFactory::getApplication()->input->get('forcedLanguage', '', 'cmd')) { // Set the language field to the forcedLanguage and disable changing it. $this->form->setValue('language', null, $forcedLanguage); $this->form->setFieldAttribute('language', 'readonly', 'true'); // Only allow to select categories with All language or with the forced language. $this->form->setFieldAttribute('catid', 'language', '*,' . $forcedLanguage); // Only allow to select tags with All language or with the forced language. $this->form->setFieldAttribute('tags', 'language', '*,' . $forcedLanguage); } $this->addToolbar(); return parent::display($tpl); } /** * Add the page title and toolbar. * * @return void * * @since 1.6 */ protected function addToolbar() { JFactory::getApplication()->input->set('hidemainmenu', true); $user = JFactory::getUser(); $userId = $user->id; $isNew = ($this->item->id == 0); $checkedOut = !($this->item->checked_out == 0 || $this->item->checked_out == $userId); // Built the actions for new and existing records. $canDo = $this->canDo; JToolbarHelper::title( JText::_('COM_CONTENT_PAGE_' . ($checkedOut ? 'VIEW_ARTICLE' : ($isNew ? 'ADD_ARTICLE' : 'EDIT_ARTICLE'))), 'pencil-2 article-add' ); // For new records, check the create permission. if ($isNew && (count($user->getAuthorisedCategories('com_content', 'core.create')) > 0)) { JToolbarHelper::apply('article.apply'); JToolbarHelper::save('article.save'); JToolbarHelper::save2new('article.save2new'); JToolbarHelper::cancel('article.cancel'); } else { // Since it's an existing record, check the edit permission, or fall back to edit own if the owner. $itemEditable = $canDo->get('core.edit') || ($canDo->get('core.edit.own') && $this->item->created_by == $userId); // Can't save the record if it's checked out and editable if (!$checkedOut && $itemEditable) { JToolbarHelper::apply('article.apply'); JToolbarHelper::save('article.save'); // We can save this record, but check the create permission to see if we can return to make a new one. if ($canDo->get('core.create')) { JToolbarHelper::save2new('article.save2new'); } } // If checked out, we can still save if ($canDo->get('core.create')) { JToolbarHelper::save2copy('article.save2copy'); } if (JComponentHelper::isEnabled('com_contenthistory') && $this->state->params->get('save_history', 0) && $itemEditable) { JToolbarHelper::versions('com_content.article', $this->item->id); } if (JLanguageAssociations::isEnabled() && JComponentHelper::isEnabled('com_associations')) { JToolbarHelper::custom('article.editAssociations', 'contract', 'contract', 'JTOOLBAR_ASSOCIATIONS', false, false); } JToolbarHelper::cancel('article.cancel', 'JTOOLBAR_CLOSE'); } JToolbarHelper::divider(); JToolbarHelper::help('JHELP_CONTENT_ARTICLE_MANAGER_EDIT'); } } PK �|!]�٢X X views/article/tmpl/edit.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTENT_ARTICLE_VIEW_EDIT_TITLE"> <message> <![CDATA[COM_CONTENT_ARTICLE_VIEW_EDIT_DESC]]> </message> </layout> <fieldset name="request"> <fields name="request"> <field name="id" type="hidden" default="0" /> </fields> </fieldset> </metadata> PK �|!]֏&�3 3 views/article/tmpl/edit.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; // Include the component HTML helpers. JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); JHtml::_('behavior.formvalidator'); JHtml::_('behavior.keepalive'); JHtml::_('formbehavior.chosen', '#jform_catid', null, array('disable_search_threshold' => 0 )); JHtml::_('formbehavior.chosen', '#jform_tags', null, array('placeholder_text_multiple' => JText::_('JGLOBAL_TYPE_OR_SELECT_SOME_TAGS'))); JHtml::_('formbehavior.chosen', 'select'); $this->configFieldsets = array('editorConfig'); $this->hiddenFieldsets = array('basic-limited'); $this->ignore_fieldsets = array('jmetadata', 'item_associations'); // Create shortcut to parameters. $params = clone $this->state->get('params'); $params->merge(new Registry($this->item->attribs)); $app = JFactory::getApplication(); $input = $app->input; $assoc = JLanguageAssociations::isEnabled(); JFactory::getDocument()->addScriptDeclaration(' Joomla.submitbutton = function(task) { if (task == "article.cancel" || document.formvalidator.isValid(document.getElementById("item-form"))) { jQuery("#permissions-sliders select").attr("disabled", "disabled"); ' . $this->form->getField('articletext')->save() . ' Joomla.submitform(task, document.getElementById("item-form")); // @deprecated 4.0 The following js is not needed since 3.7.0. if (task !== "article.apply") { window.parent.jQuery("#articleEdit' . (int) $this->item->id . 'Modal").modal("hide"); } } }; '); // In case of modal $isModal = $input->get('layout') == 'modal' ? true : false; $layout = $isModal ? 'modal' : 'edit'; $tmpl = $isModal || $input->get('tmpl', '', 'cmd') === 'component' ? '&tmpl=component' : ''; ?> <form action="<?php echo JRoute::_('index.php?option=com_content&layout=' . $layout . $tmpl . '&id=' . (int) $this->item->id); ?>" method="post" name="adminForm" id="item-form" class="form-validate"> <?php echo JLayoutHelper::render('joomla.edit.title_alias', $this); ?> <div class="form-horizontal"> <?php echo JHtml::_('bootstrap.startTabSet', 'myTab', array('active' => 'general')); ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'general', JText::_('COM_CONTENT_ARTICLE_CONTENT')); ?> <div class="row-fluid"> <div class="span9"> <fieldset class="adminform"> <?php echo $this->form->getInput('articletext'); ?> </fieldset> </div> <div class="span3"> <?php echo JLayoutHelper::render('joomla.edit.global', $this); ?> </div> </div> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php // Do not show the images and links options if the edit form is configured not to. ?> <?php if ($params->get('show_urls_images_backend') == 1) : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'images', JText::_('COM_CONTENT_FIELDSET_URLS_AND_IMAGES')); ?> <div class="row-fluid form-horizontal-desktop"> <div class="span6"> <?php echo $this->form->renderField('images'); ?> <?php foreach ($this->form->getGroup('images') as $field) : ?> <?php echo $field->renderField(); ?> <?php endforeach; ?> </div> <div class="span6"> <?php foreach ($this->form->getGroup('urls') as $field) : ?> <?php echo $field->renderField(); ?> <?php endforeach; ?> </div> </div> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php $this->show_options = $params->get('show_article_options', 1); ?> <?php echo JLayoutHelper::render('joomla.edit.params', $this); ?> <?php // Do not show the publishing options if the edit form is configured not to. ?> <?php if ($params->get('show_publishing_options', 1) == 1) : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'publishing', JText::_('COM_CONTENT_FIELDSET_PUBLISHING')); ?> <div class="row-fluid form-horizontal-desktop"> <div class="span6"> <?php echo JLayoutHelper::render('joomla.edit.publishingdata', $this); ?> </div> <div class="span6"> <?php echo JLayoutHelper::render('joomla.edit.metadata', $this); ?> </div> </div> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php if ( ! $isModal && $assoc) : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'associations', JText::_('JGLOBAL_FIELDSET_ASSOCIATIONS')); ?> <?php echo $this->loadTemplate('associations'); ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php elseif ($isModal && $assoc) : ?> <div class="hidden"><?php echo $this->loadTemplate('associations'); ?></div> <?php endif; ?> <?php if ($this->canDo->get('core.admin')) : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'editor', JText::_('COM_CONTENT_SLIDER_EDITOR_CONFIG')); ?> <?php echo $this->form->renderFieldset('editorConfig'); ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php if ($this->canDo->get('core.admin')) : ?> <?php echo JHtml::_('bootstrap.addTab', 'myTab', 'permissions', JText::_('COM_CONTENT_FIELDSET_RULES')); ?> <?php echo $this->form->getInput('rules'); ?> <?php echo JHtml::_('bootstrap.endTab'); ?> <?php endif; ?> <?php echo JHtml::_('bootstrap.endTabSet'); ?> <input type="hidden" name="task" value="" /> <input type="hidden" name="return" value="<?php echo $input->get('return', null, 'BASE64'); ?>" /> <input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>" /> <?php echo JHtml::_('form.token'); ?> </div> </form> PK �|!]A�z_ _ views/article/tmpl/modal.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::_('bootstrap.tooltip', '.hasTooltip', array('placement' => 'bottom')); // @deprecated 4.0 the function parameter, the inline js and the buttons are not needed since 3.7.0. $function = JFactory::getApplication()->input->getCmd('function', 'jEditArticle_' . (int) $this->item->id); // Function to update input title when changed JFactory::getDocument()->addScriptDeclaration(' function jEditArticleModal() { if (window.parent && document.formvalidator.isValid(document.getElementById("item-form"))) { return window.parent.' . $this->escape($function) . '(document.getElementById("jform_title").value); } } '); ?> <button id="applyBtn" type="button" class="hidden" onclick="Joomla.submitbutton('article.apply'); jEditArticleModal();"></button> <button id="saveBtn" type="button" class="hidden" onclick="Joomla.submitbutton('article.save'); jEditArticleModal();"></button> <button id="closeBtn" type="button" class="hidden" onclick="Joomla.submitbutton('article.cancel');"></button> <div class="container-popup"> <?php $this->setLayout('edit'); ?> <?php echo $this->loadTemplate(); ?> </div> PK �|!]2�P�D D % views/article/tmpl/modal_metadata.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; echo JLayoutHelper::render('joomla.edit.metadata', $this); PK �|!]c���H H ) views/article/tmpl/modal_associations.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2013 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; echo JLayoutHelper::render('joomla.edit.associations', $this); PK �|!]߷ GD D $ views/article/tmpl/edit_metadata.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; echo JLayoutHelper::render('joomla.edit.metadata', $this); PK �|!]ծ\� � views/article/tmpl/pagebreak.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::_('behavior.core'); JHtml::_('behavior.polyfill', array('event'), 'lt IE 9'); JHtml::_('script', 'com_content/admin-article-pagebreak.min.js', array('version' => 'auto', 'relative' => true)); $document = JFactory::getDocument(); $this->eName = JFactory::getApplication()->input->getCmd('e_name', ''); $this->eName = preg_replace('#[^A-Z0-9\-\_\[\]]#i', '', $this->eName); $document->setTitle(JText::_('COM_CONTENT_PAGEBREAK_DOC_TITLE')); ?> <div class="container-popup"> <form class="form-horizontal"> <div class="control-group"> <label for="title" class="control-label"><?php echo JText::_('COM_CONTENT_PAGEBREAK_TITLE'); ?></label> <div class="controls"><input type="text" id="title" name="title" /></div> </div> <div class="control-group"> <label for="alias" class="control-label"><?php echo JText::_('COM_CONTENT_PAGEBREAK_TOC'); ?></label> <div class="controls"><input type="text" id="alt" name="alt" /></div> </div> <button onclick="insertPagebreak('<?php echo $this->eName; ?>');" class="btn btn-success pull-right"> <?php echo JText::_('COM_CONTENT_PAGEBREAK_INSERT_BUTTON'); ?> </button> </form> </div> PK �|!]����H H ( views/article/tmpl/edit_associations.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2012 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; echo JLayoutHelper::render('joomla.edit.associations', $this); PK �|!]q�^y� � views/articles/tmpl/modal.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $app = JFactory::getApplication(); if ($app->isClient('site')) { JSession::checkToken('get') or die(JText::_('JINVALID_TOKEN')); } JLoader::register('ContentHelperRoute', JPATH_ROOT . '/components/com_content/helpers/route.php'); // Include the component HTML helpers. JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); JHtml::_('behavior.core'); JHtml::_('behavior.polyfill', array('event'), 'lt IE 9'); JHtml::_('script', 'com_content/admin-articles-modal.min.js', array('version' => 'auto', 'relative' => true)); JHtml::_('bootstrap.tooltip', '.hasTooltip', array('placement' => 'bottom')); JHtml::_('bootstrap.popover', '.hasPopover', array('placement' => 'bottom')); JHtml::_('behavior.multiselect'); JHtml::_('formbehavior.chosen', '.multipleTags', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_TAG'))); JHtml::_('formbehavior.chosen', '.multipleCategories', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_CATEGORY'))); JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_ACCESS'))); JHtml::_('formbehavior.chosen', '.multipleAuthors', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_AUTHOR'))); JHtml::_('formbehavior.chosen', 'select'); // Special case for the search field tooltip. $searchFilterDesc = $this->filterForm->getFieldAttribute('search', 'description', null, 'filter'); JHtml::_('bootstrap.tooltip', '#filter_search', array('title' => JText::_($searchFilterDesc), 'placement' => 'bottom')); $function = $app->input->getCmd('function', 'jSelectArticle'); $editor = $app->input->getCmd('editor', ''); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $onclick = $this->escape($function); if (!empty($editor)) { // This view is used also in com_menus. Load the xtd script only if the editor is set! JFactory::getDocument()->addScriptOptions('xtd-articles', array('editor' => $editor)); $onclick = "jSelectArticle"; } ?> <div class="container-popup"> <form action="<?php echo JRoute::_('index.php?option=com_content&view=articles&layout=modal&tmpl=component&function=' . $function . '&' . JSession::getFormToken() . '=1&editor=' . $editor); ?>" method="post" name="adminForm" id="adminForm" class="form-inline"> <?php echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this)); ?> <div class="clearfix"></div> <?php if (empty($this->items)) : ?> <div class="alert alert-no-items"> <?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?> </div> <?php else : ?> <table class="table table-striped table-condensed"> <thead> <tr> <th width="1%" class="center nowrap"> <?php echo JHtml::_('searchtools.sort', 'JSTATUS', 'a.state', $listDirn, $listOrder); ?> </th> <th class="title"> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_TITLE', 'a.title', $listDirn, $listOrder); ?> </th> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_ACCESS', 'a.access', $listDirn, $listOrder); ?> </th> <th width="15%" class="nowrap"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_LANGUAGE', 'language', $listDirn, $listOrder); ?> </th> <th width="5%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JDATE', 'a.created', $listDirn, $listOrder); ?> </th> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_ID', 'a.id', $listDirn, $listOrder); ?> </th> </tr> </thead> <tfoot> <tr> <td colspan="6"> <?php echo $this->pagination->getListFooter(); ?> </td> </tr> </tfoot> <tbody> <?php $iconStates = array( -2 => 'icon-trash', 0 => 'icon-unpublish', 1 => 'icon-publish', 2 => 'icon-archive', ); ?> <?php foreach ($this->items as $i => $item) : ?> <?php if ($item->language && JLanguageMultilang::isEnabled()) { $tag = strlen($item->language); if ($tag == 5) { $lang = substr($item->language, 0, 2); } elseif ($tag == 6) { $lang = substr($item->language, 0, 3); } else { $lang = ''; } } elseif (!JLanguageMultilang::isEnabled()) { $lang = ''; } ?> <tr class="row<?php echo $i % 2; ?>"> <td class="center"> <span class="<?php echo $iconStates[$this->escape($item->state)]; ?>" aria-hidden="true"></span> </td> <td> <?php $attribs = 'data-function="' . $this->escape($onclick) . '"' . ' data-id="' . $item->id . '"' . ' data-title="' . $this->escape($item->title) . '"' . ' data-cat-id="' . $this->escape($item->catid) . '"' . ' data-uri="' . $this->escape(ContentHelperRoute::getArticleRoute($item->id, $item->catid, $item->language)) . '"' . ' data-language="' . $this->escape($lang) . '"'; ?> <a class="select-link" href="javascript:void(0)" <?php echo $attribs; ?>> <?php echo $this->escape($item->title); ?></a> <span class="small break-word"> <?php if (empty($item->note)) : ?> <?php echo JText::sprintf('JGLOBAL_LIST_ALIAS', $this->escape($item->alias)); ?> <?php else : ?> <?php echo JText::sprintf('JGLOBAL_LIST_ALIAS_NOTE', $this->escape($item->alias), $this->escape($item->note)); ?> <?php endif; ?> </span> <div class="small"> <?php echo JText::_('JCATEGORY') . ': ' . $this->escape($item->category_title); ?> </div> </td> <td class="small hidden-phone"> <?php echo $this->escape($item->access_level); ?> </td> <td class="small"> <?php echo JLayoutHelper::render('joomla.content.language', $item); ?> </td> <td class="nowrap small hidden-phone"> <?php echo JHtml::_('date', $item->created, JText::_('DATE_FORMAT_LC4')); ?> </td> <td class="nowrap small hidden-phone"> <?php echo (int) $item->id; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php endif; ?> <input type="hidden" name="task" value="" /> <input type="hidden" name="boxchecked" value="0" /> <input type="hidden" name="forcedLanguage" value="<?php echo $app->input->get('forcedLanguage', '', 'CMD'); ?>" /> <?php echo JHtml::_('form.token'); ?> </form> </div> PK �|!]Ux� � * views/articles/tmpl/default_batch_body.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2015 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $published = (int) $this->state->get('filter.published'); ?> <div class="container-fluid"> <div class="row-fluid"> <div class="control-group span6"> <div class="controls"> <?php echo JHtml::_('batch.language'); ?> </div> </div> <div class="control-group span6"> <div class="controls"> <?php echo JHtml::_('batch.access'); ?> </div> </div> </div> <div class="row-fluid"> <?php if ($published >= 0) : ?> <div class="control-group span6"> <div class="controls"> <?php echo JHtml::_('batch.item', 'com_content'); ?> </div> </div> <?php endif; ?> <div class="control-group span6"> <div class="controls"> <?php echo JHtml::_('batch.tag'); ?> </div> </div> </div> </div> PK �|!]�����8 �8 views/articles/tmpl/default.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JHtml::addIncludePath(JPATH_COMPONENT . '/helpers/html'); JHtml::_('bootstrap.tooltip'); JHtml::_('behavior.multiselect'); JHtml::_('formbehavior.chosen', '.multipleTags', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_TAG'))); JHtml::_('formbehavior.chosen', '.multipleCategories', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_CATEGORY'))); JHtml::_('formbehavior.chosen', '.multipleAccessLevels', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_ACCESS'))); JHtml::_('formbehavior.chosen', '.multipleAuthors', null, array('placeholder_text_multiple' => JText::_('JOPTION_SELECT_AUTHOR'))); JHtml::_('formbehavior.chosen', 'select'); $app = JFactory::getApplication(); $user = JFactory::getUser(); $userId = $user->get('id'); $listOrder = $this->escape($this->state->get('list.ordering')); $listDirn = $this->escape($this->state->get('list.direction')); $saveOrder = $listOrder == 'a.ordering'; $columns = 10; if (strpos($listOrder, 'publish_up') !== false) { $orderingColumn = 'publish_up'; } elseif (strpos($listOrder, 'publish_down') !== false) { $orderingColumn = 'publish_down'; } elseif (strpos($listOrder, 'modified') !== false) { $orderingColumn = 'modified'; } else { $orderingColumn = 'created'; } if ($saveOrder) { $saveOrderingUrl = 'index.php?option=com_content&task=articles.saveOrderAjax&tmpl=component'; JHtml::_('sortablelist.sortable', 'articleList', 'adminForm', strtolower($listDirn), $saveOrderingUrl); } $assoc = JLanguageAssociations::isEnabled(); ?> <form action="<?php echo JRoute::_('index.php?option=com_content&view=articles'); ?>" method="post" name="adminForm" id="adminForm"> <?php if (!empty( $this->sidebar)) : ?> <div id="j-sidebar-container" class="span2"> <?php echo $this->sidebar; ?> </div> <div id="j-main-container" class="span10"> <?php else : ?> <div id="j-main-container"> <?php endif; ?> <?php // Search tools bar echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this)); ?> <?php if (empty($this->items)) : ?> <div class="alert alert-no-items"> <?php echo JText::_('JGLOBAL_NO_MATCHING_RESULTS'); ?> </div> <?php else : ?> <table class="table table-striped" id="articleList"> <thead> <tr> <th width="1%" class="nowrap center hidden-phone"> <?php echo JHtml::_('searchtools.sort', '', 'a.ordering', $listDirn, $listOrder, null, 'asc', 'JGRID_HEADING_ORDERING', 'icon-menu-2'); ?> </th> <th width="1%" class="center"> <?php echo JHtml::_('grid.checkall'); ?> </th> <th width="1%" class="nowrap center"> <?php echo JHtml::_('searchtools.sort', 'JSTATUS', 'a.state', $listDirn, $listOrder); ?> </th> <th style="min-width:100px" class="nowrap"> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_TITLE', 'a.title', $listDirn, $listOrder); ?> </th> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_ACCESS', 'a.access', $listDirn, $listOrder); ?> </th> <?php if ($assoc) : ?> <?php $columns++; ?> <th width="5%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'COM_CONTENT_HEADING_ASSOCIATION', 'association', $listDirn, $listOrder); ?> </th> <?php endif; ?> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JAUTHOR', 'a.created_by', $listDirn, $listOrder); ?> </th> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_LANGUAGE', 'language', $listDirn, $listOrder); ?> </th> <th width="10%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'COM_CONTENT_HEADING_DATE_' . strtoupper($orderingColumn), 'a.' . $orderingColumn, $listDirn, $listOrder); ?> </th> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_HITS', 'a.hits', $listDirn, $listOrder); ?> </th> <?php if ($this->vote) : ?> <?php $columns++; ?> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_VOTES', 'rating_count', $listDirn, $listOrder); ?> </th> <?php $columns++; ?> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGLOBAL_RATINGS', 'rating', $listDirn, $listOrder); ?> </th> <?php endif; ?> <th width="1%" class="nowrap hidden-phone"> <?php echo JHtml::_('searchtools.sort', 'JGRID_HEADING_ID', 'a.id', $listDirn, $listOrder); ?> </th> </tr> </thead> <tfoot> <tr> <td colspan="<?php echo $columns; ?>"> </td> </tr> </tfoot> <tbody> <?php foreach ($this->items as $i => $item) : $item->max_ordering = 0; $ordering = ($listOrder == 'a.ordering'); $canCreate = $user->authorise('core.create', 'com_content.category.' . $item->catid); $canEdit = $user->authorise('core.edit', 'com_content.article.' . $item->id); $canCheckin = $user->authorise('core.manage', 'com_checkin') || $item->checked_out == $userId || $item->checked_out == 0; $canEditOwn = $user->authorise('core.edit.own', 'com_content.article.' . $item->id) && $item->created_by == $userId; $canChange = $user->authorise('core.edit.state', 'com_content.article.' . $item->id) && $canCheckin; $canEditCat = $user->authorise('core.edit', 'com_content.category.' . $item->catid); $canEditOwnCat = $user->authorise('core.edit.own', 'com_content.category.' . $item->catid) && $item->category_uid == $userId; $canEditParCat = $user->authorise('core.edit', 'com_content.category.' . $item->parent_category_id); $canEditOwnParCat = $user->authorise('core.edit.own', 'com_content.category.' . $item->parent_category_id) && $item->parent_category_uid == $userId; ?> <tr class="row<?php echo $i % 2; ?>" sortable-group-id="<?php echo $item->catid; ?>"> <td class="order nowrap center hidden-phone"> <?php $iconClass = ''; if (!$canChange) { $iconClass = ' inactive'; } elseif (!$saveOrder) { $iconClass = ' inactive tip-top hasTooltip" title="' . JHtml::_('tooltipText', 'JORDERINGDISABLED'); } ?> <span class="sortable-handler<?php echo $iconClass ?>"> <span class="icon-menu" aria-hidden="true"></span> </span> <?php if ($canChange && $saveOrder) : ?> <input type="text" style="display:none" name="order[]" size="5" value="<?php echo $item->ordering; ?>" class="width-20 text-area-order" /> <?php endif; ?> </td> <td class="center"> <?php echo JHtml::_('grid.id', $i, $item->id); ?> </td> <td class="center"> <div class="btn-group"> <?php echo JHtml::_('jgrid.published', $item->state, $i, 'articles.', $canChange, 'cb', $item->publish_up, $item->publish_down); ?> <?php echo JHtml::_('contentadministrator.featured', $item->featured, $i, $canChange); ?> <?php // Create dropdown items and render the dropdown list. if ($canChange) { JHtml::_('actionsdropdown.' . ((int) $item->state === 2 ? 'un' : '') . 'archive', 'cb' . $i, 'articles'); JHtml::_('actionsdropdown.' . ((int) $item->state === -2 ? 'un' : '') . 'trash', 'cb' . $i, 'articles'); echo JHtml::_('actionsdropdown.render', $this->escape($item->title)); } ?> </div> </td> <td class="has-context"> <div class="pull-left break-word"> <?php if ($item->checked_out) : ?> <?php echo JHtml::_('jgrid.checkedout', $i, $item->editor, $item->checked_out_time, 'articles.', $canCheckin); ?> <?php endif; ?> <?php if ($canEdit || $canEditOwn) : ?> <a class="hasTooltip" href="<?php echo JRoute::_('index.php?option=com_content&task=article.edit&id=' . $item->id); ?>" title="<?php echo JText::_('JACTION_EDIT'); ?>"> <?php echo $this->escape($item->title); ?></a> <?php else : ?> <span title="<?php echo JText::sprintf('JFIELD_ALIAS_LABEL', $this->escape($item->alias)); ?>"><?php echo $this->escape($item->title); ?></span> <?php endif; ?> <span class="small break-word"> <?php if (empty($item->note)) : ?> <?php echo JText::sprintf('JGLOBAL_LIST_ALIAS', $this->escape($item->alias)); ?> <?php else : ?> <?php echo JText::sprintf('JGLOBAL_LIST_ALIAS_NOTE', $this->escape($item->alias), $this->escape($item->note)); ?> <?php endif; ?> </span> <div class="small"> <?php $ParentCatUrl = JRoute::_('index.php?option=com_categories&task=category.edit&id=' . $item->parent_category_id . '&extension=com_content'); $CurrentCatUrl = JRoute::_('index.php?option=com_categories&task=category.edit&id=' . $item->catid . '&extension=com_content'); $EditCatTxt = JText::_('COM_CONTENT_EDIT_CATEGORY'); echo JText::_('JCATEGORY') . ': '; if ($item->category_level != '1') : if ($item->parent_category_level != '1') : echo ' » '; endif; endif; if (JFactory::getLanguage()->isRtl()) { if ($canEditCat || $canEditOwnCat) : echo '<a class="hasTooltip" href="' . $CurrentCatUrl . '" title="' . $EditCatTxt . '">'; endif; echo $this->escape($item->category_title); if ($canEditCat || $canEditOwnCat) : echo '</a>'; endif; if ($item->category_level != '1') : echo ' « '; if ($canEditParCat || $canEditOwnParCat) : echo '<a class="hasTooltip" href="' . $ParentCatUrl . '" title="' . $EditCatTxt . '">'; endif; echo $this->escape($item->parent_category_title); if ($canEditParCat || $canEditOwnParCat) : echo '</a>'; endif; endif; } else { if ($item->category_level != '1') : if ($canEditParCat || $canEditOwnParCat) : echo '<a class="hasTooltip" href="' . $ParentCatUrl . '" title="' . $EditCatTxt . '">'; endif; echo $this->escape($item->parent_category_title); if ($canEditParCat || $canEditOwnParCat) : echo '</a>'; endif; echo ' » '; endif; if ($canEditCat || $canEditOwnCat) : echo '<a class="hasTooltip" href="' . $CurrentCatUrl . '" title="' . $EditCatTxt . '">'; endif; echo $this->escape($item->category_title); if ($canEditCat || $canEditOwnCat) : echo '</a>'; endif; } ?> </div> </div> </td> <td class="small hidden-phone"> <?php echo $this->escape($item->access_level); ?> </td> <?php if ($assoc) : ?> <td class="hidden-phone"> <?php if ($item->association) : ?> <?php echo JHtml::_('contentadministrator.association', $item->id); ?> <?php endif; ?> </td> <?php endif; ?> <td class="small hidden-phone"> <?php if ((int) $item->created_by != 0) : ?> <?php if ($item->created_by_alias) : ?> <a class="hasTooltip" href="<?php echo JRoute::_('index.php?option=com_users&task=user.edit&id=' . (int) $item->created_by); ?>" title="<?php echo JText::_('JAUTHOR'); ?>"> <?php echo $this->escape($item->author_name); ?></a> <div class="smallsub"><?php echo JText::sprintf('JGLOBAL_LIST_ALIAS', $this->escape($item->created_by_alias)); ?></div> <?php else : ?> <a class="hasTooltip" href="<?php echo JRoute::_('index.php?option=com_users&task=user.edit&id=' . (int) $item->created_by); ?>" title="<?php echo JText::_('JAUTHOR'); ?>"> <?php echo $this->escape($item->author_name); ?></a> <?php endif; ?> <?php else : ?> <?php if ($item->created_by_alias) : ?> <?php echo JText::_('JNONE'); ?> <div class="smallsub"><?php echo JText::sprintf('JGLOBAL_LIST_ALIAS', $this->escape($item->created_by_alias)); ?></div> <?php else : ?> <?php echo JText::_('JNONE'); ?> <?php endif; ?> <?php endif; ?> </td> <td class="small hidden-phone"> <?php echo JLayoutHelper::render('joomla.content.language', $item); ?> </td> <td class="nowrap small hidden-phone"> <?php $date = $item->{$orderingColumn}; echo $date > 0 ? JHtml::_('date', $date, JText::_('DATE_FORMAT_LC4')) : '-'; ?> </td> <td class="hidden-phone center"> <span class="badge badge-info"> <?php echo (int) $item->hits; ?> </span> </td> <?php if ($this->vote) : ?> <td class="hidden-phone center"> <span class="badge badge-success" > <?php echo (int) $item->rating_count; ?> </span> </td> <td class="hidden-phone center"> <span class="badge badge-warning" > <?php echo (int) $item->rating; ?> </span> </td> <?php endif; ?> <td class="hidden-phone"> <?php echo (int) $item->id; ?> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php // Load the batch processing form. ?> <?php if ($user->authorise('core.create', 'com_content') && $user->authorise('core.edit', 'com_content') && $user->authorise('core.edit.state', 'com_content')) : ?> <?php echo JHtml::_( 'bootstrap.renderModal', 'collapseModal', array( 'title' => JText::_('COM_CONTENT_BATCH_OPTIONS'), 'footer' => $this->loadTemplate('batch_footer'), ), $this->loadTemplate('batch_body') ); ?> <?php endif; ?> <?php endif; ?> <?php echo $this->pagination->getListFooter(); ?> <input type="hidden" name="task" value="" /> <input type="hidden" name="boxchecked" value="0" /> <?php echo JHtml::_('form.token'); ?> </div> </form> PK �|!]iӂ� � views/articles/tmpl/default.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <metadata> <layout title="COM_CONTENT_ARTICLES_VIEW_DEFAULT_TITLE"> <message> <![CDATA[COM_CONTENT_ARTICLES_VIEW_DEFAULT_DESC]]> </message> </layout> <!-- Add fields to the request variables for the layout. --> <fields name="request"> <fieldset name="request" addfieldpath="/administrator/components/com_categories/models/fields" > <field name="filter_category_id" type="modal_category" label="COM_MENUS_ADMIN_CATEGORY_LABEL" description="COM_MENUS_ADMIN_CATEGORY_DESC" extension="com_content" select="true" new="true" edit="true" clear="true" filter="integer" /> <field name="filter_level" type="integer" label="COM_MENUS_ADMIN_LEVEL_LABEL" description="COM_MENUS_ADMIN_LEVEL_DESC" first="1" last="10" step="1" languages="*" filter="integer" > <option value="">JOPTION_SELECT_MAX_LEVELS</option> </field> <field name="filter_author_id" type="author" label="COM_MENUS_ADMIN_AUTHOR_LABEL" description="COM_MENUS_ADMIN_AUTHOR_DESC" multiple="true" class="multipleAuthors" filter="int_array" > <option value="0">JNONE</option> </field> <field name="filter_tag" type="tag" label="COM_MENUS_ADMIN_TAGS_LABEL" description="COM_MENUS_ADMIN_TAGS_DESC" multiple="true" filter="int_array" mode="nested" /> <field name="filter_access" type="accesslevel" label="COM_MENUS_ADMIN_ACCESS_LABEL" description="COM_MENUS_ADMIN_ACCESS_DESC" multiple="true" filter="int_array" /> <field name="filter_language" type="contentlanguage" label="COM_MENUS_ADMIN_LANGUAGE_LABEL" description="COM_MENUS_ADMIN_LANGUAGE_DESC" > <option value="">JOPTION_SELECT_LANGUAGE</option> <option value="*">JALL</option> </field> </fieldset> </fields> </metadata> PK �|!]�2# # , views/articles/tmpl/default_batch_footer.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2015 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; ?> <button type="button" class="btn" onclick="document.getElementById('batch-category-id').value='';document.getElementById('batch-access').value='';document.getElementById('batch-language-id').value='';document.getElementById('batch-user-id').value='';document.getElementById('batch-tag-id').value=''" data-dismiss="modal"> <?php echo JText::_('JCANCEL'); ?> </button> <button type="submit" class="btn btn-success" onclick="Joomla.submitbutton('article.batch');return false;"> <?php echo JText::_('JGLOBAL_BATCH_PROCESS'); ?> </button> PK �|!]�>#0� � views/articles/view.html.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * View class for a list of articles. * * @since 1.6 */ class ContentViewArticles extends JViewLegacy { /** * The item authors * * @var stdClass * * @deprecated 4.0 To be removed with Hathor */ protected $authors; /** * An array of items * * @var array */ protected $items; /** * The pagination object * * @var JPagination */ protected $pagination; /** * The model state * * @var object */ protected $state; /** * Form object for search filters * * @var JForm */ public $filterForm; /** * The active search filters * * @var array */ public $activeFilters; /** * The sidebar markup * * @var string */ protected $sidebar; /** * Display the view * * @param string $tpl The name of the template file to parse; automatically searches through the template paths. * * @return mixed A string if successful, otherwise an Error object. */ public function display($tpl = null) { if ($this->getLayout() !== 'modal') { ContentHelper::addSubmenu('articles'); } $this->items = $this->get('Items'); $this->pagination = $this->get('Pagination'); $this->state = $this->get('State'); $this->authors = $this->get('Authors'); $this->filterForm = $this->get('FilterForm'); $this->activeFilters = $this->get('ActiveFilters'); $this->vote = JPluginHelper::isEnabled('content', 'vote'); // Check for errors. if (count($errors = $this->get('Errors'))) { throw new Exception(implode("\n", $errors), 500); } // Levels filter - Used in Hathor. // @deprecated 4.0 To be removed with Hathor $this->f_levels = array( JHtml::_('select.option', '1', JText::_('J1')), JHtml::_('select.option', '2', JText::_('J2')), JHtml::_('select.option', '3', JText::_('J3')), JHtml::_('select.option', '4', JText::_('J4')), JHtml::_('select.option', '5', JText::_('J5')), JHtml::_('select.option', '6', JText::_('J6')), JHtml::_('select.option', '7', JText::_('J7')), JHtml::_('select.option', '8', JText::_('J8')), JHtml::_('select.option', '9', JText::_('J9')), JHtml::_('select.option', '10', JText::_('J10')), ); // We don't need toolbar in the modal window. if ($this->getLayout() !== 'modal') { $this->addToolbar(); $this->sidebar = JHtmlSidebar::render(); } else { // In article associations modal we need to remove language filter if forcing a language. // We also need to change the category filter to show show categories with All or the forced language. if ($forcedLanguage = JFactory::getApplication()->input->get('forcedLanguage', '', 'CMD')) { // If the language is forced we can't allow to select the language, so transform the language selector filter into a hidden field. $languageXml = new SimpleXMLElement('<field name="language" type="hidden" default="' . $forcedLanguage . '" />'); $this->filterForm->setField($languageXml, 'filter', true); // Also, unset the active language filter so the search tools is not open by default with this filter. unset($this->activeFilters['language']); // One last changes needed is to change the category filter to just show categories with All language or with the forced language. $this->filterForm->setFieldAttribute('category_id', 'language', '*,' . $forcedLanguage, 'filter'); } } return parent::display($tpl); } /** * Add the page title and toolbar. * * @return void * * @since 1.6 */ protected function addToolbar() { $canDo = JHelperContent::getActions('com_content', 'category', $this->state->get('filter.category_id')); $user = JFactory::getUser(); // Get the toolbar object instance $bar = JToolbar::getInstance('toolbar'); JToolbarHelper::title(JText::_('COM_CONTENT_ARTICLES_TITLE'), 'stack article'); if ($canDo->get('core.create') || count($user->getAuthorisedCategories('com_content', 'core.create')) > 0) { JToolbarHelper::addNew('article.add'); } if ($canDo->get('core.edit') || $canDo->get('core.edit.own')) { JToolbarHelper::editList('article.edit'); } if ($canDo->get('core.edit.state')) { JToolbarHelper::publish('articles.publish', 'JTOOLBAR_PUBLISH', true); JToolbarHelper::unpublish('articles.unpublish', 'JTOOLBAR_UNPUBLISH', true); JToolbarHelper::custom('articles.featured', 'featured.png', 'featured_f2.png', 'JFEATURE', true); JToolbarHelper::custom('articles.unfeatured', 'unfeatured.png', 'featured_f2.png', 'JUNFEATURE', true); JToolbarHelper::archiveList('articles.archive'); JToolbarHelper::checkin('articles.checkin'); } // Add a batch button if ($user->authorise('core.create', 'com_content') && $user->authorise('core.edit', 'com_content') && $user->authorise('core.edit.state', 'com_content')) { $title = JText::_('JTOOLBAR_BATCH'); // Instantiate a new JLayoutFile instance and render the batch button $layout = new JLayoutFile('joomla.toolbar.batch'); $dhtml = $layout->render(array('title' => $title)); $bar->appendButton('Custom', $dhtml, 'batch'); } if ($this->state->get('filter.published') == -2 && $canDo->get('core.delete')) { JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'articles.delete', 'JTOOLBAR_EMPTY_TRASH'); } elseif ($canDo->get('core.edit.state')) { JToolbarHelper::trash('articles.trash'); } if ($user->authorise('core.admin', 'com_content') || $user->authorise('core.options', 'com_content')) { JToolbarHelper::preferences('com_content'); } JToolbarHelper::help('JHELP_CONTENT_ARTICLE_MANAGER'); } /** * Returns an array of fields the table can be sorted by * * @return array Array containing the field name to sort by as the key and display text as value * * @since 3.0 */ protected function getSortFields() { return array( 'a.ordering' => JText::_('JGRID_HEADING_ORDERING'), 'a.state' => JText::_('JSTATUS'), 'a.title' => JText::_('JGLOBAL_TITLE'), 'category_title' => JText::_('JCATEGORY'), 'access_level' => JText::_('JGRID_HEADING_ACCESS'), 'a.created_by' => JText::_('JAUTHOR'), 'language' => JText::_('JGRID_HEADING_LANGUAGE'), 'a.created' => JText::_('JDATE'), 'a.id' => JText::_('JGRID_HEADING_ID'), 'a.featured' => JText::_('JFEATURED') ); } } PK �|!]��N-? ? access.xmlnu &1i� <?xml version="1.0" encoding="utf-8" ?> <access component="com_content"> <section name="component"> <action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" /> <action name="core.options" title="JACTION_OPTIONS" description="JACTION_OPTIONS_COMPONENT_DESC" /> <action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" /> <action name="core.create" title="JACTION_CREATE" description="JACTION_CREATE_COMPONENT_DESC" /> <action name="core.delete" title="JACTION_DELETE" description="JACTION_DELETE_COMPONENT_DESC" /> <action name="core.edit" title="JACTION_EDIT" description="JACTION_EDIT_COMPONENT_DESC" /> <action name="core.edit.state" title="JACTION_EDITSTATE" description="JACTION_EDITSTATE_COMPONENT_DESC" /> <action name="core.edit.own" title="JACTION_EDITOWN" description="JACTION_EDITOWN_COMPONENT_DESC" /> <action name="core.edit.value" title="JACTION_EDITVALUE" description="JACTION_EDITVALUE_COMPONENT_DESC" /> </section> <section name="category"> <action name="core.create" title="JACTION_CREATE" description="COM_CATEGORIES_ACCESS_CREATE_DESC" /> <action name="core.delete" title="JACTION_DELETE" description="COM_CATEGORIES_ACCESS_DELETE_DESC" /> <action name="core.edit" title="JACTION_EDIT" description="COM_CATEGORIES_ACCESS_EDIT_DESC" /> <action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CATEGORIES_ACCESS_EDITSTATE_DESC" /> <action name="core.edit.own" title="JACTION_EDITOWN" description="COM_CATEGORIES_ACCESS_EDITOWN_DESC" /> </section> <section name="article"> <action name="core.delete" title="JACTION_DELETE" description="COM_CONTENT_ACCESS_DELETE_DESC" /> <action name="core.edit" title="JACTION_EDIT" description="COM_CONTENT_ACCESS_EDIT_DESC" /> <action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_CONTENT_ACCESS_EDITSTATE_DESC" /> </section> <section name="fieldgroup"> <action name="core.create" title="JACTION_CREATE" description="COM_FIELDS_GROUP_PERMISSION_CREATE_DESC" /> <action name="core.delete" title="JACTION_DELETE" description="COM_FIELDS_GROUP_PERMISSION_DELETE_DESC" /> <action name="core.edit" title="JACTION_EDIT" description="COM_FIELDS_GROUP_PERMISSION_EDIT_DESC" /> <action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_FIELDS_GROUP_PERMISSION_EDITSTATE_DESC" /> <action name="core.edit.own" title="JACTION_EDITOWN" description="COM_FIELDS_GROUP_PERMISSION_EDITOWN_DESC" /> <action name="core.edit.value" title="JACTION_EDITVALUE" description="COM_FIELDS_GROUP_PERMISSION_EDITVALUE_DESC" /> </section> <section name="field"> <action name="core.delete" title="JACTION_DELETE" description="COM_FIELDS_FIELD_PERMISSION_DELETE_DESC" /> <action name="core.edit" title="JACTION_EDIT" description="COM_FIELDS_FIELD_PERMISSION_EDIT_DESC" /> <action name="core.edit.state" title="JACTION_EDITSTATE" description="COM_FIELDS_FIELD_PERMISSION_EDITSTATE_DESC" /> <action name="core.edit.value" title="JACTION_EDITVALUE" description="COM_FIELDS_FIELD_PERMISSION_EDITVALUE_DESC" /> </section> </access> PK �|!]I��,� � % helpers/html/contentadministrator.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2007 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Utilities\ArrayHelper; JLoader::register('ContentHelper', JPATH_ADMINISTRATOR . '/components/com_content/helpers/content.php'); /** * Content HTML helper * * @since 3.0 */ abstract class JHtmlContentAdministrator { /** * Render the list of associated items * * @param integer $articleid The article item id * * @return string The language HTML * * @throws Exception */ public static function association($articleid) { // Defaults $html = ''; // Get the associations if ($associations = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $articleid)) { foreach ($associations as $tag => $associated) { $associations[$tag] = (int) $associated->id; } // Get the associated menu items $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select('c.*') ->select('l.sef as lang_sef') ->select('l.lang_code') ->from('#__content as c') ->select('cat.title as category_title') ->join('LEFT', '#__categories as cat ON cat.id=c.catid') ->where('c.id IN (' . implode(',', array_values($associations)) . ')') ->where('c.id != ' . $articleid) ->join('LEFT', '#__languages as l ON c.language=l.lang_code') ->select('l.image') ->select('l.title as language_title'); $db->setQuery($query); try { $items = $db->loadObjectList('id'); } catch (RuntimeException $e) { throw new Exception($e->getMessage(), 500, $e); } if ($items) { foreach ($items as &$item) { $text = $item->lang_sef ? strtoupper($item->lang_sef) : 'XX'; $url = JRoute::_('index.php?option=com_content&task=article.edit&id=' . (int) $item->id); $tooltip = htmlspecialchars($item->title, ENT_QUOTES, 'UTF-8') . '<br />' . JText::sprintf('JCATEGORY_SPRINTF', $item->category_title); $classes = 'hasPopover label label-association label-' . $item->lang_sef; $item->link = '<a href="' . $url . '" title="' . $item->language_title . '" class="' . $classes . '" data-content="' . $tooltip . '" data-placement="top">' . $text . '</a>'; } } JHtml::_('bootstrap.popover'); $html = JLayoutHelper::render('joomla.content.associations', $items); } return $html; } /** * Show the feature/unfeature links * * @param integer $value The state value * @param integer $i Row number * @param boolean $canChange Is user allowed to change? * * @return string HTML code */ public static function featured($value = 0, $i = 0, $canChange = true) { JHtml::_('bootstrap.tooltip'); // Array of image, task, title, action $states = array( 0 => array('unfeatured', 'articles.featured', 'COM_CONTENT_UNFEATURED', 'JGLOBAL_TOGGLE_FEATURED'), 1 => array('featured', 'articles.unfeatured', 'COM_CONTENT_FEATURED', 'JGLOBAL_TOGGLE_FEATURED'), ); $state = ArrayHelper::getValue($states, (int) $value, $states[1]); $icon = $state[0]; if ($canChange) { $html = '<a href="#" onclick="return listItemTask(\'cb' . $i . '\',\'' . $state[1] . '\')" class="btn btn-micro hasTooltip' . ($value == 1 ? ' active' : '') . '" title="' . JHtml::_('tooltipText', $state[3]) . '"><span class="icon-' . $icon . '" aria-hidden="true"></span></a>'; } else { $html = '<a class="btn btn-micro hasTooltip disabled' . ($value == 1 ? ' active' : '') . '" title="' . JHtml::_('tooltipText', $state[2]) . '"><span class="icon-' . $icon . '" aria-hidden="true"></span></a>'; } return $html; } } PK �|!]v�@� � helpers/associations.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2017 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\CMS\Association\AssociationExtensionHelper; /** * Content associations helper. * * @since 3.7.0 */ class ContentAssociationsHelper extends AssociationExtensionHelper { /** * The extension name * * @var array $extension * * @since 3.7.0 */ protected $extension = 'com_content'; /** * Array of item types * * @var array $itemTypes * * @since 3.7.0 */ protected $itemTypes = array('article', 'category'); /** * Has the extension association support * * @var boolean $associationsSupport * * @since 3.7.0 */ protected $associationsSupport = true; /** * Get the associated items for an item * * @param string $typeName The item type * @param int $id The id of item for which we need the associated items * * @return array * * @since 3.7.0 */ public function getAssociations($typeName, $id) { $type = $this->getType($typeName); $context = $this->extension . '.item'; $catidField = 'catid'; if ($typeName === 'category') { $context = 'com_categories.item'; $catidField = ''; } // Get the associations. $associations = JLanguageAssociations::getAssociations( $this->extension, $type['tables']['a'], $context, $id, 'id', 'alias', $catidField ); return $associations; } /** * Get item information * * @param string $typeName The item type * @param int $id The id of item for which we need the associated items * * @return JTable|null * * @since 3.7.0 */ public function getItem($typeName, $id) { if (empty($id)) { return null; } $table = null; switch ($typeName) { case 'article': $table = JTable::getInstance('Content'); break; case 'category': $table = JTable::getInstance('Category'); break; } if (is_null($table)) { return null; } $table->load($id); return $table; } /** * Get information about the type * * @param string $typeName The item type * * @return array Array of item types * * @since 3.7.0 */ public function getType($typeName = '') { $fields = $this->getFieldsTemplate(); $tables = array(); $joins = array(); $support = $this->getSupportTemplate(); $title = ''; if (in_array($typeName, $this->itemTypes)) { switch ($typeName) { case 'article': $support['state'] = true; $support['acl'] = true; $support['checkout'] = true; $support['category'] = true; $support['save2copy'] = true; $tables = array( 'a' => '#__content' ); $title = 'article'; break; case 'category': $fields['created_user_id'] = 'a.created_user_id'; $fields['ordering'] = 'a.lft'; $fields['level'] = 'a.level'; $fields['catid'] = ''; $fields['state'] = 'a.published'; $support['state'] = true; $support['acl'] = true; $support['checkout'] = true; $support['level'] = true; $tables = array( 'a' => '#__categories' ); $title = 'category'; break; } } return array( 'fields' => $fields, 'support' => $support, 'tables' => $tables, 'joins' => $joins, 'title' => $title ); } } PK �|!]�*\�� � helpers/content.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Content component helper. * * @since 1.6 */ class ContentHelper extends JHelperContent { public static $extension = 'com_content'; /** * Configure the Linkbar. * * @param string $vName The name of the active view. * * @return void * * @since 1.6 */ public static function addSubmenu($vName) { JHtmlSidebar::addEntry( JText::_('JGLOBAL_ARTICLES'), 'index.php?option=com_content&view=articles', $vName == 'articles' ); JHtmlSidebar::addEntry( JText::_('COM_CONTENT_SUBMENU_CATEGORIES'), 'index.php?option=com_categories&extension=com_content', $vName == 'categories' ); JHtmlSidebar::addEntry( JText::_('COM_CONTENT_SUBMENU_FEATURED'), 'index.php?option=com_content&view=featured', $vName == 'featured' ); if (JComponentHelper::isEnabled('com_fields') && JComponentHelper::getParams('com_content')->get('custom_fields_enable', '1')) { JHtmlSidebar::addEntry( JText::_('JGLOBAL_FIELDS'), 'index.php?option=com_fields&context=com_content.article', $vName == 'fields.fields' ); JHtmlSidebar::addEntry( JText::_('JGLOBAL_FIELD_GROUPS'), 'index.php?option=com_fields&view=groups&context=com_content.article', $vName == 'fields.groups' ); } } /** * Applies the content tag filters to arbitrary text as per settings for current user group * * @param text $text The string to filter * * @return string The filtered string * * @deprecated 4.0 Use JComponentHelper::filterText() instead. */ public static function filterText($text) { try { JLog::add( sprintf('%s() is deprecated. Use JComponentHelper::filterText() instead', __METHOD__), JLog::WARNING, 'deprecated' ); } catch (RuntimeException $exception) { // Informational log only } return JComponentHelper::filterText($text); } /** * Adds Count Items for Category Manager. * * @param stdClass[] &$items The category objects * * @return stdClass[] * * @since 3.5 */ public static function countItems(&$items) { $config = (object) array( 'related_tbl' => 'content', 'state_col' => 'state', 'group_col' => 'catid', 'relation_type' => 'category_or_group', ); return parent::countRelations($items, $config); } /** * Adds Count Items for Tag Manager. * * @param stdClass[] &$items The tag objects * @param string $extension The name of the active view. * * @return stdClass[] * * @since 3.6 */ public static function countTagItems(&$items, $extension) { $parts = explode('.', $extension); $section = count($parts) > 1 ? $parts[1] : null; $config = (object) array( 'related_tbl' => ($section === 'category' ? 'categories' : 'content'), 'state_col' => ($section === 'category' ? 'published' : 'state'), 'group_col' => 'tag_id', 'extension' => $extension, 'relation_type' => 'tag_assigments', ); return parent::countRelations($items, $config); } /** * Returns a valid section for articles. If it is not valid then null * is returned. * * @param string $section The section to get the mapping for * * @return string|null The new section * * @since 3.7.0 */ public static function validateSection($section) { if (JFactory::getApplication()->isClient('site')) { // On the front end we need to map some sections switch ($section) { // Editing an article case 'form': // Category list view case 'featured': case 'category': $section = 'article'; } } if ($section != 'article') { // We don't know other sections return null; } return $section; } /** * Returns valid contexts * * @return array * * @since 3.7.0 */ public static function getContexts() { JFactory::getLanguage()->load('com_content', JPATH_ADMINISTRATOR); $contexts = array( 'com_content.article' => JText::_('COM_CONTENT'), 'com_content.categories' => JText::_('JCATEGORY') ); return $contexts; } } PK �|!]�NE E tables/featured.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; /** * Featured Table class. * * @since 1.6 */ class ContentTableFeatured extends JTable { /** * Constructor * * @param JDatabaseDriver $db Database connector object * * @since 1.6 */ public function __construct(&$db) { parent::__construct('#__content_frontpage', 'content_id', $db); } } PK �|!]��]Va Va models/article.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2008 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Registry\Registry; use Joomla\Utilities\ArrayHelper; JLoader::register('ContentHelper', JPATH_ADMINISTRATOR . '/components/com_content/helpers/content.php'); /** * Item Model for an Article. * * @since 1.6 */ class ContentModelArticle extends JModelAdmin { /** * The prefix to use with controller messages. * * @var string * @since 1.6 */ protected $text_prefix = 'COM_CONTENT'; /** * The type alias for this content type (for example, 'com_content.article'). * * @var string * @since 3.2 */ public $typeAlias = 'com_content.article'; /** * The context used for the associations table * * @var string * @since 3.4.4 */ protected $associationsContext = 'com_content.item'; /** * Function that can be overridden to do any data cleanup after batch copying data * * @param \JTableInterface $table The table object containing the newly created item * @param integer $newId The id of the new item * @param integer $oldId The original item id * * @return void * * @since 3.8.12 */ protected function cleanupPostBatchCopy(\JTableInterface $table, $newId, $oldId) { // Check if the article was featured and update the #__content_frontpage table if ($table->featured == 1) { $db = $this->getDbo(); $query = $db->getQuery(true) ->insert($db->quoteName('#__content_frontpage')) ->values($newId . ', 0'); $db->setQuery($query); $db->execute(); } // Register FieldsHelper JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php'); $oldItem = $this->getTable(); $oldItem->load($oldId); $fields = FieldsHelper::getFields('com_content.article', $oldItem, true); $fieldsData = array(); if (!empty($fields)) { $fieldsData['com_fields'] = array(); foreach ($fields as $field) { $fieldsData['com_fields'][$field->name] = $field->rawvalue; } } JEventDispatcher::getInstance()->trigger('onContentAfterSave', array('com_content.article', &$this->table, true, $fieldsData)); } /** * Batch move categories to a new category. * * @param integer $value The new category ID. * @param array $pks An array of row IDs. * @param array $contexts An array of item contexts. * * @return boolean True on success. * * @since 3.8.6 */ protected function batchMove($value, $pks, $contexts) { if (empty($this->batchSet)) { // Set some needed variables. $this->user = JFactory::getUser(); $this->table = $this->getTable(); $this->tableClassName = get_class($this->table); $this->contentType = new JUcmType; $this->type = $this->contentType->getTypeByTable($this->tableClassName); } $categoryId = (int) $value; if (!$this->checkCategoryId($categoryId)) { return false; } JPluginHelper::importPlugin('system'); $dispatcher = JEventDispatcher::getInstance(); // Register FieldsHelper JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php'); // Parent exists so we proceed foreach ($pks as $pk) { if (!$this->user->authorise('core.edit', $contexts[$pk])) { $this->setError(JText::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_EDIT')); return false; } // Check that the row actually exists if (!$this->table->load($pk)) { if ($error = $this->table->getError()) { // Fatal error $this->setError($error); return false; } else { // Not fatal error $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk)); continue; } } $fields = FieldsHelper::getFields('com_content.article', $this->table, true); $fieldsData = array(); if (!empty($fields)) { $fieldsData['com_fields'] = array(); foreach ($fields as $field) { $fieldsData['com_fields'][$field->name] = $field->rawvalue; } } // Set the new category ID $this->table->catid = $categoryId; // Check the row. if (!$this->table->check()) { $this->setError($this->table->getError()); return false; } if (!empty($this->type)) { $this->createTagsHelper($this->tagsObserver, $this->type, $pk, $this->typeAlias, $this->table); } // Store the row. if (!$this->table->store()) { $this->setError($this->table->getError()); return false; } // Run event for moved article $dispatcher->trigger('onContentAfterSave', array('com_content.article', &$this->table, false, $fieldsData)); } // Clean the cache $this->cleanCache(); return true; } /** * Method to test whether a record can be deleted. * * @param object $record A record object. * * @return boolean True if allowed to delete the record. Defaults to the permission set in the component. * * @since 1.6 */ protected function canDelete($record) { if (empty($record->id) || $record->state != -2) { return false; } return JFactory::getUser()->authorise('core.delete', 'com_content.article.' . (int) $record->id); } /** * Method to test whether a record can have its state edited. * * @param object $record A record object. * * @return boolean True if allowed to change the state of the record. Defaults to the permission set in the component. * * @since 1.6 */ protected function canEditState($record) { $user = JFactory::getUser(); // Check for existing article. if (!empty($record->id)) { return $user->authorise('core.edit.state', 'com_content.article.' . (int) $record->id); } // New article, so check against the category. if (!empty($record->catid)) { return $user->authorise('core.edit.state', 'com_content.category.' . (int) $record->catid); } // Default to component settings if neither article nor category known. return parent::canEditState($record); } /** * Prepare and sanitise the table data prior to saving. * * @param JTable $table A JTable object. * * @return void * * @since 1.6 */ protected function prepareTable($table) { // Set the publish date to now if ($table->state == 1 && (int) $table->publish_up == 0) { $table->publish_up = JFactory::getDate()->toSql(); } if ($table->state == 1 && intval($table->publish_down) == 0) { $table->publish_down = $this->getDbo()->getNullDate(); } // Increment the content version number. $table->version++; // Reorder the articles within the category so the new article is first if (empty($table->id)) { $table->reorder('catid = ' . (int) $table->catid . ' AND state >= 0'); } } /** * Returns a Table object, always creating it. * * @param string $type The table type to instantiate * @param string $prefix A prefix for the table class name. Optional. * @param array $config Configuration array for model. Optional. * * @return JTable A database object */ public function getTable($type = 'Content', $prefix = 'JTable', $config = array()) { return JTable::getInstance($type, $prefix, $config); } /** * Method to get a single record. * * @param integer $pk The id of the primary key. * * @return mixed Object on success, false on failure. */ public function getItem($pk = null) { if ($item = parent::getItem($pk)) { // Convert the params field to an array. $registry = new Registry($item->attribs); $item->attribs = $registry->toArray(); // Convert the metadata field to an array. $registry = new Registry($item->metadata); $item->metadata = $registry->toArray(); // Convert the images field to an array. $registry = new Registry($item->images); $item->images = $registry->toArray(); // Convert the urls field to an array. $registry = new Registry($item->urls); $item->urls = $registry->toArray(); $item->articletext = trim($item->fulltext) != '' ? $item->introtext . "<hr id=\"system-readmore\" />" . $item->fulltext : $item->introtext; if (!empty($item->id)) { $item->tags = new JHelperTags; $item->tags->getTagIds($item->id, 'com_content.article'); } } // Load associated content items $assoc = JLanguageAssociations::isEnabled(); if ($assoc) { $item->associations = array(); if ($item->id != null) { $associations = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $item->id); foreach ($associations as $tag => $association) { $item->associations[$tag] = $association->id; } } } return $item; } /** * Method to get the record form. * * @param array $data Data for the form. * @param boolean $loadData True if the form is to load its own data (default case), false if not. * * @return JForm|boolean A JForm object on success, false on failure * * @since 1.6 */ public function getForm($data = array(), $loadData = true) { $app = JFactory::getApplication(); $user = JFactory::getUser(); // Get the form. $form = $this->loadForm('com_content.article', 'article', array('control' => 'jform', 'load_data' => $loadData)); if (empty($form)) { return false; } $jinput = JFactory::getApplication()->input; /* * The front end calls this model and uses a_id to avoid id clashes so we need to check for that first. * The back end uses id so we use that the rest of the time and set it to 0 by default. */ $id = (int) $jinput->get('a_id', $jinput->get('id', 0)); // Determine correct permissions to check. if ($id = $this->getState('article.id', $id)) { // Existing record. Can only edit in selected categories. $form->setFieldAttribute('catid', 'action', 'core.edit'); // Existing record. Can only edit own articles in selected categories. if ($app->isClient('administrator')) { $form->setFieldAttribute('catid', 'action', 'core.edit.own'); } else // Existing record. We can't edit the category in frontend if not edit.state. { if ($id != 0 && (!$user->authorise('core.edit.state', 'com_content.article.' . (int) $id)) || ($id == 0 && !$user->authorise('core.edit.state', 'com_content'))) { $form->setFieldAttribute('catid', 'readonly', 'true'); $form->setFieldAttribute('catid', 'required', 'false'); $form->setFieldAttribute('catid', 'filter', 'unset'); } } } else { // New record. Can only create in selected categories. $form->setFieldAttribute('catid', 'action', 'core.create'); } // Object uses for checking edit state permission of article $record = new stdClass; $record->id = $id; // Get the category which the article is being added to if (!empty($data['catid'])) { $catId = (int) $data['catid']; } else { $catIds = $form->getValue('catid'); $catId = is_array($catIds) ? (int) reset($catIds) : (int) $catIds; if (!$catId) { $catId = (int) $form->getFieldAttribute('catid', 'default', 0); } } $record->catid = $catId; // Modify the form based on Edit State access controls. if (!$this->canEditState($record)) { // Disable fields for display. $form->setFieldAttribute('featured', 'disabled', 'true'); $form->setFieldAttribute('ordering', 'disabled', 'true'); $form->setFieldAttribute('publish_up', 'disabled', 'true'); $form->setFieldAttribute('publish_down', 'disabled', 'true'); $form->setFieldAttribute('state', 'disabled', 'true'); // Disable fields while saving. // The controller has already verified this is an article you can edit. $form->setFieldAttribute('featured', 'filter', 'unset'); $form->setFieldAttribute('ordering', 'filter', 'unset'); $form->setFieldAttribute('publish_up', 'filter', 'unset'); $form->setFieldAttribute('publish_down', 'filter', 'unset'); $form->setFieldAttribute('state', 'filter', 'unset'); } // Prevent messing with article language and category when editing existing article with associations $assoc = JLanguageAssociations::isEnabled(); // Check if article is associated if ($this->getState('article.id') && $app->isClient('site') && $assoc) { $associations = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $id); // Make fields read only if (!empty($associations)) { $form->setFieldAttribute('language', 'readonly', 'true'); $form->setFieldAttribute('catid', 'readonly', 'true'); $form->setFieldAttribute('language', 'filter', 'unset'); $form->setFieldAttribute('catid', 'filter', 'unset'); } } return $form; } /** * Method to get the data that should be injected in the form. * * @return mixed The data for the form. * * @since 1.6 */ protected function loadFormData() { // Check the session for previously entered form data. $app = JFactory::getApplication(); $data = $app->getUserState('com_content.edit.article.data', array()); if (empty($data)) { $data = $this->getItem(); // Pre-select some filters (Status, Category, Language, Access) in edit form if those have been selected in Article Manager: Articles if ($this->getState('article.id') == 0) { $filters = (array) $app->getUserState('com_content.articles.filter'); $data->set( 'state', $app->input->getInt( 'state', ((isset($filters['published']) && $filters['published'] !== '') ? $filters['published'] : null) ) ); $data->set('catid', $app->input->getInt('catid', (!empty($filters['category_id']) ? $filters['category_id'] : null))); $data->set('language', $app->input->getString('language', (!empty($filters['language']) ? $filters['language'] : null))); $data->set('access', $app->input->getInt('access', (!empty($filters['access']) ? $filters['access'] : JFactory::getConfig()->get('access'))) ); } } // If there are params fieldsets in the form it will fail with a registry object if (isset($data->params) && $data->params instanceof Registry) { $data->params = $data->params->toArray(); } $this->preprocessData('com_content.article', $data); return $data; } /** * Method to validate the form data. * * @param JForm $form The form to validate against. * @param array $data The data to validate. * @param string $group The name of the field group to validate. * * @return array|boolean Array of filtered data if valid, false otherwise. * * @see JFormRule * @see JFilterInput * @since 3.7.0 */ public function validate($form, $data, $group = null) { // Don't allow to change the users if not allowed to access com_users. if (!JFactory::getUser()->authorise('core.manage', 'com_users')) { if (isset($data['created_by'])) { unset($data['created_by']); } } if (!JFactory::getUser()->authorise('core.admin', 'com_content')) { if (isset($data['rules'])) { unset($data['rules']); } } return parent::validate($form, $data, $group); } /** * Method to save the form data. * * @param array $data The form data. * * @return boolean True on success. * * @since 1.6 */ public function save($data) { $input = JFactory::getApplication()->input; $filter = JFilterInput::getInstance(); if (isset($data['metadata']) && isset($data['metadata']['author'])) { $data['metadata']['author'] = $filter->clean($data['metadata']['author'], 'TRIM'); } if (isset($data['created_by_alias'])) { $data['created_by_alias'] = $filter->clean($data['created_by_alias'], 'TRIM'); } if (isset($data['images']) && is_array($data['images'])) { $registry = new Registry($data['images']); $data['images'] = (string) $registry; } JLoader::register('CategoriesHelper', JPATH_ADMINISTRATOR . '/components/com_categories/helpers/categories.php'); // Create new category, if needed. $createCategory = true; // If category ID is provided, check if it's valid. if (is_numeric($data['catid']) && $data['catid']) { $createCategory = !CategoriesHelper::validateCategoryId($data['catid'], 'com_content'); } // Save New Category if ($createCategory && $this->canCreateCategory()) { $table = array(); // Remove #new# prefix, if exists. $table['title'] = strpos($data['catid'], '#new#') === 0 ? substr($data['catid'], 5) : $data['catid']; $table['parent_id'] = 1; $table['extension'] = 'com_content'; $table['language'] = $data['language']; $table['published'] = 1; // Create new category and get catid back $data['catid'] = CategoriesHelper::createCategory($table); } if (isset($data['urls']) && is_array($data['urls'])) { $check = $input->post->get('jform', array(), 'array'); foreach ($data['urls'] as $i => $url) { if ($url != false && ($i == 'urla' || $i == 'urlb' || $i == 'urlc')) { if (preg_match('~^#[a-zA-Z]{1}[a-zA-Z0-9-_:.]*$~', $check['urls'][$i]) == 1) { $data['urls'][$i] = $check['urls'][$i]; } else { $data['urls'][$i] = JStringPunycode::urlToPunycode($url); } } } unset($check); $registry = new Registry($data['urls']); $data['urls'] = (string) $registry; } // Alter the title for save as copy if ($input->get('task') == 'save2copy') { $origTable = clone $this->getTable(); $origTable->load($input->getInt('id')); if ($data['title'] == $origTable->title) { list($title, $alias) = $this->generateNewTitle($data['catid'], $data['alias'], $data['title']); $data['title'] = $title; $data['alias'] = $alias; } else { if ($data['alias'] == $origTable->alias) { $data['alias'] = ''; } } $data['state'] = 0; } // Automatic handling of alias for empty fields if (in_array($input->get('task'), array('apply', 'save', 'save2new')) && (!isset($data['id']) || (int) $data['id'] == 0)) { if ($data['alias'] == null) { if (JFactory::getConfig()->get('unicodeslugs') == 1) { $data['alias'] = JFilterOutput::stringURLUnicodeSlug($data['title']); } else { $data['alias'] = JFilterOutput::stringURLSafe($data['title']); } $table = JTable::getInstance('Content', 'JTable'); if ($table->load(array('alias' => $data['alias'], 'catid' => $data['catid']))) { $msg = JText::_('COM_CONTENT_SAVE_WARNING'); } list($title, $alias) = $this->generateNewTitle($data['catid'], $data['alias'], $data['title']); $data['alias'] = $alias; if (isset($msg)) { JFactory::getApplication()->enqueueMessage($msg, 'warning'); } } } if (parent::save($data)) { if (isset($data['featured'])) { $this->featured($this->getState($this->getName() . '.id'), $data['featured']); } return true; } return false; } /** * Method to toggle the featured setting of articles. * * @param array $pks The ids of the items to toggle. * @param integer $value The value to toggle to. * * @return boolean True on success. */ public function featured($pks, $value = 0) { // Sanitize the ids. $pks = (array) $pks; $pks = ArrayHelper::toInteger($pks); if (empty($pks)) { $this->setError(JText::_('COM_CONTENT_NO_ITEM_SELECTED')); return false; } $table = $this->getTable('Featured', 'ContentTable'); try { $db = $this->getDbo(); $query = $db->getQuery(true) ->update($db->quoteName('#__content')) ->set('featured = ' . (int) $value) ->where('id IN (' . implode(',', $pks) . ')'); $db->setQuery($query); $db->execute(); if ((int) $value == 0) { // Adjust the mapping table. // Clear the existing features settings. $query = $db->getQuery(true) ->delete($db->quoteName('#__content_frontpage')) ->where('content_id IN (' . implode(',', $pks) . ')'); $db->setQuery($query); $db->execute(); } else { // First, we find out which of our new featured articles are already featured. $query = $db->getQuery(true) ->select('f.content_id') ->from('#__content_frontpage AS f') ->where('content_id IN (' . implode(',', $pks) . ')'); $db->setQuery($query); $oldFeatured = $db->loadColumn(); // We diff the arrays to get a list of the articles that are newly featured $newFeatured = array_diff($pks, $oldFeatured); // Featuring. $tuples = array(); foreach ($newFeatured as $pk) { $tuples[] = $pk . ', 0'; } if (count($tuples)) { $columns = array('content_id', 'ordering'); $query = $db->getQuery(true) ->insert($db->quoteName('#__content_frontpage')) ->columns($db->quoteName($columns)) ->values($tuples); $db->setQuery($query); $db->execute(); } } } catch (Exception $e) { $this->setError($e->getMessage()); return false; } $table->reorder(); $this->cleanCache(); return true; } /** * A protected method to get a set of ordering conditions. * * @param object $table A record object. * * @return array An array of conditions to add to add to ordering queries. * * @since 1.6 */ protected function getReorderConditions($table) { return array('catid = ' . (int) $table->catid); } /** * Allows preprocessing of the JForm object. * * @param JForm $form The form object * @param array $data The data to be merged into the form object * @param string $group The plugin group to be executed * * @return void * * @since 3.0 */ protected function preprocessForm(JForm $form, $data, $group = 'content') { if ($this->canCreateCategory()) { $form->setFieldAttribute('catid', 'allowAdd', 'true'); // Add a prefix for categories created on the fly. $form->setFieldAttribute('catid', 'customPrefix', '#new#'); } // Association content items if (JLanguageAssociations::isEnabled()) { $languages = JLanguageHelper::getContentLanguages(false, true, null, 'ordering', 'asc'); if (count($languages) > 1) { $addform = new SimpleXMLElement('<form />'); $fields = $addform->addChild('fields'); $fields->addAttribute('name', 'associations'); $fieldset = $fields->addChild('fieldset'); $fieldset->addAttribute('name', 'item_associations'); foreach ($languages as $language) { $field = $fieldset->addChild('field'); $field->addAttribute('name', $language->lang_code); $field->addAttribute('type', 'modal_article'); $field->addAttribute('language', $language->lang_code); $field->addAttribute('label', $language->title); $field->addAttribute('translate_label', 'false'); $field->addAttribute('select', 'true'); $field->addAttribute('new', 'true'); $field->addAttribute('edit', 'true'); $field->addAttribute('clear', 'true'); $field->addAttribute('propagate', 'true'); } $form->load($addform, false); } } parent::preprocessForm($form, $data, $group); } /** * Custom clean the cache of com_content and content modules * * @param string $group The cache group * @param integer $clientId The ID of the client * * @return void * * @since 1.6 */ protected function cleanCache($group = null, $clientId = 0) { parent::cleanCache('com_content'); parent::cleanCache('mod_articles_archive'); parent::cleanCache('mod_articles_categories'); parent::cleanCache('mod_articles_category'); parent::cleanCache('mod_articles_latest'); parent::cleanCache('mod_articles_news'); parent::cleanCache('mod_articles_popular'); } /** * Void hit function for pagebreak when editing content from frontend * * @return void * * @since 3.6.0 */ public function hit() { return; } /** * Is the user allowed to create an on the fly category? * * @return boolean * * @since 3.6.1 */ private function canCreateCategory() { return JFactory::getUser()->authorise('core.create', 'com_content'); } /** * Delete #__content_frontpage items if the deleted articles was featured * * @param object $pks The primary key related to the contents that was deleted. * * @return boolean * * @since 3.7.0 */ public function delete(&$pks) { $return = parent::delete($pks); if ($return) { // Now check to see if this articles was featured if so delete it from the #__content_frontpage table $db = $this->getDbo(); $query = $db->getQuery(true) ->delete($db->quoteName('#__content_frontpage')) ->where('content_id IN (' . implode(',', $pks) . ')'); $db->setQuery($query); $db->execute(); } return $return; } } PK �|!]�9N � � models/feature.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2010 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; JLoader::register('ContentModelArticle', __DIR__ . '/article.php'); /** * Feature model. * * @since 1.6 */ class ContentModelFeature extends ContentModelArticle { /** * Returns a Table object, always creating it. * * @param string $type The table type to instantiate * @param string $prefix A prefix for the table class name. Optional. * @param array $config Configuration array for model. Optional. * * @return JTable A database object * * @since 1.6 */ public function getTable($type = 'Featured', $prefix = 'ContentTable', $config = array()) { return JTable::getInstance($type, $prefix, $config); } /** * A protected method to get a set of ordering conditions. * * @param object $table A record object. * * @return array An array of conditions to add to add to ordering queries. * * @since 1.6 */ protected function getReorderConditions($table) { return array(); } } PK �|!]�Ǣ�! ! models/featured.phpnu &1i� <?php /** * @package Joomla.Administrator * @subpackage com_content * * @copyright (C) 2009 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; use Joomla\Utilities\ArrayHelper; JLoader::register('ContentModelArticles', __DIR__ . '/articles.php'); /** * Methods supporting a list of featured article records. * * @since 1.6 */ class ContentModelFeatured extends ContentModelArticles { /** * Constructor. * * @param array $config An optional associative array of configuration settings. * * @see JControllerLegacy * @since 1.6 */ public function __construct($config = array()) { if (empty($config['filter_fields'])) { $config['filter_fields'] = array( 'id', 'a.id', 'title', 'a.title', 'alias', 'a.alias', 'checked_out', 'a.checked_out', 'checked_out_time', 'a.checked_out_time', 'catid', 'a.catid', 'category_title', 'state', 'a.state', 'access', 'a.access', 'access_level', 'created', 'a.created', 'created_by', 'a.created_by', 'created_by_alias', 'a.created_by_alias', 'ordering', 'a.ordering', 'featured', 'a.featured', 'language', 'a.language', 'hits', 'a.hits', 'publish_up', 'a.publish_up', 'publish_down', 'a.publish_down', 'fp.ordering', 'published', 'a.published', 'author_id', 'category_id', 'level', 'tag', 'rating_count', 'rating', ); } parent::__construct($config); } /** * Build an SQL query to load the list data. * * @return JDatabaseQuery * * @since 1.6 */ protected function getListQuery() { // Create a new query object. $db = $this->getDbo(); $query = $db->getQuery(true); $user = JFactory::getUser(); // Select the required fields from the table. $query->select( $this->getState( 'list.select', 'a.id, a.title, a.alias, a.checked_out, a.checked_out_time, a.catid, a.state, a.access, a.created, a.hits,' . 'a.created_by, a.featured, a.language, a.created_by_alias, a.publish_up, a.publish_down, a.note' ) ); $query->from('#__content AS a'); // Join over the language $query->select('l.title AS language_title, l.image AS language_image') ->join('LEFT', $db->quoteName('#__languages') . ' AS l ON l.lang_code = a.language'); // Join over the content table. $query->select('fp.ordering') ->join('INNER', '#__content_frontpage AS fp ON fp.content_id = a.id'); // Join over the users for the checked out user. $query->select('uc.name AS editor') ->join('LEFT', '#__users AS uc ON uc.id=a.checked_out'); // Join over the asset groups. $query->select('ag.title AS access_level') ->join('LEFT', '#__viewlevels AS ag ON ag.id = a.access'); // Join over the categories. $query->select('c.title AS category_title, c.created_user_id AS category_uid, c.level AS category_level') ->join('LEFT', '#__categories AS c ON c.id = a.catid'); // Join over the parent categories. $query->select('parent.title AS parent_category_title, parent.id AS parent_category_id, parent.created_user_id AS parent_category_uid, parent.level AS parent_category_level') ->join('LEFT', '#__categories AS parent ON parent.id = c.parent_id'); // Join over the users for the author. $query->select('ua.name AS author_name') ->join('LEFT', '#__users AS ua ON ua.id = a.created_by'); // Join on voting table if (JPluginHelper::isEnabled('content', 'vote')) { $query->select('COALESCE(NULLIF(ROUND(v.rating_sum / v.rating_count, 0), 0), 0) AS rating, COALESCE(NULLIF(v.rating_count, 0), 0) as rating_count') ->join('LEFT', '#__content_rating AS v ON a.id = v.content_id'); } // Filter by access level. $access = $this->getState('filter.access'); if (is_numeric($access)) { $query->where('a.access = ' . (int) $access); } elseif (is_array($access)) { $access = ArrayHelper::toInteger($access); $access = implode(',', $access); $query->where('a.access IN (' . $access . ')'); } // Filter by access level on categories. if (!$user->authorise('core.admin')) { $groups = implode(',', $user->getAuthorisedViewLevels()); $query->where('a.access IN (' . $groups . ')'); $query->where('c.access IN (' . $groups . ')'); } // Filter by published state $published = $this->getState('filter.published'); if (is_numeric($published)) { $query->where('a.state = ' . (int) $published); } elseif ($published === '') { $query->where('(a.state = 0 OR a.state = 1)'); } // Filter by a single or group of categories. $baselevel = 1; $categoryId = $this->getState('filter.category_id'); if (is_array($categoryId) && count($categoryId) === 1) { $cat_tbl = JTable::getInstance('Category', 'JTable'); $cat_tbl->load($categoryId[0]); $rgt = $cat_tbl->rgt; $lft = $cat_tbl->lft; $baselevel = (int) $cat_tbl->level; $query->where('c.lft >= ' . (int) $lft) ->where('c.rgt <= ' . (int) $rgt); } elseif (is_array($categoryId)) { $categoryId = implode(',', ArrayHelper::toInteger($categoryId)); $query->where('a.catid IN (' . $categoryId . ')'); } // Filter on the level. if ($level = $this->getState('filter.level')) { $query->where('c.level <= ' . ((int) $level + (int) $baselevel - 1)); } // Filter by author $authorId = $this->getState('filter.author_id'); if (is_numeric($authorId)) { $type = $this->getState('filter.author_id.include', true) ? '= ' : '<>'; $query->where('a.created_by ' . $type . (int) $authorId); } elseif (is_array($authorId)) { $authorId = ArrayHelper::toInteger($authorId); $authorId = implode(',', $authorId); $query->where('a.created_by IN (' . $authorId . ')'); } // Filter by search in title. $search = $this->getState('filter.search'); if (!empty($search)) { if (stripos($search, 'id:') === 0) { $query->where('a.id = ' . (int) substr($search, 3)); } elseif (stripos($search, 'author:') === 0) { $search = $db->quote('%' . $db->escape(substr($search, 7), true) . '%'); $query->where('(ua.name LIKE ' . $search . ' OR ua.username LIKE ' . $search . ')'); } elseif (stripos($search, 'content:') === 0) { $search = $db->quote('%' . $db->escape(substr($search, 8), true) . '%'); $query->where('(a.introtext LIKE ' . $search . ' OR a.fulltext LIKE ' . $search . ')'); } else { $search = $db->quote('%' . str_replace(' ', '%', $db->escape(trim($search), true) . '%')); $query->where('(a.title LIKE ' . $search . ' OR a.alias LIKE ' . $search . ' OR a.note LIKE ' . $search . ')'); } } // Filter on the language. if ($language = $this->getState('filter.language')) { $query->where('a.language = ' . $db->quote($language)); } // Filter by a single or group of tags. $tagId = $this->getState('filter.tag'); if (is_array($tagId) && count($tagId) === 1) { $tagId = current($tagId); } if (is_array($tagId)) { $tagId = implode(',', ArrayHelper::toInteger($tagId)); if ($tagId) { $subQuery = $db->getQuery(true) ->select('DISTINCT content_item_id') ->from($db->quoteName('#__contentitem_tag_map')) ->where('tag_id IN (' . $tagId . ')') ->where('type_alias = ' . $db->quote('com_content.article')); $query->join('INNER', '(' . (string) $subQuery . ') AS tagmap ON tagmap.content_item_id = a.id'); } } elseif ($tagId) { $query->join( 'INNER', $db->quoteName('#__contentitem_tag_map', 'tagmap') . ' ON tagmap.tag_id = ' . (int) $tagId . ' AND tagmap.content_item_id = a.id' . ' AND tagmap.type_alias = ' . $db->quote('com_content.article') ); } // Add the list ordering clause. $orderCol = $this->state->get('list.ordering', 'a.title'); $orderDirn = $this->state->get('list.direction', 'ASC'); $query->order($db->escape($orderCol) . ' ' . $db->escape($orderDirn)); return $query; } /** * Method to auto-populate the model state. * * Note. Calling getState in this method will result in recursion. * * @param string $ordering An optional ordering field. * @param string $direction An optional direction (asc|desc). * * @return void * * @since 3.5 */ protected function populateState($ordering = 'a.title', $direction = 'asc') { parent::populateState($ordering, $direction); } } PK �|!]�����Z �Z models/forms/article.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <form> <fieldset addfieldpath="/administrator/components/com_categories/models/fields" > <field name="id" type="number" label="JGLOBAL_FIELD_ID_LABEL" description="JGLOBAL_FIELD_ID_DESC" class="readonly" size="10" default="0" readonly="true" /> <field name="asset_id" type="hidden" filter="unset" /> <field name="title" type="text" label="JGLOBAL_TITLE" description="JFIELD_TITLE_DESC" class="input-xxlarge input-large-text" size="40" required="true" /> <field name="alias" type="text" label="JFIELD_ALIAS_LABEL" description="JFIELD_ALIAS_DESC" hint="JFIELD_ALIAS_PLACEHOLDER" size="40" /> <field name="note" type="text" label="COM_CONTENT_FIELD_NOTE_LABEL" description="COM_CONTENT_FIELD_NOTE_DESC" class="span12" size="40" maxlength="255" /> <field name="version_note" type="text" label="JGLOBAL_FIELD_VERSION_NOTE_LABEL" description="JGLOBAL_FIELD_VERSION_NOTE_DESC" class="span12" maxlength="255" size="45" /> <field name="articletext" type="editor" label="COM_CONTENT_FIELD_ARTICLETEXT_LABEL" description="COM_CONTENT_FIELD_ARTICLETEXT_DESC" filter="JComponentHelper::filterText" buttons="true" /> <field name="state" type="list" label="JSTATUS" description="JFIELD_PUBLISHED_DESC" class="chzn-color-state" filter="intval" size="1" default="1" > <option value="1">JPUBLISHED</option> <option value="0">JUNPUBLISHED</option> <option value="2">JARCHIVED</option> <option value="-2">JTRASHED</option> </field> <field name="catid" type="categoryedit" label="JCATEGORY" description="JFIELD_CATEGORY_DESC" required="true" default="" /> <field name="tags" type="tag" label="JTAG" description="JTAG_DESC" class="span12" multiple="true" /> <field name="buttonspacer" type="spacer" description="JGLOBAL_ACTION_PERMISSIONS_DESCRIPTION" /> <field name="created" type="calendar" label="COM_CONTENT_FIELD_CREATED_LABEL" description="COM_CONTENT_FIELD_CREATED_DESC" translateformat="true" showtime="true" size="22" filter="user_utc" /> <field name="created_by" type="user" label="COM_CONTENT_FIELD_CREATED_BY_LABEL" description="COM_CONTENT_FIELD_CREATED_BY_DESC" /> <field name="created_by_alias" type="text" label="COM_CONTENT_FIELD_CREATED_BY_ALIAS_LABEL" description="COM_CONTENT_FIELD_CREATED_BY_ALIAS_DESC" size="20" /> <field name="modified" type="calendar" label="JGLOBAL_FIELD_MODIFIED_LABEL" description="COM_CONTENT_FIELD_MODIFIED_DESC" class="readonly" translateformat="true" showtime="true" size="22" readonly="true" filter="user_utc" /> <field name="modified_by" type="user" label="JGLOBAL_FIELD_MODIFIED_BY_LABEL" class="readonly" readonly="true" filter="unset" /> <field name="checked_out" type="hidden" filter="unset" /> <field name="checked_out_time" type="hidden" filter="unset" /> <field name="publish_up" type="calendar" label="COM_CONTENT_FIELD_PUBLISH_UP_LABEL" description="COM_CONTENT_FIELD_PUBLISH_UP_DESC" translateformat="true" showtime="true" size="22" filter="user_utc" /> <field name="publish_down" type="calendar" label="COM_CONTENT_FIELD_PUBLISH_DOWN_LABEL" description="COM_CONTENT_FIELD_PUBLISH_DOWN_DESC" translateformat="true" showtime="true" size="22" filter="user_utc" /> <field name="version" type="text" label="COM_CONTENT_FIELD_VERSION_LABEL" description="COM_CONTENT_FIELD_VERSION_DESC" size="6" class="readonly" readonly="true" filter="unset" /> <field name="ordering" type="text" label="JFIELD_ORDERING_LABEL" description="JFIELD_ORDERING_DESC" size="6" default="0" /> <field name="metakey" type="textarea" label="JFIELD_META_KEYWORDS_LABEL" description="JFIELD_META_KEYWORDS_DESC" rows="3" cols="30" /> <field name="metadesc" type="textarea" label="JFIELD_META_DESCRIPTION_LABEL" description="JFIELD_META_DESCRIPTION_DESC" rows="3" cols="30" /> <field name="access" type="accesslevel" label="JFIELD_ACCESS_LABEL" description="JFIELD_ACCESS_DESC" size="1" /> <field name="hits" type="number" label="JGLOBAL_HITS" description="COM_CONTENT_FIELD_HITS_DESC" class="readonly" size="6" readonly="true" filter="unset" /> <field name="language" type="contentlanguage" label="JFIELD_LANGUAGE_LABEL" description="COM_CONTENT_FIELD_LANGUAGE_DESC" > <option value="*">JALL</option> </field> <field name="featured" type="radio" label="JFEATURED" description="COM_CONTENT_FIELD_FEATURED_DESC" class="btn-group btn-group-yesno" default="0" > <option value="1">JYES</option> <option value="0">JNO</option> </field> <field name="rules" type="rules" label="JFIELD_RULES_LABEL" translate_label="false" filter="rules" component="com_content" section="article" validate="rules" /> </fieldset> <fields name="attribs" label="COM_CONTENT_ATTRIBS_FIELDSET_LABEL"> <fieldset name="basic" label="COM_CONTENT_ATTRIBS_FIELDSET_LABEL"> <field name="article_layout" type="componentlayout" label="JFIELD_ALT_LAYOUT_LABEL" description="JFIELD_ALT_COMPONENT_LAYOUT_DESC" useglobal="true" extension="com_content" view="article" /> <field name="show_title" type="list" label="JGLOBAL_SHOW_TITLE_LABEL" description="JGLOBAL_SHOW_TITLE_DESC" class="chzn-color" useglobal="true" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="link_titles" type="list" label="JGLOBAL_LINKED_TITLES_LABEL" description="JGLOBAL_LINKED_TITLES_DESC" class="chzn-color" useglobal="true" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="show_tags" type="list" label="COM_CONTENT_FIELD_SHOW_TAGS_LABEL" description="COM_CONTENT_FIELD_SHOW_TAGS_DESC" class="chzn-color" useglobal="true" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_intro" type="list" label="JGLOBAL_SHOW_INTRO_LABEL" description="JGLOBAL_SHOW_INTRO_DESC" class="chzn-color" useglobal="true" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="info_block_position" type="list" label="COM_CONTENT_FIELD_INFOBLOCK_POSITION_LABEL" description="COM_CONTENT_FIELD_INFOBLOCK_POSITION_DESC" useglobal="true" > <option value="0">COM_CONTENT_FIELD_OPTION_ABOVE</option> <option value="1">COM_CONTENT_FIELD_OPTION_BELOW</option> <option value="2">COM_CONTENT_FIELD_OPTION_SPLIT</option> </field> <field name="info_block_show_title" type="list" label="COM_CONTENT_FIELD_INFOBLOCK_TITLE_LABEL" description="COM_CONTENT_FIELD_INFOBLOCK_TITLE_DESC" class="chzn-color" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_category" type="list" label="JGLOBAL_SHOW_CATEGORY_LABEL" description="JGLOBAL_SHOW_CATEGORY_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="link_category" type="list" label="JGLOBAL_LINK_CATEGORY_LABEL" description="JGLOBAL_LINK_CATEGORY_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="show_parent_category" type="list" label="JGLOBAL_SHOW_PARENT_CATEGORY_LABEL" description="JGLOBAL_SHOW_PARENT_CATEGORY_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="link_parent_category" type="list" label="JGLOBAL_LINK_PARENT_CATEGORY_LABEL" description="JGLOBAL_LINK_PARENT_CATEGORY_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="show_associations" type="list" label="JGLOBAL_SHOW_ASSOCIATIONS_LABEL" description="JGLOBAL_SHOW_ASSOCIATIONS_DESC" class="chzn-color" useglobal="true" > <option value="1">JSHOW</option> <option value="0">JHIDE</option> </field> <field name="show_author" type="list" label="JGLOBAL_SHOW_AUTHOR_LABEL" description="JGLOBAL_SHOW_AUTHOR_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="link_author" type="list" label="JGLOBAL_LINK_AUTHOR_LABEL" description="JGLOBAL_LINK_AUTHOR_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="show_create_date" type="list" label="JGLOBAL_SHOW_CREATE_DATE_LABEL" description="JGLOBAL_SHOW_CREATE_DATE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_modify_date" type="list" label="JGLOBAL_SHOW_MODIFY_DATE_LABEL" description="JGLOBAL_SHOW_MODIFY_DATE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_publish_date" type="list" label="JGLOBAL_SHOW_PUBLISH_DATE_LABEL" description="JGLOBAL_SHOW_PUBLISH_DATE_DESC" class="chzn-color" useglobal="true" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_item_navigation" type="list" label="JGLOBAL_SHOW_NAVIGATION_LABEL" description="JGLOBAL_SHOW_NAVIGATION_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_icons" type="list" label="JGLOBAL_SHOW_ICONS_LABEL" description="JGLOBAL_SHOW_ICONS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_print_icon" type="list" label="JGLOBAL_SHOW_PRINT_ICON_LABEL" description="JGLOBAL_SHOW_PRINT_ICON_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_email_icon" type="list" label="JGLOBAL_SHOW_EMAIL_ICON_LABEL" description="JGLOBAL_SHOW_EMAIL_ICON_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_vote" type="list" label="JGLOBAL_SHOW_VOTE_LABEL" description="JGLOBAL_SHOW_VOTE_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_hits" type="list" label="JGLOBAL_SHOW_HITS_LABEL" description="JGLOBAL_SHOW_HITS_DESC" useglobal="true" class="chzn-color" > <option value="0">JHIDE</option> <option value="1">JSHOW</option> </field> <field name="show_noauth" type="list" label="JGLOBAL_SHOW_UNAUTH_LINKS_LABEL" description="JGLOBAL_SHOW_UNAUTH_LINKS_DESC" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="urls_position" type="list" label="COM_CONTENT_FIELD_URLSPOSITION_LABEL" description="COM_CONTENT_FIELD_URLSPOSITION_DESC" useglobal="true" class="chzn-color" > <option value="0">COM_CONTENT_FIELD_OPTION_ABOVE</option> <option value="1">COM_CONTENT_FIELD_OPTION_BELOW</option> </field> <field name="spacer2" type="spacer" hr="true" /> <field name="alternative_readmore" type="text" label="JFIELD_READMORE_LABEL" description="JFIELD_READMORE_DESC" size="25" /> <field name="article_page_title" type="text" label="COM_CONTENT_FIELD_BROWSER_PAGE_TITLE_LABEL" description="COM_CONTENT_FIELD_BROWSER_PAGE_TITLE_DESC" size="25" /> </fieldset> <fieldset name="editorConfig" label="COM_CONTENT_EDITORCONFIG_FIELDSET_LABEL"> <field name="show_publishing_options" type="list" label="COM_CONTENT_SHOW_PUBLISHING_OPTIONS_LABEL" description="COM_CONTENT_SHOW_PUBLISHING_OPTIONS_DESC" default="" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="show_article_options" type="list" label="COM_CONTENT_SHOW_ARTICLE_OPTIONS_LABEL" description="COM_CONTENT_SHOW_ARTICLE_OPTIONS_DESC" default="" useglobal="true" class="chzn-color" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="show_urls_images_backend" type="list" label="COM_CONTENT_SHOW_IMAGES_URLS_BACK_LABEL" description="COM_CONTENT_SHOW_IMAGES_URLS_BACK_DESC" useglobal="true" class="chzn-color" default="" > <option value="0">JNO</option> <option value="1">JYES</option> </field> <field name="show_urls_images_frontend" type="list" label="COM_CONTENT_SHOW_IMAGES_URLS_FRONT_LABEL" description="COM_CONTENT_SHOW_IMAGES_URLS_FRONT_DESC" useglobal="true" class="chzn-color" default="" > <option value="0">JNO</option> <option value="1">JYES</option> </field> </fieldset> <fieldset name="basic-limited" label="COM_CONTENT_ATTRIBS_FIELDSET_LABEL"> <field name="show_title" type="hidden" label="JGLOBAL_SHOW_TITLE_LABEL" description="JGLOBAL_SHOW_TITLE_DESC" /> <field name="link_titles" type="hidden" label="JGLOBAL_LINKED_TITLES_LABEL" description="JGLOBAL_LINKED_TITLES_DESC" /> <field name="show_intro" type="hidden" label="JGLOBAL_SHOW_INTRO_LABEL" description="JGLOBAL_SHOW_INTRO_DESC" /> <field name="show_category" type="hidden" label="JGLOBAL_SHOW_CATEGORY_LABEL" description="JGLOBAL_SHOW_CATEGORY_DESC" /> <field name="link_category" type="hidden" label="JGLOBAL_LINK_CATEGORY_LABEL" description="JGLOBAL_LINK_CATEGORY_DESC" /> <field name="show_parent_category" type="hidden" label="JGLOBAL_SHOW_PARENT_CATEGORY_LABEL" description="JGLOBAL_SHOW_PARENT_CATEGORY_DESC" /> <field name="link_parent_category" type="hidden" label="JGLOBAL_LINK_PARENT_CATEGORY_LABEL" description="JGLOBAL_LINK_PARENT_CATEGORY_DESC" /> <field name="show_author" type="hidden" label="JGLOBAL_SHOW_AUTHOR_LABEL" description="JGLOBAL_SHOW_AUTHOR_DESC" /> <field name="link_author" type="hidden" label="JGLOBAL_LINK_AUTHOR_LABEL" description="JGLOBAL_LINK_AUTHOR_DESC" /> <field name="show_create_date" type="hidden" label="JGLOBAL_SHOW_CREATE_DATE_LABEL" description="JGLOBAL_SHOW_CREATE_DATE_DESC" /> <field name="show_modify_date" type="hidden" label="JGLOBAL_SHOW_MODIFY_DATE_LABEL" description="JGLOBAL_SHOW_MODIFY_DATE_DESC" /> <field name="show_publish_date" type="hidden" label="JGLOBAL_SHOW_PUBLISH_DATE_LABEL" description="JGLOBAL_SHOW_PUBLISH_DATE_DESC" /> <field name="show_item_navigation" type="hidden" label="JGLOBAL_SHOW_NAVIGATION_LABEL" description="JGLOBAL_SHOW_NAVIGATION_DESC" /> <field name="show_icons" type="hidden" label="JGLOBAL_SHOW_ICONS_LABEL" description="JGLOBAL_SHOW_ICONS_DESC" /> <field name="show_print_icon" type="hidden" label="JGLOBAL_SHOW_PRINT_ICON_LABEL" description="JGLOBAL_SHOW_PRINT_ICON_DESC" /> <field name="show_email_icon" type="hidden" label="JGLOBAL_SHOW_EMAIL_ICON_LABEL" description="JGLOBAL_SHOW_EMAIL_ICON_DESC" /> <field name="show_vote" type="hidden" label="JGLOBAL_SHOW_VOTE_LABEL" description="JGLOBAL_SHOW_VOTE_DESC" /> <field name="show_hits" type="hidden" label="JGLOBAL_SHOW_HITS_LABEL" description="JGLOBAL_SHOW_HITS_DESC" /> <field name="show_noauth" type="hidden" label="JGLOBAL_SHOW_UNAUTH_LINKS_LABEL" description="JGLOBAL_SHOW_UNAUTH_LINKS_DESC" /> <field name="alternative_readmore" type="hidden" label="JFIELD_READMORE_LABEL" description="JFIELD_READMORE_DESC" size="25" /> <field name="article_layout" type="hidden" label="JFIELD_ALT_LAYOUT_LABEL" description="JFIELD_ALT_COMPONENT_LAYOUT_DESC" useglobal="true" extension="com_content" view="article" /> </fieldset> </fields> <field name="xreference" type="text" label="JFIELD_KEY_REFERENCE_LABEL" description="JFIELD_KEY_REFERENCE_DESC" size="20" /> <fields name="images" label="COM_CONTENT_FIELD_IMAGE_OPTIONS"> <field name="image_intro" type="media" label="COM_CONTENT_FIELD_INTRO_LABEL" description="COM_CONTENT_FIELD_INTRO_DESC" /> <field name="float_intro" type="list" label="COM_CONTENT_FLOAT_LABEL" description="COM_CONTENT_FLOAT_DESC" useglobal="true" > <option value="right">COM_CONTENT_RIGHT</option> <option value="left">COM_CONTENT_LEFT</option> <option value="none">COM_CONTENT_NONE</option> </field> <field name="image_intro_alt" type="text" label="COM_CONTENT_FIELD_IMAGE_ALT_LABEL" description="COM_CONTENT_FIELD_IMAGE_ALT_DESC" size="20" /> <field name="image_intro_caption" type="text" label="COM_CONTENT_FIELD_IMAGE_CAPTION_LABEL" description="COM_CONTENT_FIELD_IMAGE_CAPTION_DESC" size="20" /> <field name="spacer1" type="spacer" hr="true" /> <field name="image_fulltext" type="media" label="COM_CONTENT_FIELD_FULL_LABEL" description="COM_CONTENT_FIELD_FULL_DESC" /> <field name="float_fulltext" type="list" label="COM_CONTENT_FLOAT_LABEL" description="COM_CONTENT_FLOAT_DESC" useglobal="true" > <option value="right">COM_CONTENT_RIGHT</option> <option value="left">COM_CONTENT_LEFT</option> <option value="none">COM_CONTENT_NONE</option> </field> <field name="image_fulltext_alt" type="text" label="COM_CONTENT_FIELD_IMAGE_ALT_LABEL" description="COM_CONTENT_FIELD_IMAGE_ALT_DESC" size="20" /> <field name="image_fulltext_caption" type="text" label="COM_CONTENT_FIELD_IMAGE_CAPTION_LABEL" description="COM_CONTENT_FIELD_IMAGE_CAPTION_DESC" size="20" /> </fields> <fields name="urls" label="COM_CONTENT_FIELD_URLS_OPTIONS"> <field name="urla" type="url" label="COM_CONTENT_FIELD_URLA_LABEL" description="COM_CONTENT_FIELD_URL_DESC" validate="url" filter="url" relative="true" /> <field name="urlatext" type="text" label="COM_CONTENT_FIELD_URLA_LINK_TEXT_LABEL" description="COM_CONTENT_FIELD_URL_LINK_TEXT_DESC" size="20" /> <field name="targeta" type="list" label="COM_CONTENT_URL_FIELD_BROWSERNAV_LABEL" description="COM_CONTENT_URL_FIELD_BROWSERNAV_DESC" default="" filter="options" useglobal="true" > <option value="0">JBROWSERTARGET_PARENT</option> <option value="1">JBROWSERTARGET_NEW</option> <option value="2">JBROWSERTARGET_POPUP</option> <option value="3">JBROWSERTARGET_MODAL</option> </field> <field name="spacer3" type="spacer" hr="true" /> <field name="urlb" type="url" label="COM_CONTENT_FIELD_URLB_LABEL" description="COM_CONTENT_FIELD_URL_DESC" validate="url" filter="url" relative="true" /> <field name="urlbtext" type="text" label="COM_CONTENT_FIELD_URLB_LINK_TEXT_LABEL" description="COM_CONTENT_FIELD_URL_LINK_TEXT_DESC" size="20" /> <field name="targetb" type="list" label="COM_CONTENT_URL_FIELD_BROWSERNAV_LABEL" description="COM_CONTENT_URL_FIELD_BROWSERNAV_DESC" default="" filter="options" useglobal="true" > <option value="0">JBROWSERTARGET_PARENT</option> <option value="1">JBROWSERTARGET_NEW</option> <option value="2">JBROWSERTARGET_POPUP</option> <option value="3">JBROWSERTARGET_MODAL</option> </field> <field name="spacer4" type="spacer" hr="true" /> <field name="urlc" type="url" label="COM_CONTENT_FIELD_URLC_LABEL" description="COM_CONTENT_FIELD_URL_DESC" validate="url" filter="url" relative="true" /> <field name="urlctext" type="text" label="COM_CONTENT_FIELD_URLC_LINK_TEXT_LABEL" description="COM_CONTENT_FIELD_URL_LINK_TEXT_DESC" size="20" /> <field name="targetc" type="list" label="COM_CONTENT_URL_FIELD_BROWSERNAV_LABEL" description="COM_CONTENT_URL_FIELD_BROWSERNAV_DESC" default="" filter="options" useglobal="true" > <option value="0">JBROWSERTARGET_PARENT</option> <option value="1">JBROWSERTARGET_NEW</option> <option value="2">JBROWSERTARGET_POPUP</option> <option value="3">JBROWSERTARGET_MODAL</option> </field> </fields> <fields name="metadata" label="JGLOBAL_FIELDSET_METADATA_OPTIONS"> <fieldset name="jmetadata" label="JGLOBAL_FIELDSET_METADATA_OPTIONS"> <field name="robots" type="list" label="JFIELD_METADATA_ROBOTS_LABEL" description="JFIELD_METADATA_ROBOTS_DESC" > <option value="">JGLOBAL_USE_GLOBAL</option> <option value="index, follow"></option> <option value="noindex, follow"></option> <option value="index, nofollow"></option> <option value="noindex, nofollow"></option> </field> <field name="author" type="text" label="JAUTHOR" description="JFIELD_METADATA_AUTHOR_DESC" size="20" /> <field name="rights" type="textarea" label="JFIELD_META_RIGHTS_LABEL" description="JFIELD_META_RIGHTS_DESC" filter="string" cols="30" rows="2" /> <field name="xreference" type="text" label="COM_CONTENT_FIELD_XREFERENCE_LABEL" description="COM_CONTENT_FIELD_XREFERENCE_DESC" size="20" /> </fieldset> </fields> <!-- These fields are used to get labels for the Content History Preview and Compare Views --> <fields> <field name="introtext" label="COM_CONTENT_FIELD_INTROTEXT" /> <field name="fulltext" label="COM_CONTENT_FIELD_FULLTEXT" /> </fields> </form> PK �|!]Ƚ.q� � models/forms/filter_articles.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <form> <fields name="filter"> <field name="search" type="text" inputmode="search" label="COM_CONTENT_FILTER_SEARCH_LABEL" description="COM_CONTENT_FILTER_SEARCH_DESC" hint="JSEARCH_FILTER" /> <field name="published" type="status" label="COM_CONTENT_FILTER_PUBLISHED" description="COM_CONTENT_FILTER_PUBLISHED_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_PUBLISHED</option> </field> <field name="category_id" type="category" label="JOPTION_FILTER_CATEGORY" description="JOPTION_FILTER_CATEGORY_DESC" multiple="true" class="multipleCategories" extension="com_content" onchange="this.form.submit();" published="0,1,2" /> <field name="access" type="accesslevel" label="JOPTION_FILTER_ACCESS" description="JOPTION_FILTER_ACCESS_DESC" multiple="true" class="multipleAccessLevels" onchange="this.form.submit();" /> <field name="author_id" type="author" label="COM_CONTENT_FILTER_AUTHOR" description="COM_CONTENT_FILTER_AUTHOR_DESC" multiple="true" class="multipleAuthors" onchange="this.form.submit();" > <option value="0">JNONE</option> </field> <field name="language" type="contentlanguage" label="JOPTION_FILTER_LANGUAGE" description="JOPTION_FILTER_LANGUAGE_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_LANGUAGE</option> <option value="*">JALL</option> </field> <field name="tag" type="tag" label="JOPTION_FILTER_TAG" description="JOPTION_FILTER_TAG_DESC" multiple="true" class="multipleTags" mode="nested" onchange="this.form.submit();" /> <field name="level" type="integer" label="JOPTION_FILTER_LEVEL" description="JOPTION_FILTER_LEVEL_DESC" first="1" last="10" step="1" languages="*" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_MAX_LEVELS</option> </field> <input type="hidden" name="form_submited" value="1"/> </fields> <fields name="list"> <field name="fullordering" type="list" label="COM_CONTENT_LIST_FULL_ORDERING" description="COM_CONTENT_LIST_FULL_ORDERING_DESC" onchange="this.form.submit();" default="a.id DESC" validate="options" > <option value="">JGLOBAL_SORT_BY</option> <option value="a.ordering ASC">JGRID_HEADING_ORDERING_ASC</option> <option value="a.ordering DESC">JGRID_HEADING_ORDERING_DESC</option> <option value="a.state ASC">JSTATUS_ASC</option> <option value="a.state DESC">JSTATUS_DESC</option> <option value="a.featured ASC">JFEATURED_ASC</option> <option value="a.featured DESC">JFEATURED_DESC</option> <option value="a.title ASC">JGLOBAL_TITLE_ASC</option> <option value="a.title DESC">JGLOBAL_TITLE_DESC</option> <option value="category_title ASC">JCATEGORY_ASC</option> <option value="category_title DESC">JCATEGORY_DESC</option> <option value="a.access ASC">JGRID_HEADING_ACCESS_ASC</option> <option value="a.access DESC">JGRID_HEADING_ACCESS_DESC</option> <option value="association ASC" requires="associations">JASSOCIATIONS_ASC</option> <option value="association DESC" requires="associations">JASSOCIATIONS_DESC</option> <option value="a.created_by ASC">JAUTHOR_ASC</option> <option value="a.created_by DESC">JAUTHOR_DESC</option> <option value="language ASC">JGRID_HEADING_LANGUAGE_ASC</option> <option value="language DESC">JGRID_HEADING_LANGUAGE_DESC</option> <option value="a.created ASC">JDATE_ASC</option> <option value="a.created DESC">JDATE_DESC</option> <option value="a.modified ASC">COM_CONTENT_MODIFIED_ASC</option> <option value="a.modified DESC">COM_CONTENT_MODIFIED_DESC</option> <option value="a.publish_up ASC">COM_CONTENT_PUBLISH_UP_ASC</option> <option value="a.publish_up DESC">COM_CONTENT_PUBLISH_UP_DESC</option> <option value="a.publish_down ASC">COM_CONTENT_PUBLISH_DOWN_ASC</option> <option value="a.publish_down DESC">COM_CONTENT_PUBLISH_DOWN_DESC</option> <option value="a.hits ASC">JGLOBAL_HITS_ASC</option> <option value="a.hits DESC">JGLOBAL_HITS_DESC</option> <option value="rating_count ASC" requires="vote">JGLOBAL_VOTES_ASC</option> <option value="rating_count DESC" requires="vote">JGLOBAL_VOTES_DESC</option> <option value="rating ASC" requires="vote">JGLOBAL_RATINGS_ASC</option> <option value="rating DESC" requires="vote">JGLOBAL_RATINGS_DESC</option> <option value="a.id ASC">JGRID_HEADING_ID_ASC</option> <option value="a.id DESC">JGRID_HEADING_ID_DESC</option> </field> <field name="limit" type="limitbox" label="COM_CONTENT_LIST_LIMIT" description="COM_CONTENT_LIST_LIMIT_DESC" class="input-mini" default="25" onchange="this.form.submit();" /> </fields> </form> PK �|!]z�� models/forms/filter_featured.xmlnu &1i� <?xml version="1.0" encoding="utf-8"?> <form> <fields name="filter"> <field name="search" type="text" inputmode="search" label="COM_CONTENT_FILTER_SEARCH_LABEL" description="COM_CONTENT_FILTER_SEARCH_DESC" hint="JSEARCH_FILTER" /> <field name="published" type="status" label="COM_CONTENT_FILTER_PUBLISHED" description="COM_CONTENT_FILTER_PUBLISHED_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_PUBLISHED</option> </field> <field name="category_id" type="category" label="JOPTION_FILTER_CATEGORY" description="JOPTION_FILTER_CATEGORY_DESC" multiple="true" class="multipleCategories" extension="com_content" onchange="this.form.submit();" /> <field name="level" type="integer" label="JOPTION_FILTER_LEVEL" description="JOPTION_FILTER_LEVEL_DESC" first="1" last="10" step="1" languages="*" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_MAX_LEVELS</option> </field> <field name="access" type="accesslevel" label="JOPTION_FILTER_ACCESS" description="JOPTION_FILTER_ACCESS_DESC" multiple="true" class="multipleAccessLevels" onchange="this.form.submit();" /> <field name="author_id" type="author" label="COM_CONTENT_FILTER_AUTHOR" description="COM_CONTENT_FILTER_AUTHOR_DESC" multiple="true" class="multipleAuthors" onchange="this.form.submit();" > <option value="0">JNONE</option> </field> <field name="language" type="contentlanguage" label="JOPTION_FILTER_LANGUAGE" description="JOPTION_FILTER_LANGUAGE_DESC" onchange="this.form.submit();" > <option value="">JOPTION_SELECT_LANGUAGE</option> <option value="*">JALL</option> </field> <field name="tag" type="tag" label="JOPTION_FILTER_TAG" description="JOPTION_FILTER_TAG_DESC" multiple="true" class="multipleTags" mode="nested" onchange="this.form.submit();" /> </fields> <fields name="list"> <field name="fullordering" type="list" label="COM_CONTENT_LIST_FULL_ORDERING" description="COM_CONTENT_LIST_FULL_ORDERING_DESC" onchange="this.form.submit();" default="a.title ASC" validate="options" > <option value="">JGLOBAL_SORT_BY</option> <option value="fp.ordering ASC">JGRID_HEADING_ORDERING_ASC</option> <option value="fp.ordering DESC">JGRID_HEADING_ORDERING_DESC</option> <option value="a.state ASC">JSTATUS_ASC</option> <option value="a.state DESC">JSTATUS_DESC</option> <option value="a.title ASC">JGLOBAL_TITLE_ASC</option> <option value="a.title DESC">JGLOBAL_TITLE_DESC</option> <option value="category_title ASC">JCATEGORY_ASC</option> <option value="category_title DESC">JCATEGORY_DESC</option> <option value="a.access ASC">JGRID_HEADING_ACCESS_ASC</option> <option value="a.access DESC">JGRID_HEADING_ACCESS_DESC</option> <option value="a.created_by ASC">JAUTHOR_ASC</option> <option value="a.created_by DESC">JAUTHOR_DESC</option> <option value="a.publish_up ASC">COM_CONTENT_PUBLISH_UP_ASC</option> <option value="a.publish_up DESC">COM_CONTENT_PUBLISH_UP_DESC</option> <option value="a.publish_down ASC">COM_CONTENT_PUBLISH_DOWN_ASC</option> <option value="a.publish_down DESC">COM_CONTENT_PUBLISH_DOWN_DESC</option> <option value="language ASC">JGRID_HEADING_LANGUAGE_ASC</option> <option value="language DESC">JGRID_HEADING_LANGUAGE_DESC</option> <option value="a.created ASC">JDATE_ASC</option> <option value="a.created DESC">JDATE_DESC</option> <option value="a.hits ASC">JGLOBAL_HITS_ASC</option> <option value="a.hits DESC">JGLOBAL_HITS_DESC</option> <option value="rating_count ASC" requires="vote">JGLOBAL_VOTES_ASC</option> <option value="rating_count DESC" requires="vote">JGLOBAL_VOTES_DESC</option> <option value="rating ASC" requires="vote">JGLOBAL_RATINGS_ASC</option> <option value="rating DESC" requires="vote">JGLOBAL_RATINGS_DESC</option> <option value="a.id ASC">JGRID_HEADING_ID_ASC</option> <option value="a.id DESC">JGRID_HEADING_ID_DESC</option> </field> <field name="limit" type="limitbox" label="COM_CONTENT_LIST_LIMIT" description="COM_CONTENT_LIST_LIMIT_DESC" class="input-mini" default="25" onchange="this.form.submit();" /> </fields> </form> PK �|!]�@�X&