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

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Суть в том, что я хочу вставить модуль "похожие материалы" ВЫШЕ комментариев.

как на скрине.

Я не программер, но как можно сделать это?
как вставить код в файл модуля комментариев, который находится сразу под материалом?

Использую шаблон "purity_iii".
простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

flyingspook

  • Профи
  • 3620
  • 236
Re: Вставить код модуля в код Joomla
« Ответ #1 : 18.04.2016, 18:23:57 »
Зачем так сложно заморачиваться, код модуля в код другого, нужно проще жить, позицию на вывод модуля сделать в нужном месте.
*

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Re: Вставить код модуля в код Joomla
« Ответ #2 : 18.04.2016, 19:25:00 »
Зачем так сложно заморачиваться, код модуля в код другого, нужно проще жить, позицию на вывод модуля сделать в нужном месте.
дак сейчас так и сделано.. но вывод модуля происходит ниже плагина комментариев..а мне надо выше..сразу под материалом
простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

flyingspook

  • Профи
  • 3620
  • 236
Re: Вставить код модуля в код Joomla
« Ответ #3 : 18.04.2016, 21:09:56 »
Надо просто в шаблон материала вставить позицию модуля.
*

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Re: Вставить код модуля в код Joomla
« Ответ #4 : 18.04.2016, 22:15:43 »
Надо просто в шаблон материала вставить позицию модуля.
если вы о том, что лежит
тут
/nashi-pozdravleniya.ru/www/components/com_content/views/article/tmpl

в фале default.pfp то каким образом туда вставить код позиции модуля я не знаю..

а если вы о файле index.php шаблона то я пробовал.. резуольтат описан выше.. похожие матеиалы выводятся ниже плагина соц каментов.
простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

SmokerMan

  • Профи
  • 5334
  • 690
Re: Вставить код модуля в код Joomla
« Ответ #5 : 19.04.2016, 01:26:35 »
сначала надо определиться по какому событию работает плагин onContentPrepare или onContentAfterDisplay
может там есть настройка какая-то в нем
в 2-х словах его надо переделать на onContentAfterDisplay и тогда модуль надо вставлять до
Код
<?php echo $this->item->event->afterDisplayContent; ?>
или как вариант модуль вставить в код плагина)
*

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Re: Вставить код модуля в код Joomla
« Ответ #6 : 19.04.2016, 07:47:33 »
сначала надо определиться по какому событию работает плагин onContentPrepare или onContentAfterDisplay
может там есть настройка какая-то в нем
в 2-х словах его надо переделать на onContentAfterDisplay и тогда модуль надо вставлять до
Код
<?php echo $this->item->event->afterDisplayContent; ?>
или как вариант модуль вставить в код плагина)
про события для меня сложно..
а вот про вставку модуля в код плагина прошу поподробнее ..

его код

Код
<?php
/**
 * JLcomments
 *
 * @version 2.6
 * @author Kunitsyn Vadim (vadim@joomline.ru), Artem Jukov (artem@joomline.ru)
 * @copyright (C) 2011 by Kunitsyn Vadim(http://www.joomline.ru)
 * @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
 **/

// no direct access
defined('_JEXEC') or die;




jimport('joomla.plugin.plugin');

