@Apostol63

Как сделать сортировку категорий в joomla?

Всем доброго времени суток.

Попал мне в руки сайт на joomla. У клиента был сломан вывод категорий на странице. Сам вывод я починил, а вот сортировку починить не получается
6167f3320dc0d955516926.png

(изображение для удобства ориентирования по номерам строк, ниже строкой написал данный код)

на строках 29 и 31 инпуты, у которых есть метод onchange, который, по логике вещей должен менять переменную $grouped (строка 42) и $list( строки 43 и 123).
По дефолту $grouped равен 1, что означает группировку по регионам
Если нажать на input "по алфавиту", то где-то должно изменится значение переменных $grouped и $list.
Проблема в том, что я не знаю где.

Если нажать на input "по алфавиту", то выводится ошибка
Notice: Undefined variable: select in C:\OpenServer\domains\creditrisl\templates\art\html\mod_articles_category\country.php on line 31

И да, такой же код ошибки по дефолту висит на строку 29, т.е. переменная $select неизвестна. В этом php файле она нигде изначально не задавалась. Видимо, должна задаваться там же где и $grouperd и $list

Кто знает, что тут можно сделать?

Заранее большое спасибо

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_articles_category
 *
 * @copyright   Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

$doc = JFactory::getDocument();
$lang = $doc->getlanguage();
?>
<?php if($lang == "en-gb") : ?>
    <div class="sorting">
        <p>Sort by </p>
        <form method="post" class="sort-form">
            <input class="hide" id="cat" name="selector" type="radio" value="category" onchange="this.form.submit()" <?php if(!isset($_POST['selector'])){echo "checked";}else{ echo $select['category']; }  ?>>
            <label class="cityclose " for="cat">regions</label>
            <input class="hide" id="tit" name="selector" type="radio" value="title" onchange="this.form.submit()" <?= $select['title']; ?>>
            <label class="cityclose " for="tit">alphabet</label>
        </form>
    </div>
<?php else: ?>
    <div class="sorting">
        <p>Сортировка по </p>
        <form method="post" class="sort-form">
            <input class="hide" id="cat" name="selector" type="radio" value="category" onchange="this.form.submit()" <?php if(!isset($_POST['selector'])){echo "checked";}else{ echo $select['category']; }  ?>>
            <label class="cityclose " for="cat">регионам</label>
            <input class="hide" id="tit" name="selector" type="radio" value="title" onchange="this.form.submit()" <?= $select['title']; ?>>
            <label class="cityclose " for="tit">алфавиту</label>
        </form>
    </div>
<?php endif; ?>


<div>

