0 Пользователей и 1 Гость просматривают эту тему.
  • 269 Ответов
  • 58905 Просмотров
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
vasya63, конкретнее - только готовый код.
К сожалению, у меня готового кода нет.
Вообще достаточно легкая задача для начинающего в php ;)
*

vasya63

  • Новичок
  • 5
  • 0 / 0
Помогите если е сложно, никак не получается
Вот код файла плагина разрыва страниц

Код
/**
 * @package     Joomla.Plugin
 * @subpackage  Content.pagebreak
 *
 * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

jimport('joomla.utilities.utility');

/**
 * Page break plugin
 *
 * <b>Usage:</b>
 * <code><hr class="system-pagebreak" /></code>
 * <code><hr class="system-pagebreak" title="The page title" /></code>
 * or
 * <code><hr class="system-pagebreak" alt="The first page" /></code>
 * or
 * <code><hr class="system-pagebreak" title="The page title" alt="The first page" /></code>
 * or
 * <code><hr class="system-pagebreak" alt="The first page" title="The page title" /></code>
 *
 * @package     Joomla.Plugin
 * @subpackage  Content.pagebreak
 * @since       1.6
 */
class PlgContentPagebreak extends JPlugin
{
/**
* Load the language file on instantiation.
*
* @var    boolean
* @since  3.1
*/
protected $autoloadLanguage = true;

/**
* Plugin that adds a pagebreak into the text and truncates text at that point
*
* @param   string   $context  The context of the content being passed to the plugin.
* @param   object   &$row     The article object.  Note $article->text is also available
* @param   mixed    &$params  The article params
* @param   integer  $page     The 'page' number
*
* @return  mixed  Always returns void or true
*
* @since   1.6
*/
public function onContentPrepare($context, &$row, &$params, $page = 0)
{
$canProceed = $context == 'com_content.article';

if (!$canProceed)
{
return;
}

$style = $this->params->get('style', 'pages');

// Expression to search for.
$regex = '#<hr(.*)class="system-pagebreak"(.*)\/>#iU';

$input = JFactory::getApplication()->input;

$print = $input->getBool('print');
$showall = $input->getBool('showall');

if (!$this->params->get('enabled', 1))
{
$print = true;
}

if ($print)
{
$row->text = preg_replace($regex, '<br />', $row->text);

return true;
}

// Simple performance check to determine whether bot should process further.
if (JString::strpos($row->text, 'class="system-pagebreak') === false)
{
return true;
}

$view = $input->getString('view');
$full = $input->getBool('fullview');

if (!$page)
{
$page = 0;
}

if ($params->get('intro_only') || $params->get('popup') || $full || $view != 'article')
{
$row->text = preg_replace($regex, '', $row->text);

return;
}

// Find all instances of plugin and put in $matches.
$matches = array();
preg_match_all($regex, $row->text, $matches, PREG_SET_ORDER);

if (($showall && $this->params->get('showall', 1)))
{
$hasToc = $this->params->get('multipage_toc', 1);

if ($hasToc)
{
// Display TOC.
$page = 1;
$this->_createToc($row, $matches, $page);
}
else
{
$row->toc = '';
}

$row->text = preg_replace($regex, '<br />', $row->text);

return true;
}

// Split the text around the plugin.
$text = preg_split($regex, $row->text);

// Count the number of pages.
$n = count($text);

// We have found at least one plugin, therefore at least 2 pages.
if ($n > 1)
{
$title = $this->params->get('title', 1);
$hasToc = $this->params->get('multipage_toc', 1);

// Adds heading or title to <site> Title.
if ($title)
{
if ($page)
{
if ($page && @$matches[$page - 1][2])
{
$attrs = JUtility::parseAttributes($matches[$page - 1][1]);

if (@$attrs['title'])
{
$row->page_title = $attrs['title'];
}
}
}
}

// Reset the text, we already hold it in the $text array.
$row->text = '';

if ($style == 'pages')
{
// Display TOC.
if ($hasToc)
{
$this->_createToc($row, $matches, $page);
}
else
{
$row->toc = '';
}

// Traditional mos page navigation
$pageNav = new JPagination($n, $page, 1);

// Page counter.
$row->text .= '<div class="pagenavcounter">';
$row->text .= $pageNav->getPagesCounter();
$row->text .= '</div>';

// Page text.
$text[$page] = str_replace('<hr id="system-readmore" />', '', $text[$page]);
$row->text .= $text[$page];

// $row->text .= '<br />';
$row->text .= '<div class="pager">';

// Adds navigation between pages to bottom of text.
if ($hasToc)
{
$this->_createNavigation($row, $page, $n);
}

// Page links shown at bottom of page if TOC disabled.
if (!$hasToc)
{
$row->text .= $pageNav->getPagesLinks();
}

$row->text .= '</div>';
}
else
{
$t[] = $text[0];

$t[] = (string) JHtml::_($style . '.start', 'article' . $row->id . '-' . $style);

foreach ($text as $key => $subtext)
{
if ($key >= 1)
{
$match = $matches[$key - 1];
$match = (array) JUtility::parseAttributes($match[0]);

if (isset($match['alt']))
{
$title = stripslashes($match['alt']);
}
elseif (isset($match['title']))
{
$title = stripslashes($match['title']);
}
else
{
$title = JText::sprintf('PLG_CONTENT_PAGEBREAK_PAGE_NUM', $key + 1);
}

$t[] = (string) JHtml::_($style . '.panel', $title, 'article' . $row->id . '-' . $style . $key);
}

$t[] = (string) $subtext;
}

$t[] = (string) JHtml::_($style . '.end');

$row->text = implode(' ', $t);
}
}

return true;
}

/**
* Creates a Table of Contents for the pagebreak
*
* @param   object   &$row      The article object.  Note $article->text is also available
* @param   array    &$matches  Array of matches of a regex in onContentPrepare
* @param   integer  &$page     The 'page' number
*
* @return  void
*
* @since  1.6
*/
protected function _createTOC(&$row, &$matches, &$page)
{
$heading = isset($row->title)? $row->title : JText::_('PLG_CONTENT_PAGEBREAK_NO_TITLE');
$input = JFactory::getApplication()->input;
$limitstart = $input->getUInt('limitstart', 0);
$showall = $input->getInt('showall', 0);

// TOC header.
$row->toc = '<div class="pull-right article-index">';

if ($this->params->get('article_index') == 1)
{
$headingtext = JText::_('PLG_CONTENT_PAGEBREAK_ARTICLE_INDEX');

if ($this->params->get('article_index_text'))
{
htmlspecialchars($headingtext = $this->params->get('article_index_text'));
}

$row->toc .= '<h3>' . $headingtext . '</h3>';
}

// TOC first Page link.
$class = ($limitstart === 0 && $showall === 0)? 'toclink active' : 'toclink';
$row->toc .= '<ul class="nav nav-tabs nav-stacked">
<li class="' . $class . '">

<a href="' . JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid). '&showall=&limitstart='). '" class="' . $class . '">'
. $heading .
'</a>

</li>
';

$i = 2;

foreach ($matches as $bot)
{
$link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid). '&showall=&limitstart=' . ($i - 1));

if (@$bot[0])
{
$attrs2 = JUtility::parseAttributes($bot[0]);

if (@$attrs2['alt'])
{
$title = stripslashes($attrs2['alt']);
}
elseif (@$attrs2['title'])
{
$title = stripslashes($attrs2['title']);
}
else
{
$title = JText::sprintf('PLG_CONTENT_PAGEBREAK_PAGE_NUM', $i);
}
}
else
{
$title = JText::sprintf('PLG_CONTENT_PAGEBREAK_PAGE_NUM', $i);
}

$class = ($limitstart == $i - 1)? 'toclink active' : 'toclink';
$row->toc .= '
<li>

<a href="' . $link . '" class="' . $class . '">'
. $title .
'</a>

</li>
';
$i++;
}