class plgContentJlcomments extends JPlugin
{

public function onContentPrepare($context, &$article, &$params, $page = 0){
if($context == 'com_content.article'){
if (strpos($article->text, '{jlcomments-off}')!== false) {
$article->text = str_replace("{jlcomments-off}","",$article->text);
return true;
}

if (strpos($article->text, '{jlcomments}') === false && !$this->params->def('autoAdd')) {
return true;
}

$exceptcat = is_array($this->params->def('categories'))? $this->params->def('categories') : array($this->params->def('categories'));
if (!in_array($article->catid,$exceptcat)) {
$view = JRequest::getCmd('view');
if ($view == 'article') {
$doc = JFactory::getDocument();
$uri = JURI::getInstance();
$base = $uri->toString(array('scheme', 'host', 'port'));
$article_url = $base.JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->catslug));


$apiId = $this->params->def('apiId');
$widthvk = $this->params->def('widthvk');
$widthfb = $this->params->def('widthfb');
$widthgoogle = $this->params->def('widthgoogle');
$comLimit = $this->params->def('comLimit');
$attach = $this->params->def('attach');
$autoPublish = $this->params->def('autoPublish');
$norealtime = $this->params->def('norealtime');
$fbId = $this->params->def('fbId');
$fbadmin = $this->params->def('fbadmin');
$fb_lang = $this->params->def('fb_lang');
$typeviewerjq = $this->params->def('typeviewerjq');
$typeviewerbs = $this->params->def('typeviewerbs');
$typeviewernojq = $this->params->def('typeviewernojq');
$typeviewercss = $this->params->def('typeviewercss');
$link = $this->params->def('link');
$colorscheme = $this->params->def('colorscheme');
$order_by_fb = $this->params->def('orderbyfb');
$linknone = '';
$lang = JFactory::getLanguage();
$lang->load('plg_content_jlcomments', JPATH_ADMINISTRATOR);
$jlcomments_comments = JText::_('PLG_JLCOMMENTS_COMMENTS');
$jlcomments_vk = JText::_('PLG_JLCOMMENTS_VK');
$jlcomments_fb = JText::_('PLG_JLCOMMENTS_FB');
$jlcomments_google = JText::_('PLG_JLCOMMENTS_GOOGLE');

$script = "VK.init({apiId: $apiId, onlyWidgets: true});";
$doc->addCustomTag('<meta property="fb:admins" content="'.$fbadmin.'"/>');
$doc->addCustomTag('<meta property="fb:app_id" content="'.$fbId.'"/>');
$doc->addScript("//vk.com/js/api/openapi.js?95");
$doc->addCustomTag('<script src="https://apis.google.com/js/plusone.js" type="text/javascript">{lang: "'.$fb_lang.'"}</script>');
$doc->addScriptDeclaration($script);
$pagehash = $article->id;
$orders = explode(",",$this->params->def('orders'));
if (($this->params->def('googleid')!='')&&($this->params->def('googleplus'))){
$doc->addCustomTag('<link rel="author" href="https://plus.google.com/'. $this->params->def('googleid').'/">');
}
else {}

if ($link==0){
$linknone = 'display:none;';
}
else {}

If ($typeviewerjq==1) {
$doc->addCustomTag('<script src="http://yandex.st/jquery/1.9.1/jquery.min.js"></script>');
}
If ($typeviewercss==1) {
$doc->addStyleSheet("/plugins/content/jlcomments/css/jlcomtabs.css");
}
If ($typeviewerbs==1) {
$doc->addCustomTag('<script src="http://yandex.st/bootstrap/2.3.0/js/bootstrap.min.js"></script>');
}
If ($typeviewernojq==1) {
$doc->addCustomTag ('<script type="text/javascript">var jqjlcomm = jQuery.noConflict();</script>');
}
else {}

                $comments = JPATH_SITE . '/components/com_jcomments/jcomments.php';
                  if (file_exists($comments)) {
                    require_once($comments);
                    $options['object_id'] = $pagehash;
                    $options['object_group'] = 'com_content';
                    $options['published'] = 1;
                    $count = JCommentsModel::getCommentsCount($options);
                  }

$scriptPage = <<<HTML

<div style="border-top: 1px solid #eeeeee; padding-top:10px">
<b>Поделиться:</b><p> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script>
<script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script>
<div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,viber,whatsapp" data-counter=""></div>
<div>




<br clear="all"><div id="jlcomments_container"><ul class="nav nav-tabs" id="plgjlcomments1">
HTML;



foreach ($orders as $order) {
switch($order) {
case 1: if ($this->params->def('showjcomments')) { $scriptPage .= <<<HTML
<li style="list-style-type: none;" class="active"><a href="#jcommentscomm" data-toggle="tab"><i class="jlico-comments"></i> $jlcomments_comments ($count)</a></li>
HTML;
} else {$scriptPage .='';$showjcomments='-1';} break;
case 2: if ($this->params->def('showvkontakte')) { $scriptPage .= <<<HTML
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery.ajax({
url: "https://api.vk.com/method/widgets.getComments.json?widget_api_id=$apiId&page_id=$pagehash",
dataType: 'jsonp',
success: function(data){
jQuery('#vk_count').text(data.response.count);
},
error: function(data){
console.log(data);
}
});
});
</script>
<li style="list-style-type: none;"><a href="#vkcomm" data-toggle="tab"><i class="jlico-vk"></i> $jlcomments_vk (<span id="vk_count"></span>)</a></li>
HTML;
} else {$scriptPage .='';} break;
case 3: if ($this->params->def('googleplus')) {
$width_ = $widthgoogle.'px';
$scriptPage .= <<<HTML
<style>
#googlecomm * {width:$width_ !important;min-height:600px !important;}
</style>
<li style="list-style-type: none;"><a href="#googlecomm" data-toggle="tab"><i class="jlico-google"></i> $jlcomments_google</a></li>
HTML;
} else {$scriptPage .='';} break;
case 4: if ($this->params->def('showfacebook')) { $scriptPage .= <<<HTML
<style>
.fb-comments,.fb-comments span,.fb-comments iframe {min-height: 300px!important; width:100%!important;}
.fb_hide_iframes iframe {left:0px !important;}
</style>

<li style="list-style-type: none;"><a href="#fbcomm" data-toggle="tab"><div><i class="jlico-facebook"></i> $jlcomments_fb (<fb:comments-count $article_url/> </fb:comments-count>)</div></a></li>
HTML;
} else {$scriptPage .='';} break;
}
}

$scriptPage .= <<<HTML
</ul>
<div class="tab-content">
HTML;
foreach ($orders as $order) {
switch($order) {
case 1: if ($this->params->def('showjcomments')) { $scriptPage .= <<<HTML
<div class="tab-pane active" id="jcommentscomm">
{jcomments}
</div>
HTML;
} else {$scriptPage .='';$showjcomments='-1';} break;
case 2: if ($this->params->def('showvkontakte')) { $scriptPage .= <<<HTML
<div class="tab-pane" id="vkcomm">
<div id='jlcomments'></div>
<script type='text/javascript'>
VK.Widgets.Comments('jlcomments', {limit: $comLimit, width: '$widthvk', attach: '$attach', autoPublish: $autoPublish, norealtime: $norealtime},$pagehash);
</script>
</div>

HTML;
} else {$scriptPage .='';} break;
case 3: if ($this->params->def('googleplus')) {

$scriptPage .= <<<HTML



<div class="tab-pane" id="googlecomm">

<div class="g-comments"
data-href="$article_url"
data-width="$widthgoogle"
data-first_party_property="BLOGGER"
data-view_type="FILTERED_POSTMOD">
</div>
</div>
HTML;
} else {$scriptPage .='';} break;
case 4: if ($this->params->def('showfacebook')) { $scriptPage .= <<<HTML
                <div class="tab-pane" id="fbcomm">
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/$fb_lang/all.js#xfbml=1&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-comments" data-href="$article_url" data-num-posts="$comLimit" data-width="$widthfb" data-colorscheme="$colorscheme" data-order-by="$order_by_fb"></div>
</div>


HTML;
} else {$scriptPage .='';} break;
}
}
$scriptPage .= <<<HTML
</div>
</div>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('#plgjlcomments1 a:first').tab('show');
});
</script>
<div style="text-align: right; $linknone;">
<a style="text-decoration:none; color: #c0c0c0; font-family: arial,helvetica,sans-serif; font-size: 5pt; " target="_blank" href="http://www.38i.ru">www.38i.ru</a>
</div>
HTML;

