Current Directory: /home/astoriaah/www/old15/administrator/components/com_sh404sef/views/notfound
Viewing File: /home/astoriaah/www/old15/administrator/components/com_sh404sef/views/notfound/view.html.php
<?php
/**
* sh404SEF - SEO extension for Joomla!
*
* @author Yannick Gaultier
* @copyright (c) Yannick Gaultier 2014
* @package sh404SEF
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
* @version 4.4.4.1791
* @date 2014-07-01
*/
// Security check to ensure this file is being included by a parent file.
if (!defined('_JEXEC'))
die('Direct Access to this location is not allowed.');
jimport('joomla.application.component.view');
class Sh404sefViewNotfound extends ShlMvcView_Base
{
// we are in 'urls' view
protected $_context = 'notfound';
public function display($tpl = null)
{
// version prefix
$this->joomlaVersionPrefix = Sh404sefHelperGeneral::getJoomlaVersionPrefix();
// get model and update context with current
$model = $this->getModel();
$context = $model->updateContext($this->_context . '.' . $this->getLayout());
// get url id
$notFoundUrlId = JRequest::getInt('notfound_url_id');
// read url data from model. This is the 404 request we want to
// redirect to something else
// must be called before model->getList()
$url = $model->getUrl($notFoundUrlId);
// and push url into the template for display
$this->url = $url;
// attach data, according to specific layout requested
if ($this->getLayout() == 'default')
{
$this->_attachDataDefault();
}
if (version_compare(JVERSION, '3.0', 'ge'))
{
$document = JFactory::getDocument();
// add our own css
JHtml::styleSheet(Sh404sefHelperGeneral::getComponentUrl() . '/assets/css/' . $this->joomlaVersionPrefix . '_list.css');
// add modal css and js
ShlHtmlBs_helper::addBootstrapCss(JFactory::getDocument());
ShlHtmlBs_helper::addBootstrapModalFixCss(JFactory::getDocument());
ShlHtmlBs_helper::addBootstrapJs(JFactory::getDocument());
// variable for modal, not used in 3..x+
$params = array();
if ($this->getLayout() == 'default')
{
// add display filters
$this->_addFilters();
}
}
else
{
// add our own css
JHtml::styleSheet(Sh404sefHelperGeneral::getComponentUrl() . '/assets/css/' . $this->joomlaVersionPrefix . '_urls.css');
// add our own css
JHtml::styleSheet(Sh404sefHelperGeneral::getComponentUrl() . '/assets/css/list.css');
// link to custom javascript
JHtml::script(Sh404sefHelperGeneral::getComponentUrl() . '/assets/js/list.js');
// link to custom javascript
JHtml::script(Sh404sefHelperGeneral::getComponentUrl() . '/assets/js/notfound.js');
// add behaviors and styles as needed
$modalSelector = 'a.modalediturl';
$js = '\\function(){window.parent.shAlreadySqueezed = false;if(window.parent.shReloadModal) {parent.window.location=\''
. $this->defaultRedirectUrl . '\';window.parent.shReloadModal=true}}';
$params = array('overlayOpacity' => 0, 'classWindow' => 'sh404sef-popup', 'classOverlay' => 'sh404sef-popup', 'onClose' => $js);
Sh404sefHelperHtml::modal($modalSelector, $params);
$options = $model->getDisplayOptions();
$this->optionsSelect = $this->_makeOptionsSelect($options);
// add confirmation phrase to toolbar
$this->toolbarTitle = Sh404sefHelperGeneral::makeToolbarTitle(JText::_('COM_SH404SEF_NOT_FOUND_SELECT_REDIRECT'), $icon = 'sh404sef',
$class = 'sh404sef-toolbar-title');
$this->_makeToolbarDefaultJ2($params);
}
// now display normally
parent::display($this->joomlaVersionPrefix);
}
/**
* Push data needed for display into the view
* for the default layout
*/
private function _attachDataDefault()
{
// get a notFound model
$model = $this->getModel();
// current options
$options = (object) array('layout' => $this->getLayout());
// check if we have similar urls, if not switch to displaying all SEF
// make sure we use latest user state
$model->updateContextData();
$filters = $model->getDisplayOptions();
$this->filterSimilarUrls = $filters->filter_similar_urls;
if ($filters->filter_similar_urls)
{
$total = $model->getTotal($options);
if (empty($total))
{
// switch to show all SEF
$model->setDisplayOptions('filter_similar_urls', 0);
$this->filterSimilarUrls = false;
// reset data in model, as it has been cached from getting the total
$model->resetData();
// and add a message to tell user
$this->alertMsg = JText::_('COM_SH404SEF_NOT_FOUND_SWITCHING_TO_DISPLAY_ALL_SEF');
}
}
// read data from model
$list = $model->getList($options);
// and push it into the view for display
$this->items = $list;
$this->itemCount = is_array($this->items) ? count($this->items) : 0;
$this->pagination = $model->getPagination($options);
$options = $model->getDisplayOptions();
$this->options = $options;
// additional text displayed
$this->mainTitle = JText::_('COM_SH404SEF_NOT_FOUND_SELECT_REDIRECT_FOR');
}
/**
* Create toolbar for current view
*
* @param midxed $params
*/
private function _makeToolbarDefaultJ2($params = null)
{
// add confirmation phrase to toolbar
$this->toolbarTitle = Sh404sefHelperGeneral::makeToolbarTitle(JText::_('COM_SH404SEF_NOT_FOUND_SELECT_REDIRECT'), $icon = 'sh404sef',
$class = 'sh404sef-toolbar-title');
// Get the JComponent instance of JToolBar
$bar = JToolBar::getInstance('toolbar');
// add save button as an ajax call
$bar->addButtonPath(JPATH_COMPONENT . '/' . 'classes');
$params['class'] = 'modalediturl';
$params['id'] = 'modalediturlsave';
$params['closewindow'] = 1;
$bar
->appendButton('Shajaxbutton', 'selectnfredirect', JText::_('COM_SH404SEF_NOT_FOUND_SELECT_REDIRECT'),
"index.php?option=com_sh404sef&c=notfound&task=selectnfredirect&shajax=1&tmpl=component", $params);
// other button are standards
$bar->appendButton('Standard', 'back', JText::_('COM_SH404SEF_BACK_TO_NOT_FOUND'), 'backPopup', false, false);
// push in to the view
$this->toolbar = $bar;
return $bar;
}
private function _makeOptionsSelect($options)
{
$selects = new StdClass();
// component list
$current = $options->filter_component;
$name = 'filter_component';
$selectAllTitle = JText::_('COM_SH404SEF_ALL_COMPONENTS');
$selects->components = Sh404sefHelperHtml::buildComponentsSelectList($current, $name, $autoSubmit = true, $addSelectAll = true,
$selectAllTitle);
// language list
$current = $options->filter_language;
$name = 'filter_language';
$selectAllTitle = JText::_('COM_SH404SEF_ALL_LANGUAGES');
$selects->languages = Sh404sefHelperHtml::buildLanguagesSelectList($current, $name, $autoSubmit = true, $addSelectAll = true, $selectAllTitle);
// select aliases
$current = $options->filter_alias;
$name = 'filter_alias';
$selectAllTitle = JText::_('COM_SH404SEF_ALL_ALIASES');
$data = array(array('id' => Sh404sefHelperGeneral::COM_SH404SEF_ONLY_ALIASES, 'title' => JText::_('COM_SH404SEF_ONLY_ALIASES')),
array('id' => Sh404sefHelperGeneral::COM_SH404SEF_NO_ALIASES, 'title' => JText::_('COM_SH404SEF_ONLY_NO_ALIASES')));
$selects->filter_alias = Sh404sefHelperHtml::buildSelectList($data, $current, $name, $autoSubmit = true, $addSelectAll = true,
$selectAllTitle);
// select custom
$current = $options->filter_url_type;
$name = 'filter_url_type';
$selectAllTitle = JText::_('COM_SH404SEF_ALL_URL_TYPES');
$data = array(array('id' => Sh404sefHelperGeneral::COM_SH404SEF_ONLY_CUSTOM, 'title' => JText::_('COM_SH404SEF_ONLY_CUSTOM')),
array('id' => Sh404sefHelperGeneral::COM_SH404SEF_ONLY_AUTO, 'title' => JText::_('COM_SH404SEF_ONLY_AUTO')));
$selects->filter_url_type = Sh404sefHelperHtml::buildSelectList($data, $current, $name, $autoSubmit = true, $addSelectAll = true,
$selectAllTitle);
// select similar urls or all
$current = $options->filter_similar_urls;
$name = 'filter_similar_urls';
$data = array(array('id' => 1, 'title' => JText::_('COM_SH404SEF_NOT_FOUND_SHOW_SIMILAR_URLS')),
array('id' => 0, 'title' => JText::_('COM_SH404SEF_NOT_FOUND_SHOW_ALL_URLS')));
$selects->filter_similar_urls = Sh404sefHelperHtml::buildSelectList($data, $current, $name, $autoSubmit = true, $addSelectAll = false);
// return set of select lists
return $selects;
}
private function _addFilters()
{
// component selector
JHtmlSidebar::addFilter(JText::_('COM_SH404SEF_ALL_COMPONENTS'), 'filter_component',
JHtml::_('select.options', Sh404sefHelperGeneral::getComponentsList(), 'element', 'name', $this->options->filter_component, true));
// language list
JHtmlSidebar::addFilter(JText::_('COM_SH404SEF_ALL_LANGUAGES'), 'filter_language',
JHtml::_('select.options', JHtml::_('contentlanguage.existing', $all = false, $translate = true), 'value', 'text',
$this->options->filter_language, false));
// select aliases
$data = array(array('value' => Sh404sefHelperGeneral::COM_SH404SEF_ONLY_ALIASES, 'text' => JText::_('COM_SH404SEF_ONLY_ALIASES')),
array('value' => Sh404sefHelperGeneral::COM_SH404SEF_NO_ALIASES, 'text' => JText::_('COM_SH404SEF_ONLY_NO_ALIASES')));
JHtmlSidebar::addFilter(JText::_('COM_SH404SEF_ALL_ALIASES'), 'filter_alias',
JHtml::_('select.options', $data, 'value', 'text', $this->options->filter_alias, true));
// select custom
$data = array(array('value' => Sh404sefHelperGeneral::COM_SH404SEF_ONLY_CUSTOM, 'text' => JText::_('COM_SH404SEF_ONLY_CUSTOM')),
array('value' => Sh404sefHelperGeneral::COM_SH404SEF_ONLY_AUTO, 'text' => JText::_('COM_SH404SEF_ONLY_AUTO')));
JHtmlSidebar::addFilter(JText::_('COM_SH404SEF_ALL_URL_TYPES'), 'filter_url_type',
JHtml::_('select.options', $data, 'value', 'text', $this->options->filter_url_type, true));
// select similar urls or all
$data = array(array('value' => 1, 'text' => JText::_('COM_SH404SEF_NOT_FOUND_SHOW_SIMILAR_URLS')),
array('value' => 0, 'text' => JText::_('COM_SH404SEF_NOT_FOUND_SHOW_ALL_URLS')));
JHtmlSidebar::addFilter(JText::_('COM_SH404SEF_NOT_FOUND_SHOW_SIMILAR_URLS'), 'filter_similar_urls',
JHtml::_('select.options', $data, 'value', 'text', $this->options->filter_similar_urls, true), true);
}
}