if ($this->params->get('showall'))
{
$link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid). '&showall=1&limitstart=');
$class = ($showall == 1)? 'toclink active' : 'toclink';
$row->toc .= '
<li>

<a href="' . $link . '" class="' . $class . '">'
. JText::_('PLG_CONTENT_PAGEBREAK_ALL_PAGES').
'</a>

</li>
';
}

$row->toc .= '</ul></div>';
}

/**
* Creates the navigation for the item
*
* @param   object  &$row  The article object.  Note $article->text is also available
* @param   int     $page  The total number of pages
* @param   int     $n     The page number
*
* @return  void
*
* @since   1.6
*/
protected function _createNavigation(&$row, $page, $n)
{
$pnSpace = '';

if (JText::_('JGLOBAL_LT') || JText::_('JGLOBAL_LT'))
{
$pnSpace = ' ';
}

if ($page < $n - 1)
{
$page_next = $page + 1;

$link_next = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid). '&showall=&limitstart=' . ($page_next));

// Next >>
$next = '<a href="' . $link_next . '">' . JText::_('JNEXT'). $pnSpace . JText::_('JGLOBAL_GT'). JText::_('JGLOBAL_GT'). '</a>';
}
else
{
$next = JText::_('JNEXT');
}

if ($page > 0)
{
$page_prev = $page - 1 == 0 ? '' : $page - 1;

$link_prev = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catid). '&showall=&limitstart=' . ($page_prev));