if ($this->params->def('autoAdd') == 1) {
$article->text .= $scriptPage;
} else {
$article->text = str_replace("{jlcomments}",$scriptPage,$article->text);
}

}
} else {
$article->text = str_replace("{jlcomments}","",$article->text);
}

}
}
}
простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

flyingspook

  • Профи
  • 3620
  • 236
Re: Вставить код модуля в код Joomla
« Ответ #7 : 19.04.2016, 10:57:47 »

/nashi-pozdravleniya.ru/www/components/com_content/views/article/tmpl
да, вставить туда позицию модуля если вывод выполняется через него

в плагин, перед
Код: php
$scriptPage = <<<HTML
<div style="border-top: 1px solid #eeeeee; padding-top:10px">
вставьте позицию модуля
*

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Re: Вставить код модуля в код Joomla
« Ответ #8 : 19.04.2016, 11:50:33 »
Parse error: syntax error, unexpected '<' in /home/u30016/nashi-pozdravleniya.ru/www/plugins/content/jlcomments/jlcomments.php on line 111

такая ошибка появляется
простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

SmokerMan

  • Профи
  • 5334
  • 690
Re: Вставить код модуля в код Joomla
« Ответ #9 : 19.04.2016, 12:03:54 »
Цитировать
$document   =  JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
$position   = 'позиция модуля';
$scriptPage = $renderer->render($position, $options, null);


