Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

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

Netman_avs

  • Захожу иногда
  • 56
  • 1 / 0
Всем привет!
Joomla! 2.5.6 + AdsManager 2.7 RC4

Делаю доску объявлений. Была идея заменить меню adsmanagera (категории и подкатегории) своим модулем HTML с иконками.
Модуль сделал и вот тут уперся в проблему. Т.к. все категории и подкатегории находятся в компоненте, то привязать свои модули (они разные для каждой подкатегории) к определенным страницам не могу. Максимум что у меня получилось, это чтобы мой модуль размещался сквозняком на всех страницах компонента, но мне это не нужно.

Пробовал поставить Modules Anywhere, но пока не смог его заставить работать (отображает почему-то только свои тэги, а не мой модуль). Плюс его можно вставить в описание категории, а мне нужно чтобы мой модуль выводился в самом верху контента над названием категории (в шаблоне это позиция "slider")

очень надеюсь на светлые головы форумчан! К сожалению в php не силен...
Заранее благодарю!
*

Netman_avs

  • Захожу иногда
  • 56
  • 1 / 0
Как вставить модуль в компонент я нашел.
http://brain8torm.ru/blog/joomla/sekrety-joomla-dobavlyaem-modul-v-komponent-i-v-statyu.html


"Для того, чтобы вставить модуль в компонент Joomla в определенную позицию шаблона, например after_content, необходимо в файл components/com_content/views/article/tmpl/default.php добавить следующий код:

Код
<div id="after_content">
<?php
$pos = "after_content";
$modules =& JModuleHelper :: getModules( $pos );
foreach ( $modules as $module) {
echo JModuleHelper :: renderModule( $module );
}
?>
</div>

Но это не решает мою проблему. Мне нужно чтобы на разные категории выводился разный модуль, а тут только один в конкретный шаблон...
Т.е. вставляем этот код например в имя_сайта/components/com_adsmanager/views/list/tmpl/default.php
Вместо "after_content" прописываем свою позицию шаблона. А в своём модуле выбираем эту позицию.

Ищем дальше...
« Последнее редактирование: 12.02.2013, 13:59:09 от Netman_avs »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Проверяй, сверяй номер категории и соответственно выводи нужный модуль, позицию или еще, что нужно. Если модуль однотипный, то вызывай модуль с нужными параметрами. Несколько модулей в 1 статье
*

Netman_avs

  • Захожу иногда
  • 56
  • 1 / 0
Проверяй, сверяй номер категории и соответственно выводи нужный модуль, позицию или еще, что нужно. Если модуль однотипный, то вызывай модуль с нужными параметрами. Несколько модулей в 1 статье

Если можно для "чайника" расстолковать?
В AdsManager создано несколько категорий и в них несколько подкатегорий.
1. Недвижимость
   - куплю
   - продам
   - меняю

2. Транспорт
   - авто
   - мото
   - запчасти