// << Prev
$prev = '<a href="' . $link_prev . '">' . JText::_('JGLOBAL_LT'). JText::_('JGLOBAL_LT'). $pnSpace . JText::_('JPREV'). '</a>';
}
else
{
$prev = JText::_('JPREV');
}

$row->text .= '<ul><li>' . $prev . ' </li><li>' . $next . '</li></ul>';
}
}

*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
vasya63, вы не сильны в php или не собираетесь изучать его в принципе?
Просто либо вы напишите нужный код с нашими подсказками, либо ищите исполнителя за рубли :)

Подсказка №1: за номер страницы отвечает GET параметр в url, который можно прочитать функцией JRequest::getVar('var',0)
*

vasya63

  • Новичок
  • 5
  • 0 / 0
Мда, мне сразу стало всё ясно как белый день ^-^
Я же сразу написал, что в php не шарю, поэтому и помощи попросил, а вы мне второй раз отвечаете в стиле "учи php".
Если можете помогите, вознаграждение за это хотите, я не против, готов оплатить.
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Мда, мне сразу стало всё ясно как белый день ^-^
Я же сразу написал, что в php не шарю, поэтому и помощи попросил, а вы мне второй раз отвечаете в стиле "учи php".
Если можете помогите, вознаграждение за это хотите, я не против, готов оплатить.
Если вы пришли сюда не для того, чтобы учиться самому, то предлагаю вам продолжить поиски халявную рабочую силу.
А если вы готовы оплатить, тогда вообще проблем не вижу. Задача настолько примитивная, что любой Joomlaвод с ней справится.
*

voland

  • Легенда
  • 11031
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
последние постов 8 какое отношение к теме имеют?!
*

Russya

  • Новичок
  • 5
  • 0 / 0
Здравствуйте. очень полезный плагин.
На главной странице стоят избранные материалы. Не подскажите, как поменять титл для главной страницы?
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Для главной старницы title меняется через пункт меню.
*

olezhek

  • Осваиваюсь на форуме
  • 19
  • 0 / 0
Здравствуйте! Плагин замечательный по сути, но никак у меня не ставится на Joomla 3.3.6 Ставлю плагин, модуль, включаю, модуль публикую, заголовок модуля скрываю. И ничего не появляется в админке. Как быть? Где у меня может быть ошибка?
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
*