$scriptPage .= <<<HTML

<div style="border-top: 1px solid #eeeeee; padding-top:10px">   
....
*

shur

  • Давно я тут
  • 239
  • 48
Re: Вставить код модуля в код Joomla
« Ответ #10 : 19.04.2016, 12:38:06 »
Цитировать
или как вариант модуль вставить в код плагина)
Да уже есть несколько готовых плагинов которые добавляют позиции с модулями на стр. материала.

Вот к примеру плагин который может добавить до 3 позиций для вставки модулей на страницу с статьей.
Причем, позицию можно вывести после заголовка, после текста материала и даже внутри текста материала если нужно.
http://extensions.joomla.org/extensions/extension/style-a-design/modules-management/raxo-load-module-position


Цитировать
Суть в том, что я хочу вставить модуль "похожие материалы" ВЫШЕ комментариев.
...
Я не программер, но как можно сделать это?
Судя по всему, вам бы подошел этот плагин, в нем вам нужно использовать позицию "after-content" которая как раз выводится после текста, но перед комментариями.
*

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Re: Вставить код модуля в код Joomla
« Ответ #11 : 19.04.2016, 16:30:27 »
Да уже есть несколько готовых плагинов которые добавляют позиции с модулями на стр. материала.

Вот к примеру плагин который может добавить до 3 позиций для вставки модулей на страницу с статьей.
Причем, позицию можно вывести после заголовка, после текста материала и даже внутри текста материала если нужно.
http://extensions.joomla.org/extensions/extension/style-a-design/modules-management/raxo-load-module-position

Судя по всему, вам бы подошел этот плагин, в нем вам нужно использовать позицию "after-content" которая как раз выводится после текста, но перед комментариями.

это то что мне нужно конечно, но он платный.. нафиг надо за 18 баксов его покупать
простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Re: Вставить код модуля в код Joomla
« Ответ #12 : 19.04.2016, 16:37:14 »
$document   =  JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
$position   = 'позиция модуля';
$scriptPage = $renderer->render($position, $options, null);

$scriptPage .= <<<HTML

<div style="border-top: 1px solid #eeeeee; padding-top:10px">   
....

