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

robotwerder

  • Захожу иногда
  • 248
  • 6 / 1
Суть в том, что я хочу вставить модуль "похожие материалы" ВЫШЕ комментариев.

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

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

Использую шаблон "purity_iii".
*

flyingspook

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

robotwerder

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

flyingspook

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

robotwerder

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

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

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

SmokerMan

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

robotwerder

  • Захожу иногда
  • 248
  • 6 / 1
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

  • Живу я здесь
  • 3590
  • 247 / 9
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

  • Захожу иногда
  • 248
  • 6 / 1
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

  • Гуру
  • 5293
  • 720 / 26
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

  • Захожу иногда
  • 238
  • 49 / 1
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

  • Захожу иногда
  • 248
  • 6 / 1
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

  • Захожу иногда
  • 248
  • 6 / 1
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

  • Живу я здесь
  • 3590
  • 247 / 9
Re: Вставить код модуля в код Joomla
« Ответ #13 : 19.04.2016, 19:30:27 »
Это тоже не проконало ((
Что именно не проканало?
ну и версия движка какая?
*

SmokerMan

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

robotwerder

  • Захожу иногда
  • 248
  • 6 / 1
Re: Вставить код модуля в код Joomla
« Ответ #15 : 20.04.2016, 21:10:13 »
естественно не проканало, потому что надо внимательно смотреть на то что пишут

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

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
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

  • Захожу иногда
  • 248
  • 6 / 1
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

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

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Вставить код модуля в код Joomla
« Ответ #19 : 21.04.2016, 01:19:39 »
Точка
ну вот и внимательные нашлись  ^-^
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Что хранится в таблице overrider Joomla 3?

Автор web1

Ответов: 2
Просмотров: 191
Последний ответ 04.04.2024, 22:10:48
от web1
Как вставить модуль в код нужной страницы php?

Автор zvi

Ответов: 9
Просмотров: 3834
Последний ответ 21.02.2024, 11:03:08
от saynez
reCAPTCHA V2 Google - Для Joomla 3

Автор Alex GOOD

Ответов: 35
Просмотров: 8324
Последний ответ 10.01.2024, 21:41:38
от Vastriet
Убрать из модуля новостей ссылку на статью, на которой выводится модуль

Автор zeus07

Ответов: 3
Просмотров: 718
Последний ответ 08.11.2023, 21:17:26
от GrayAn
Joomla 3.10.12 и MySQL 8

Автор designer71

Ответов: 0
Просмотров: 393
Последний ответ 19.10.2023, 11:25:18
от designer71