PAd1A

  • Новичок
  • 1
  • 0 / 0
Привет
После установки модуля пишет в нем "XML-данные модуля недоступны"
и папка на сервере mod_myextpagetitle называется а не mod_myextPagetitle
"p"маленькая, в старой версии большая была. переименование папки не спасает, права на фалы правильные.
В чем проблема может быть?
*

Benefactor

  • Захожу иногда
  • 156
  • 2 / 2
ТС, низкий Вам поклон! Бесценный плагин!
Немного не понял, зачем модуль?
p.s. Почему просто не добавить по умолчанию эту возможность в J2.5/3.x, ведь такая полезная штука!?
*

Miheich

  • Новичок
  • 3
  • 0 / 0
Спасибо за плагин! Но есть одна проблема, пожалуйста помогите ее решить: использую компонент mosets tree, так в нем на категориях работает все нормально а вот в материале этого компонента не отображается даже поле ввода title.  Как можно с этим разобраться?
*

Benefactor

  • Захожу иногда
  • 156
  • 2 / 2
Miheich, допиливать нужно, там по сути ничего сложного. ДУмаю, ТС за символическую плату без проблем сделает или кто-то другой. Правда ТС на связь не выходит и благодарности не принимает :)
*

Miheich

  • Новичок
  • 3
  • 0 / 0
Цитировать
Miheich, допиливать нужно, там по сути ничего сложного. ДУмаю, ТС за символическую плату без проблем сделает или кто-то другой. Правда ТС на связь не выходит и благодарности не принимает Azn
Я согласен с этим что допилить не проблема да и по деньгам разобрались бы. Весь вопрос в том кто же это сделает?!
*

Benefactor

  • Захожу иногда
  • 156
  • 2 / 2
Miheich, есть раздел платных услуг на этом форуме. Обратитесь туда.
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Правда ТС на связь не выходит и благодарности не принимает :)
Почему-то не приходили уведомления о новых ответах.
С mostree вроде как разобрались, что наш плагин к нему совсем никакого отношения не имеет.
*

parmon

  • Новичок
  • 1
  • 0 / 0
Автору огромное спасибо!
*

rj45

  • Захожу иногда
  • 88
  • 1 / 0
Автору спасибо за решение!
Ставил на Joomla 2.5 все работает. Только не забываем отключать управление мета данными в sh404SEF. Также спасибо за наводку автору этого блога: http://master-site-promotion.ru/seo-and-joomla-2.5/решаем-проблему-одинаковых-title-и-h1-в-joomla-2-5.html
*

alexfairtex

  • Захожу иногда
  • 54
  • 0 / 0
Скажите, в архиве и модуль и плагин.
Плагин установил - работает - супер, огромное спасибо виликим умам!! :)
Скажите, а зачем модуль то?
« Последнее редактирование: 04.08.2015, 17:51:56 от alexfairtex »
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
alexfairtex,
На сайте в инструкции по установке указано "Если включено кеширование, то опубликовать модуль на любой видимой позиции".
Т.е. при включенном кешировании плагин сам по себе работать не будет, т.к. события плагинов, которые бы могли подменять тайтл, при кешировании не обрабатываются.
*

alexfairtex

  • Захожу иногда
  • 54
  • 0 / 0
все работает, разобраться очень легко даже начинающему - огрномное спасибо! :D
*

eDOS

  • Новичок
  • 1
  • 0 / 0
Доброго дня всем.
Проблема с модулем, прошу помощи.
Модуль«mod_myextpagetitle» установлен, плагин тоже, версия Joomla 3.4.3, при заходе в модуль в Менеджер модулей пишет: XML-данные модуля недоступны
При установке из общего архива модуль и плагин распаковывались и устанавливались поодиночке.
Что делать, как заставить модуль работать?
*

admirus

  • Захожу иногда
  • 89
  • 0 / 0