Это тоже не проконало ((

Код
               $comments = JPATH_SITE . '/components/com_jcomments/jcomments.php';
                  if (file_exists($comments)) {
                    require_once($comments);
                    $options['object_id'] = $pagehash;
                    $options['object_group'] = 'com_content';
                    $options['published'] = 1;
                    $count = JCommentsModel::getCommentsCount($options);
                  }

$document   =  JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'xhtml');
$position   = 'position-down';
$scriptPage = $renderer->render($position, $options, null);
$scriptPage = <<<HTML

<div style="border-top: 1px solid #eeeeee; padding-top:10px">
<b>Поделиться:</b><p> <script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script>
<script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script>
<div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,viber,whatsapp" data-counter=""></div>
<div>


простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

flyingspook

  • Профи
  • 3620
  • 236
Re: Вставить код модуля в код Joomla
« Ответ #13 : 19.04.2016, 19:30:27 »
Это тоже не проконало ((
Что именно не проканало?
ну и версия движка какая?
*

SmokerMan

  • Профи
  • 5334
  • 690
Re: Вставить код модуля в код Joomla
« Ответ #14 : 19.04.2016, 21:12:42 »
Это тоже не проконало ((
естественно не проканало, потому что надо внимательно смотреть на то что пишут
*

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Re: Вставить код модуля в код Joomla
« Ответ #15 : 20.04.2016, 21:10:13 »
естественно не проканало, потому что надо внимательно смотреть на то что пишут

Грешу невнимательностью. Но вроде бы все правильно сделал, лишь стиль вывода подредактировал, исправил на "T3Xhtml"
Укажите, что сделал не так, ибо модуль внизу матриала по прежнему не выводится(
простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

flyingspook

  • Профи
  • 3620
  • 236
Re: Вставить код модуля в код Joomla
« Ответ #16 : 20.04.2016, 22:06:22 »
Читать внимательно надо, Горыныч написал
сначала надо определиться по какому событию работает плагин onContentPrepare или onContentAfterDisplay
может там есть настройка какая-то в нем
в 2-х словах его надо переделать на onContentAfterDisplay и тогда модуль надо вставлять до
Код: php
<?php echo $this->item->event->afterDisplayContent; ?>
или как вариант модуль вставить в код плагина)
у вас в плагине
Код: php
public function onContentPrepare($context, &$article, &$params, $page = 0){
его надо менять
*

robotwerder

  • Осваиваюсь на форуме
  • 199
  • 5
Re: Вставить код модуля в код Joomla
« Ответ #17 : 20.04.2016, 23:00:00 »
Читать внимательно надо, Горыныч написалу вас в плагине
Код: php
public function onContentPrepare($context, &$article, &$params, $page = 0){
его надо менять

я конечно извиняюсь, долго пытался вникнуть в ваше повествование)).но я н специалист)... фразу
Цитировать
его надо менять
не понял.. кого его? не плагин же

Понял что необходимо изменить событие на onContentAfterDisplay.
Поэтому тупо заменил

   public function onContentPrepare($context, &$article, &$params, $page = 0){

на onContentAfterDisplay ($context, &$article, &$params, $page = 0){

что естественное результата не принесло).

простое спасибо просьба выражать математическими знаками, желательно плюсами (+)
*

robert

  • Профи
  • 4082
  • 378
Re: Вставить код модуля в код Joomla
« Ответ #18 : 20.04.2016, 23:24:09 »
deleted
« Последнее редактирование: 21.04.2016, 12:47:42 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

SmokerMan

  • Профи
  • 5334
  • 690
Re: Вставить код модуля в код Joomla
« Ответ #19 : 21.04.2016, 01:19:39 »
Точка
ну вот и внимательные нашлись  ^-^
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не рабатает редирект после отправки формы модуля

Автор alpha_ru

Ответов: 5
Просмотров: 90
Последний ответ 24.09.2017, 20:36:22
от robert
Скрыть показ модуля в подкатегории

Автор kindzudza

Ответов: 6
Просмотров: 60
Последний ответ 23.09.2017, 20:32:40
от kindzudza
Перенаправление url при смене версии Joomla и прежней структуры сайта

Автор Afman

Ответов: 20
Просмотров: 343
Последний ответ 23.09.2017, 08:15:02
от voland
Notice: Undefined offset: 1 in /libraries/joomla/environment/browser.php on line 282

Автор planetaryi

Ответов: 3
Просмотров: 249
Последний ответ 17.09.2017, 11:24:53
от botva
Искажается отображение модуля при прокрутке сайта

Автор vipex

Ответов: 2
Просмотров: 59
Последний ответ 10.09.2017, 16:43:36
от vipex