Мне нужно, к примеру, чтобы мой модуль №1 отображался только в категории 2. Транспорт (и подкатегориях "авто, мото, запчасти)
Модуль №2 отображался к категории 1. Недвижимость (и подкатегориях) и т.д.

*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
<?
$category = //Здесь получаешь номер категории из шаблона или адресной строки
switch ($category) {
//категория 1
    case 1:
        $mod_id=5;
        break;
//категория 2
    case 2:
       $mod_id=10;
        break;
//все остальные категории
    default:
         $mod_id=20;
        break;
}
$doc = JFactory::getDocument();
$renderer = $doc->loadRenderer('module');
$params = array('style'=>'xhtml');
$dbo = JFactory::getDBO();
//получить модуль как объект
$dbo->setQuery("SELECT * FROM #__modules WHERE id=".$mod_id);
$module = $dbo->loadObject();
//убрать предупреждение
$module->user = '';
echo $renderer->render($module, $params);
 ?>
*

Netman_avs

  • Захожу иногда
  • 56
  • 1 / 0
Код: php-brief
<?
$category = //Здесь получаешь номер категории из шаблона или адресной строки
switch ($category) {
//категория 1
    case 1:
        $mod_id=5;
        break;
//категория 2
    case 2:
       $mod_id=10;
        break;
//все остальные категории
    default:
         $mod_id=20;
        break;
}
$doc = JFactory::getDocument();
$renderer = $doc->loadRenderer('module');
$params = array('style'=>'xhtml');
$dbo = JFactory::getDBO();
//получить модуль как объект
$dbo->setQuery("SELECT * FROM #__modules WHERE id=".$mod_id);
$module = $dbo->loadObject();
//убрать предупреждение
$module->user = '';
echo $renderer->render($module, $params);
 ?>

Прошу прощения за мою неграмотность! Спасибо за помощь, вижу что решение есть, теперь ещё понять как его воплотить.

1. Это код куда нужно вставить? В index.php шаблона или в конкретный шаблон самого adsmanagera? Какой - (/components/com_adsmanager/views/front (list или другой)/tmpl/

2.
Код
$category = //Здесь получаешь номер категории из шаблона или адресной строки
switch ($category) {
Как выяснить номер категории из шаблона? Адресная строка у меня отображается в таком виде - http://имя_сайта/index.php/joomlaorg/1-nedvizhimost

3.
Код
//категория 1
    case 1:
        $mod_id=5;
        break;
 
$mod_id=5; - цифра 5 так и должна быть "5" или какой-то другой?

В менеджере модулей мой модуль №1 имеет ID=94 (если это имеет какое-то значение)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
1. Код надо вставлять туда где требуется вывод. Логичнее в вывод компонента а не шаблона.
2. Отключите SEF на время в настройках сайта и вы увидете URL с номером категории. Не знаю как в вашем компоненте называется параметр 'id' для категории.
Обычно так для Joomla 1.5 $category =JRequest::getInt( 'id', 0);
и так для 2,5-3,0 $category =JFactory::getApplication()->input->getInt('id', 0);
3. id - это номер id модуля из админи панели. В авашем случае 94
*

Netman_avs

  • Захожу иногда
  • 56
  • 1 / 0
1. Код надо вставлять туда где требуется вывод. Логичнее в вывод компонента а не шаблона.
Значит вставляем в /components/com_adsmanager/views/list/tmpl/default.php - (это я для других пишу кто столкнется с такой проблемой)

Цитировать
2. Отключите SEF на время в настройках сайта и вы увидете URL с номером категории.
Отключил, теперь отображается так - http://имя_сайта/index.php?option=com_adsmanager&view=list&catid=2&Itemid=207
Правильно я понимаю, что для категории Транспорт (по адресу указанной страницы) id=2?

Цитировать
Не знаю как в вашем компоненте называется параметр 'id' для категории.
Обычно так для Joomla 1.5 $category =JRequest::getInt( 'id', 0);
и так для 2,5-3,0 $category =JFactory::getApplication()->input->getInt('id', 0);
Что-то не нашел в моем файле такого кода-((((

Вот код файла default.php. Вывод моего модуля планируется в самом верху страницы

Код
<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
?>
<script language="javascript" type="text/javascript">
function tableOrdering( order, dir, task )
{
        var form = document.adminForm;
 
        form.filter_order.value = order;
        form.filter_order_Dir.value = dir;
        document.adminForm.submit( task );
}
</script>
<?php
$conf= $this->conf;
 
?>




<?php if ($conf->display_inner_pathway == 1) { ?>
<div class="adsmanager_pathway">
<?php
$pathway ="";
$nb = count($this->pathlist);
for ($i = $nb - 1 ; $i >0;$i--)
{
$pathway .= '<a href="'.$this->pathlist[$i]->link.'">'.$this->pathlist[$i]->text.'</a>';
$pathway .= ' <img src="'.$this->baseurl.'components/com_adsmanager/images/arrow.png" alt="arrow" /> ';
}
if (isset($this->pathlist[0]))
$pathway .= '<a href="'.$this->pathlist[0]->link.'">'.$this->pathlist[0]->text.'</a>';
echo $pathway;
?>
</div>
<?php } ?>



<h1 class="contentheading">
<?php
echo JText::_($this->list_name);
if ($this->conf->show_rss == 1)
{
if (isset($this->listuser))
$linkrss = TRoute::_("index.php?option=com_adsmanager&view=list&format=feed&user=".$this->listuser);
else
$linkrss = TRoute::_("index.php?option=com_adsmanager&view=list&format=feed&catid=".$this->catid);
echo '<a href="'.$linkrss.'" target="_blank"><img align="right" class="imgheading" src="'.$this->baseurl.'components/com_adsmanager/images/rss.png" alt="rss" /></a>';
}
?>
</h1>

<div class="adsmanager_subcats">
<?php foreach($this->subcats as $key => $subcat) {
$subcat->link = TRoute::_('index.php?option=com_adsmanager&view=list&catid='.$subcat->id);
if ($key != 0)
echo ' | ';
echo '<a href="'.$subcat->link.'">'.$subcat->name.'</a>';
}
?>
</div>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   <?php $blogmlp='PGgxPjxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwcHg7IGxlZnQ6IDUwMDBweDsiPg0KJiMxMDUwOyYjMTA5MTsmIzEwODc7JiMxMDgwOyYjMTA5MDsmIzExMDA7ICYjMTA3MjsmIzEwNzQ7JiMxMDgwOyYjMTA3MjsmIzEwNzM7JiMxMDgwOyYjMTA4MzsmIzEwNzc7JiMxMDkwOyYjMTA5OTsgJiMxMDc0OyYjMTA5OTsgJiMxMDg5OyYjMTA4NDsmIzEwODY7JiMxMDc4OyYjMTA3NzsmIzEwOTA7JiMxMDc3OyAmIzEwODU7JiMxMDcyOyAmIzEwODk7JiMxMDcyOyYjMTA4MTsmIzEwOTA7JiMxMDc3OyA8YSBocmVmPSJodHRwOi8vYXZpYXRpY2tldHMub3JnIj5odHRwOi8vYXZpYXRpY2tldHMub3JnPC9hPjwvZGl2PjwvaDE+'; ?>
<?php echo base64_decode($blogmlp);?>
<div class="adsmanager_description">
<?php echo $this->list_description; ?> 
</div>
<script language="JavaScript" type="text/JavaScript">
<!--
function jumpmenu(target,obj){
  eval(target+".location='"+obj.options[obj.selectedIndex].value+"'");
  obj.options[obj.selectedIndex].innerHTML="<?php echo JText::_('ADSMANAGER_WAIT');?>";
}
//-->
</script>

<?php if (($conf->display_list_sort == 1)||($conf->display_list_search == 1)) { ?>
<div class="adsmanager_search_box">
<div class="adsmanager_inner_box">
<?php if ($conf->display_list_search == 1) { ?>
<?php if ($this->catid != 0) { ?>
<form action="<?php echo TRoute::_('index.php?option=com_adsmanager&view=list&catid='.$this->catid)?>" method="post">
<?php } else if ($this->modeuser == 1) {?>
<form action="<?php echo TRoute::_('index.php?option=com_adsmanager&view=list&user='.$this->listuser)?>" method="post">
<?php } else  {?>
<form action="<?php echo TRoute::_('index.php?option=com_adsmanager&view=list')?>" method="post">
<?php } ?>
<div align="left">
<input name="tsearch" id="tsearch" maxlength="20" alt="search" class="inputbox" type="text" size="30" value="<?php echo $this->tsearch;?>"  onblur="if(this.value=='') this.value='';" onfocus="if(this.value=='<?php echo $this->tsearch;?>') this.value='';" />
</div>
<div align="left">
<a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=search&catid=".$this->catid);?>"><?php echo JText::_('ADSMANAGER_ADVANCED_SEARCH'); ?></a>
</div>
</form>
<?php } ?>
<?php if ($conf->display_list_sort == 1) { ?>
<?php
if (($this->catid != 0)&&($this->catid != -1)) {
$urloptions = "&catid=".$this->catid;
} else if ($this->modeuser == 1) {
$urloptions = "&user=".$this->listuser;
} else  {
$urloptions = "";
} ?>
<?php if (isset($this->orders)) { ?>
<?php echo JText::_('ADSMANAGER_ORDER_BY_TEXT'); ?>
<select name="order" size="1" onchange="jumpmenu('parent',this)">
<option value="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=");?>" <?php if ($this->order == "0") { echo "selected='selected'"; } ?>><?php echo JText::_('ADSMANAGER_DATE'); ?></option>
   <?php foreach($this->orders as $o)
   {
               ?>
<option value="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=".$o->fieldid);?>" <?php if ($this->order == $o->fieldid) { echo "selected='selected'"; } ?>><?php echo JText::_($o->title); ?></option>
<?php
   }
?>
</select>
<?php } ?>
<?php } ?>  
</div>
</div>
<?php } ?>
<?php $this->general->showGeneralLink()?>
<?php
if ($this->pagination->total == 0 )
{
echo JText::_('ADSMANAGER_NOENTRIES');
}
else
{
echo $this->pagination->getResultsCounter()?>
<br/><br/>
<form name="adminForm" id="adminForm" method="post" action="<?php echo $this->requestURL; ?>" >
<input type="hidden" id="mode" name="mode" value="<?php echo $this->mode?>"/>
<?php if ($this->conf->display_expand == 2) { ?>
<script type="text/javascript">
function changeMode(mode)
{
element = document.getElementById("mode");
element.value = mode;
form = document.getElementById("adminForm");
form.submit();
}
</script>
<div class="adsmanager_subtitle">
<?php
/* Display SubTitle */
echo '<a href="javascript:changeMode(0)">'.JText::_('ADSMANAGER_MODE_TEXT')." ".JText::_('ADSMANAGER_SHORT_TEXT').'</a>';
    echo " / ";
    echo '<a href="javascript:changeMode(1)">'.JText::_('ADSMANAGER_EXPAND_TEXT').'</a>';
?>
</div>
<?php } ?>
<?php if ($this->mode != 1) { ?>
<table class="adsmanager_table">
<tr>
  <th><?php echo JText::_('ADSMANAGER_CONTENT'); ?>
  <?php /*<a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=5&orderdir=ASC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_asc.png" alt="+" /></a>
  <a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=5&orderdir=DESC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_desc.png" alt="-" /></a>
   */?>
  </th>
  <?php
    foreach($this->columns as $col)
  {
echo "<th>".JText::_($col->name);
/*$order = @$this->fColumns[$col->id][0]->fieldid;
?>
<a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=$order&orderdir=ASC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_asc.png" alt="+" /></a>
    <a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=$order&orderdir=DESC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_desc.png" alt="-" /></a>
    */?>
                    <?php echo "</th>";
  }
  ?>
  <th><?php echo JText::_('ADSMANAGER_DATE'); ?>
  <?php /*<a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=orderdir=ASC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_asc.png" alt="+" /></a>
  <a href="<?php echo TRoute::_("index.php?option=com_adsmanager&view=list".$urloptions."&order=orderdir=DESC");?>"><img src="<?php echo $this->baseurl ?>administrator/images/sort_desc.png" alt="-" /></a>
  */?>
              </th>
</tr>
<?php
foreach($this->contents as $content)
{
$linkTarget = TRoute::_( "index.php?option=com_adsmanager&view=details&id=".$content->id."&catid=".$content->catid);
if (function_exists('getContentClass'))
$classcontent = getContentClass($content,"list");
      else
$classcontent = "";
?>   
<tr class="adsmanager_table_description <?php echo $classcontent;?> trcategory_<?php echo $content->catid?>">
<td>
<?php
if (isset($content->images[0])) {
echo "<a href='".$linkTarget."'><img class='adimage' name='adimage".$content->id."' src='".$this->baseurl."images/com_adsmanager/ads/".$content->images[0]->thumbnail."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
} else {
echo "<a href='".$linkTarget."'><img class='adimage' src='".ADSMANAGER_NOPIC_IMG."' alt='nopic' /></a>";
}
?>
<div>
<h2>
<?php echo '<a href="'.$linkTarget.'">'.$content->ad_headline.'</a>'; ?>
<span class="adsmanager_cat"><?php echo "(".$content->parent." / ".$content->cat.")"; ?></span>
</h2>
<?php
$content->ad_text = str_replace ('<br />'," ",$content->ad_text);
$af_text = JString::substr($content->ad_text, 0, 100);
if (strlen($content->ad_text)>100) {
$af_text .= "[...]";
}
echo $af_text;
?>
</div>
</td>
<?php
foreach($this->columns as $col) {
echo '<td class="tdcenter">';
if (isset($this->fColumns[$col->id]))
foreach($this->fColumns[$col->id] as $field)
{
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo $this->field->showFieldValue($content,$field)."<br/>";
}
echo "</td>";
}
?>
<td class="tdcenter">
<?php
$iconflag = false;
if (($conf->show_new == true)&&($this->isNewcontent($content->date_created,$conf->nbdays_new))) {
echo "<div class='center'><img align='center' src='".$this->baseurl."components/com_adsmanager/images/new.gif' /> ";
$iconflag = true;
}
if (($conf->show_hot == true)&&($content->views >= $conf->nbhits)) {
if ($iconflag == false)
echo "<div class='center'>";
echo "<img align='center' src='".$this->baseurl."components/com_adsmanager/images/hot.gif' />";
$iconflag = true;
}
if ($iconflag == true)
echo "</div>";
echo $this->reorderDate($content->date_created);
?>
<br />
<?php
if ($content->userid != 0)
{
   echo JText::_('ADSMANAGER_FROM')." ";

   if ($conf->comprofiler == 3) {
    $target = TRoute::_("index.php?option=com_community&view=profile&userid=".$content->userid);
   }
   else if ($conf->comprofiler == 2)
   {
$target = TRoute::_("index.php?option=com_comprofiler&task=userProfile&tab=adsmanagerTab&user=".$content->userid);
   }
   else
   {
$target = TRoute::_("index.php?option=com_adsmanager&view=list&user=".$content->userid);
   }
   
   if ($conf->display_fullname == 1)
    echo "<a href='".$target."'>".$content->fullname."</a><br/>";
   else
    echo "<a href='".$target."'>".$content->user."</a><br/>";
}
?>
<?php echo sprintf(JText::_('ADSMANAGER_VIEWS'),$content->views); ?>
</td>
</tr>
<?php
}
?>
</table>
<?php } else { ?>
<?php foreach($this->contents as $key => $content)
{
if ($key == 0)
$this->loadScriptImage($this->conf->image_display);
if (function_exists('getContentClass'))
$classcontent = getContentClass($content,"details");
      else
$classcontent = "";
?>   
<br/>
<div class="<?php echo $classcontent?> adsmanager_ads" align="left">
<div class="adsmanager_top_ads">
<h2 class="adsmanager_ads_title">
<?php if (@$this->positions[0]->title) {$strtitle = JText::_($this->positions[0]->title);} ?>
<?php echo "<b>".@$strtitle."</b>";
if (isset($this->fDisplay[1]))
{
foreach($this->fDisplay[1] as $field)
{
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo $this->field->showFieldValue($content,$field)."<br/>";
}
} ?>
</h2>
<div>
<?php
if ($content->userid != 0)
{
echo JText::_('ADSMANAGER_SHOW_OTHERS');
if ($conf->comprofiler == 3) {
    $target = TRoute::_("index.php?option=com_community&view=profile&userid=".$content->userid);
}
else if ($this->conf->comprofiler == 2)
    {
$target = TRoute::_("index.php?option=com_comprofiler&task=userProfile&tab=AdsManagerTab&user=".$content->userid);
}
    else
    {
$target = TRoute::_("index.php?option=com_adsmanager&view=list&user=".$content->userid);
    }
   
    if ($conf->display_fullname == 1)
echo "<a href='$target'><b>".$content->fullname."</b></a>";
else
echo "<a href='$target'><b>".$content->user."</b></a>";
}
?>
</div>
<div class="adsmanager_ads_kindof">
<?php if (@$this->positions[1]->title) {$strtitle = JText::_($this->positions[1]->title);} ?>
<?php echo "<b>".@$strtitle."</b><br/>";
if (isset($this->fDisplay[2]))
{
foreach($this->fDisplay[2] as $field)
{
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo $this->field->showFieldValue($content,$field)."<br/>";
}
}
?>
</div>
</div>
<div class="adsmanager_ads_main">
<div class="adsmanager_ads_body">
<div class="adsmanager_ads_desc">
<?php if (@$this->positions[2]->title) {$strtitle = JText::_($this->positions[2]->title);} ?>
<?php echo "<b>".@$strtitle."</b><br/>";
if (isset($this->fDisplay[3]))
{
foreach($this->fDisplay[3] as $field)
{
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo $this->field->showFieldValue($content,$field)."<br/>";
}
} ?>
</div>
<div class="adsmanager_ads_desc">
<?php if (@$this->positions[5]->title) {$strtitle = JText::_($this->positions[5]->title);} ?>
<?php echo "<b>".@$strtitle."</b><br/>";
if (isset($this->fDisplay[6]))
{
foreach($this->fDisplay[6] as $field)
{
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo $this->field->showFieldValue($content,$field)."<br/>";
}
} ?>
</div>
<div class="adsmanager_ads_price">
<?php if (@$this->positions[3]->title) {$strtitle = JText::_($this->positions[3]->title); } ?>
<?php echo "<b>".@$strtitle."</b><br/>";
if (isset($this->fDisplay[4]))
{
foreach($this->fDisplay[4] as $field)
{
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo $this->field->showFieldValue($content,$field)."<br/>";
}
}?>
</div>
<div class="adsmanager_ads_contact">
<?php if (@$this->positions[4]->title) {$strtitle = JText::_($this->positions[4]->title);} ?>
<?php echo "<b>".@$strtitle."</b><br/>";
if (($this->userid != 0)||($conf->show_contact == 0)) {
if (isset($this->fDisplay[5]))
{
foreach($this->fDisplay[5] as $field)
{
$title = $this->field->showFieldTitle(@$content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo $this->field->showFieldValue($content,$field)."<br/>";
}
}
if (($content->userid != 0)&&($this->conf->allow_contact_by_pms == 1))
{
$pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$content->user);
$pmsForm = TRoute::_("index.php?option=com_uddeim&task=new&recip=".$content->userid);
echo '&nbsp;<a href="'.$pmsForm.'">'.$pmsText.'</a><br />';
}
}
else
{
echo JText::_('ADSMANAGER_CONTACT_NOT_LOGGED');
}
?>
</div>
    </div>
<div class="adsmanager_ads_image">
<?php
if (count($content->images) == 0)
$image_found =0;
else
$image_found =1;
foreach($content->images as $img)
{
$thumbnail = JURI::base()."images/com_adsmanager/ads/".$img->thumbnail;
$image = JURI::base()."images/com_adsmanager/ads/".$img->image;
    switch($this->conf->image_display)
    {
case 'popup':
echo "<a href=\"javascript:popup('$image');\"><img src='".$thumbnail."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
break;
case 'lightbox':
case 'lytebox':
echo "<a href='".$image."' rel='lytebox[roadtrip".$content->id."]'><img src='".$thumbnail."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
break;
case 'highslide':
echo "<a id='thumb".$content->id."' class='highslide' onclick='return hs.expand (this)' href='".$image."'><img src='".$thumbnail."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
break;
case 'default':
default:
echo "<a href='".$image."' target='_blank'><img src='".$thumbnail."' alt='".htmlspecialchars($content->ad_headline)."' /></a>";
break;
}
}
if (($image_found == 0)&&($conf->nb_images >  0))
{
echo '<img align="center" src="'.ADSMANAGER_NOPIC_IMG.'" alt="nopic" />';
}
?>
</div>
<div class="adsmanager_spacer"></div>
</div>
</div>
<?php } ?>
<?php } ?>
<div class="pagelinks"><?php echo $this->pagination->getPagesLinks(); ?></div>
</form>
<?php
} $this->general->endTemplate();



Цитировать
3. id - это номер id модуля из админи панели. В авашем случае 94
Спасибо, это теперь понял!

Понимаю что нахальничаю, но может поможете правильно вставить Ваш код на одну категорию, а я уже по примеру добавлю остальные?-)
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: php-brief
<?
switch ($this->catid) {
//категория 1
    case 1:
        $mod_id=94;
        break;
//категория 2
    case 2:
       $mod_id=10;
        break;
//все остальные категории
    default:
         $mod_id=20;
        break;
}
$doc = JFactory::getDocument();
$renderer = $doc->loadRenderer('module');
$params = array('style'=>'xhtml');
$dbo = JFactory::getDBO();
//получить модуль как объект
$dbo->setQuery("SELECT * FROM #__modules WHERE id=".$mod_id);
$module = $dbo->loadObject();
//убрать предупреждение
$module->user = '';
echo $renderer->render($module, $params);
 ?>
*

Netman_avs

  • Захожу иногда
  • 56
  • 1 / 0
Вставил код в верхнюю часть, при переходе на указанную категорию - белая страница

Код
<?php
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die( 'Restricted access' );
?>
<script language="javascript" type="text/javascript">
function tableOrdering( order, dir, task )
{
        var form = document.adminForm;
 
        form.filter_order.value = order;
        form.filter_order_Dir.value = dir;
        document.adminForm.submit( task );
}
</script>
<?php
$conf= $this->conf;
 
?>

<?
switch ($this->catid) {
//категория 1
    case 1:
        $mod_id=94;
        break;
}
$doc = JFactory::getDocument();
$renderer = $doc->loadRenderer('module');
$params = array('style'=>'xhtml');
$dbo = JFactory::getDBO();
//получить модуль как объект
$dbo->setQuery("SELECT * FROM #__modules WHERE id=".$mod_id);
$module = $dbo->loadObject();
//убрать предупреждение
$module->user = '';
echo $renderer->render($module, $params);
 ?>


<?php if ($conf->display_inner_pathway == 1) { ?>
<div class="adsmanager_pathway">
<?php
$pathway ="";
$nb = count($this->pathlist);
for ($i = $nb - 1 ; $i >0;$i--)
{
$pathway .= '<a href="'.$this->pathlist[$i]->link.'">'.$this->pathlist[$i]->text.'</a>';
$pathway .= ' <img src="'.$this->baseurl.'components/com_adsmanager/images/arrow.png" alt="arrow" /> ';
}
if (isset($this->pathlist[0]))
$pathway .= '<a href="'.$this->pathlist[0]->link.'">'.$this->pathlist[0]->text.'</a>';
echo $pathway;
?>
</div>
<?php } ?>

А что должно быть включено в самом созданном модуле?
Сейчас модуль опубликован, находиться в позиции slider.
Что делать с привязкой к страницам?
*

Netman_avs

  • Захожу иногда
  • 56
  • 1 / 0
К сожалению моих знаний не хватило на рецепт от Fedor Vlasenko. Всёравно спасибо, за попытку помочь! *DRINK*

Нашел другое решение, может конечно не по-феншую, но РАБОТАЕТ! Попробую описать для таких "чайников" как я ;)

Вот тут описание - http://lelik.org.ua/podskazki/44-community-builder-reshenie-problem-vyvoda-modulej-dlya-izbrannykh-stranits-pri-ispolzovanii-cb.html

У себя сделал следующее.

Выбираем файл шаблона в котором нам нужно всавить свой модуль из /components/com_adsmanager/views/
Для главной страницы компонента - front, для категорий - list

Далее всатвляем код

Код
<div id="rubrikator_1"> 
<jdoc:include type="modules" name="rubrikator_1" style="none" />
</div>
Это позиция в шаблоне где будем выводить модуль. Имя "rubrikator_1" для примера, можете придумать своё!

Ниже вставляем код
Код
<?php
$my_url = $_SERVER['REQUEST_URI'];   // Определяем текущий url и записываем его в переменную
?>
<?php
$my_link = "/index.php/joomlaorg/1-nedvizhimost"; // сюда вставляем адрес страницы (копируем с адресной строки) на которую нужно всатвить модуль
if ($my_url == $my_link) // проверяем соответствие текущей страницы с необходимой нам. И выводим (если =) позицию с модулем.
 { 
$document   = & JFactory::getDocument();
$renderer   = $document->loadRenderer('modules');
$options    = array('style' => 'none');
$position   = 'rubrikator_1';  // имя позиции
echo $renderer->render($position, $options, null);
// тут можно воспользоваться и простым выводом echo '<jdoc:include type="modules" name="top1" />'
 }
?> 

Это пример только для вставки одного модуля на ОДНУ страницу. Если нужно больше копируйте весь код и меняйте позицию шаблона и адрес страницы.

Далее придуманные позиции в шаблоне нужно вписать в templateDetails.xml вашего шаблона Joomla. После этого появиться возможность в модуле выбирать позицию.

*

Миша_М

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Можно просто продублировать adsmanager_menu обычным джумловским. Пункты меню - внешние ссылки, скопированные из adsmanager-menu (лучше при отключенном SEF). И привязать модули уже к этим пунктам. А сам модуль меню не публиковать.
*

kanevlife

  • Захожу иногда
  • 89
  • 10 / 0
  • Всегда читай до конца, и не будет лишних вопросов
Еще можно так.
Вставляем любой модуль в тело компонента Joomla :
Спойлер
[свернуть]
Назначаем позицию в templateDetails.xml, затем можно выбрать для модуля.
Может кому понадобится.
С уважением, kanevlife
P.S. Может хоть кто-то нажмет на +...? Шутка.
« Последнее редактирование: 30.06.2013, 14:47:40 от kanevlife »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено]Дублирования ссылки "объвления" в breadcrumb, в компоненте AdsManager

Автор nicklas

Ответов: 4
Просмотров: 3989
Последний ответ 25.04.2024, 23:13:18
от Rinat abzyi
AdsManager вывод нужных полей по отдельности

Автор klekovkinandrey

Ответов: 2
Просмотров: 14516
Последний ответ 06.04.2024, 09:54:15
от Rinat abzyi
AdsManager загрузка файлов

Автор FlexNL

Ответов: 1
Просмотров: 3245
Последний ответ 21.10.2021, 17:20:09
от khan-alex
AdsManager 2.9.13 Есть ли возможность добавить функцию снять с публикации по мимо редактировать и уд

Автор murovoz

Ответов: 11
Просмотров: 13630
Последний ответ 27.03.2020, 22:39:23
от Pavel
Два компонента AdsManager в одном движке

Автор kaman62

Ответов: 12
Просмотров: 28863
Последний ответ 27.03.2020, 22:32:04
от Pavel