версия Joomla 3.4.3, при заходе в модуль в Менеджер модулей пишет: XML-данные модуля недоступны
У меня та же проблема
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
Попробуйте скачать с сайта обновленную версию и переустановить поверх.
Но никаких опций там и нет
« Последнее редактирование: 16.10.2015, 08:12:24 от pharaoh »
*

W-Man

  • Новичок
  • 2
  • 0 / 0
Добрый. У меня Joomla 2.5.14.
Месяц назад нашел эту ветку - обрадовался, скачал плагин, установил, включил - появилось поле для ввода Page title.
Но изменения тайтла так и не происходит ни в старых, ни в новых статьях, он берется по-прежнему из заголовка.
Установка модуля на видимых полях (headerbar, innertop, logo и др.), включение/отключение кэша ничего не меняет.
Сегодня увидел, что появилась обновленная версия, скачал, установил - все та же картина маслом - тайтл не меняется...
В чем может быть проблема?
« Последнее редактирование: 30.10.2015, 16:28:20 от W-Man »
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
W-Man,
1. Тайтл сохраняется?
2. проверьте, что модуль действительно отрабатывает, например включите вывод заголовка
3. возможно у вас стоит еще какой-нибудь компонент для обработки тайтлов
*

W-Man

  • Новичок
  • 2
  • 0 / 0
1. Тайтл не сохраняется - поле пустое.
2. модуль не знаю отрабатывает ли, но заголовок его вижу.
3. "возможно стоит еще какой-нибудь компонент для обработки тайтлов" - где его искать в компонентах,  плагинах? Как он может обзываться?
*

pharaoh

  • Захожу иногда
  • 426
  • 53 / 0
W-Man,
Если тайтл не сохраняется, то и выводить ему нечего. Проблема на уровне сохранения. С Joomla 2.5 плагин успешно работает уже более 3 лет. Вероятно что-то у вас из внешних установок создает конфликт.
Мы можем посмотреть, если вы на почту поддержки пришлете бекап сайта (akeeba backup в формате zip)
*

globus812

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Плагин выдает ошибку при обновлении, т.к. в модуле указан неверный путь файла для обновлений

1. mod_myextPagetitle - сервер обновлений в Joomla! 3.4.5
http://myext.ru/updates/mod_myextPagetitle.xml

- по этому адресу выдает ошибку:
Not Found
The requested URL /updates/mod_myextPagetitle.xml was not found on this server.
Apache/2.4.10-1-beget-reuseport (Unix) Server at myext.eu Port 80

mod_myextpagetitle.xmll - имя файла в скачанном 9.11.2015 архиве mod_myextpagetitle.zip

2. myextPagetitleContent - сервер обновлений в Joomla! 3.4.5   
http://myext.eu/updates/plg_content_myextPagetitleContent.xml

myextPagetitleContent.xml - имя файла в скачанном 9.11.2015 архиве plg_content_myextPagetitleContent.zip

Попробуйте скачать с сайта обновленную версию и переустановить поверх.
Но никаких опций там и нет
« Последнее редактирование: 10.11.2015, 03:05:48 от globus812 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести поле изображение материала в модуле "Список материалов категории"

Автор aleksandrozz

Ответов: 12
Просмотров: 11379
Последний ответ 14.10.2022, 05:12:04
от denxio
Как добавить описание к пункту меню в Joomla 2.5? (Как у материалов)?

Автор nia

Ответов: 7
Просмотров: 5385
Последний ответ 29.03.2021, 12:10:26
от sivers
В моб версии не откриваються норм меню

Автор umsbeauty

Ответов: 0
Просмотров: 1194
Последний ответ 11.01.2021, 17:55:15
от umsbeauty
Убрать название пункта меню из URL материала

Автор fortuner

Ответов: 15
Просмотров: 8151
Последний ответ 31.10.2020, 00:46:04
от spas
Проблемка с правым меню

Автор V_V

Ответов: 3
Просмотров: 1405
Последний ответ 03.12.2019, 06:24:56
от Vovolsort