<ul class="category-module<?php echo $moduleclass_sfx; ?>">

	<?php if ($grouped) : ?>
		<?php foreach ($list as $group_name => $group) : ?>

            <!--<?php if(!empty($group->link)) : ?>
            <div class="mod-articles-category-group"><a href="<?= $group['link']; ?>"><?php echo $group_name; ?></a></div>
            <?php else: ?>
            <div class="mod-articles-category-group"><?php echo $group_name; ?></div>
            <?php endif; ?>-->
            <div class="mod-articles-category-group"><?php echo $group_name; ?></div>
			<ul class="continent">
				<?php foreach ($group as $item) : ?>
                    <?php
                        $image = json_decode($item->images, true);
                    ?>
					<li>
						<?php if ($params->get('link_titles') == 1) : ?>

                            <?php if($image['image_intro']) : ?>
                                <img src= "/<?php echo $image['image_intro'] ?>" alt="<?php echo $item->title; ?>" />
                            <?php endif; ?>
							<a class="mod-articles-category-title <?php echo $item->active; ?>" href="<?php echo $item->link; ?>">
								<?php echo $item->title; ?>
							</a>
						<?php else : ?>
							<?php echo $item->title; ?>
						<?php endif; ?>

						<?php if ($item->displayHits) : ?>
							<span class="mod-articles-category-hits">
								(<?php echo $item->displayHits; ?>)
							</span>
						<?php endif; ?>

						<?php if ($params->get('show_author')) : ?>
							<span class="mod-articles-category-writtenby">
								<?php echo $item->displayAuthorName; ?>
							</span>
						<?php endif; ?>

						<?php if ($item->displayCategoryTitle) : ?>
							<span class="mod-articles-category-category">
								(<?php echo $item->displayCategoryTitle; ?>)
							</span>
						<?php endif; ?>

						<?php if ($item->displayDate) : ?>
							<span class="mod-articles-category-date"><?php echo $item->displayDate; ?></span>
						<?php endif; ?>

						<?php if ($params->get('show_introtext')) : ?>
							<p class="mod-articles-category-introtext">
								<?php echo $item->displayIntrotext; ?>
							</p>
						<?php endif; ?>

						<?php if ($params->get('show_readmore')) : ?>
							<p class="mod-articles-category-readmore">
								<a class="mod-articles-category-title <?php echo $item->active; ?>" href="<?php echo $item->link; ?>">
									<?php if ($item->params->get('access-view') == false) : ?>
										<?php echo JText::_('MOD_ARTICLES_CATEGORY_REGISTER_TO_READ_MORE'); ?>
									<?php elseif ($readmore = $item->alternative_readmore) : ?>
										<?php echo $readmore; ?>
										<?php echo JHtml::_('string.truncate', $item->title, $params->get('readmore_limit')); ?>
											<?php if ($params->get('show_readmore_title', 0) != 0) : ?>
												<?php echo JHtml::_('string.truncate', $item->title, $params->get('readmore_limit')); ?>
											<?php endif; ?>
									<?php elseif ($params->get('show_readmore_title', 0) == 0) : ?>
										<?php echo JText::sprintf('MOD_ARTICLES_CATEGORY_READ_MORE_TITLE'); ?>
									<?php else : ?>
										<?php echo JText::_('MOD_ARTICLES_CATEGORY_READ_MORE'); ?>
										<?php echo JHtml::_('string.truncate', $item->title, $params->get('readmore_limit')); ?>
									<?php endif; ?>
								</a>
							</p>
						<?php endif; ?>
					</li>
				<?php endforeach; ?>
			</ul>

		<?php endforeach; ?>
	<?php else : ?>
		<?php foreach ($list as $item) : ?>
            <?php
                $image = json_decode($item->images, true);
            ?>
			<li>
				<?php if ($params->get('link_titles') == 1) : ?>
                    <?php if($image['image_intro']) : ?>
                        <img src= "/<?php echo $image['image_intro'] ?>" alt="<?php echo $item->title; ?>" />
                    <?php endif; ?>
					<a class="mod-articles-category-title <?php echo $item->active; ?>" href="<?php echo $item->link; ?>"><?php echo $item->title; ?></a>
				<?php else : ?>
					<?php echo $item->title; ?>
				<?php endif; ?>

				<?php if ($item->displayHits) : ?>
					<span class="mod-articles-category-hits">
						(<?php echo $item->displayHits; ?>)
					</span>
				<?php endif; ?>

				<?php if ($params->get('show_author')) : ?>
					<span class="mod-articles-category-writtenby">
						<?php echo $item->displayAuthorName; ?>
					</span>
				<?php endif; ?>

				<?php if ($item->displayCategoryTitle) : ?>
					<span class="mod-articles-category-category">
						(<?php echo $item->displayCategoryTitle; ?>)
					</span>
				<?php endif; ?>

				<?php if ($item->displayDate) : ?>
					<span class="mod-articles-category-date">
						<?php echo $item->displayDate; ?>
					</span>
				<?php endif; ?>

				<?php if ($params->get('show_introtext')) : ?>
					<p class="mod-articles-category-introtext">
						<?php echo $item->displayIntrotext; ?>
					</p>
				<?php endif; ?>

				<?php if ($params->get('show_readmore')) : ?>
					<p class="mod-articles-category-readmore">
						<a class="mod-articles-category-title <?php echo $item->active; ?>" href="<?php echo $item->link; ?>">
							<?php if ($item->params->get('access-view') == false) : ?>
								<?php echo JText::_('MOD_ARTICLES_CATEGORY_REGISTER_TO_READ_MORE'); ?>
							<?php elseif ($readmore = $item->alternative_readmore) : ?>
								<?php echo $readmore; ?>
								<?php echo JHtml::_('string.truncate', $item->title, $params->get('readmore_limit')); ?>
							<?php elseif ($params->get('show_readmore_title', 0) == 0) : ?>
								<?php echo JText::sprintf('MOD_ARTICLES_CATEGORY_READ_MORE_TITLE'); ?>
							<?php else : ?>
								<?php echo JText::_('MOD_ARTICLES_CATEGORY_READ_MORE'); ?>
								<?php echo JHtml::_('string.truncate', $item->title, $params->get('readmore_limit')); ?>
							<?php endif; ?>
						</a>
					</p>
				<?php endif; ?>
			</li>
		<?php endforeach; ?>
	<?php endif; ?>
</ul>
</div>
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы