Новости Joomla

Astroid обновился до версии 3.3.7!

Astroid обновился до версии 3.3.7!

Astroid — это мощный фреймворк для дизайнеров и разработчиков, позволяющий создавать адаптивные, быстрые и надежные веб-сайты и шаблоны на базе Joomla.

Главное в новой версии:

-   Исправлена загрузка файлов макетов

В предыдущем крупном релизе Astroid 3.3.6 были сделаны важные улучшения:

Основные моменты:

  • Улучшенный UI/UX в ключевых областях конфигурации
  • Повышенная стабильность и согласованность в Layout Builder и Form Builder
  • Исправления ошибок на основе отзывов сообщества
  • Улучшенная обработка визуальных эффектов, границ и шрифтов

Улучшения:

  • Обновленный UX Layout Builder
  • Улучшенный эффект предзагрузчика
  • Улучшенный стиль границ
  • Улучшенный UI/UX вкладки «Layout» в Template Options

Исправления ошибок:

  • Решены проблемы с некорректными динамическими значениями
  • Исправлен Color Transform при прокрутке
  • Устранены проблемы с работой Form Builder в Article Layout и Module Layout Builder
  • Исправлена проблема с созданием ненужных временных файлов при обработке шрифтов

Скачать: https://github.com/templaza/astroid-framework/releases/tag/v3.3.7

Как тестировать 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 Гость просматривают эту тему.
  • 4 Ответов
  • 5541 Просмотров
*

super111

  • Осваиваюсь на форуме
  • 36
  • 0 / 1
Ребят всем привет.
 А теперь к сути:
Нужно добавить еще одну позицию в шаблон объявления. По умолчанию есть 6 позиций:

1) top.
2) subtitle.
3) description.
4) description2.
5) contact.
6) description3.
как добавить есче одну после description2.

Вот код:
Код
<?php
// Check to ensure this file is within the rest of the framework
defined('JPATH_BASE') or die();

$conf= $this->conf;

$document = JFactory::getDocument();
if ($conf->metadata_mode != 'nometadata') {
$document->setMetaData("description", $this->content->metadata_description);
$document->setMetaData("keywords", $this->content->metadata_keywords);
}
?>
<?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" /> ';
}
$pathway .= '<a href="'.$this->pathlist[0]->link.'">'.$this->pathlist[0]->text.'</a>';
echo $pathway;

if (function_exists('getContentClass'))
$classcontent = getContentClass($this->content,"details");
else
$classcontent = "";
?>  
</div>
<?php } ?>
<?php echo $this->content->event->onContentBeforeDisplay; ?>
<div class="<?php echo $classcontent;?> addetails">
<h1 style="font-size: 14px;">
<?php
if (isset($this->fDisplay[1]))
{
foreach($this->fDisplay[1] as $field)
{
$c = $this->field->showFieldValue($this->content,$field);
if ($c != "") {
$title = $this->field->showFieldTitle(@$this->content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo "$c ";
}
}
} ?>
</h1>
<?php echo $this->content->event->onContentAfterTitle; ?>
<div style= "border-bottom: 1px solid #3fa5c3; margin-bottom: 10px;">
<?php
if ($this->content->userid != 0)
{
echo JText::_('ADSMANAGER_SHOW_OTHERS');
if ($conf->comprofiler == 3) {
  $target = TRoute::_("index.php?option=com_community&view=profile&userid=".$this->content->userid);
}
else if (COMMUNITY_BUILDER_ADSTAB == 1)
   {
$target = TRoute::_("index.php?option=com_comprofiler&task=userProfile&tab=AdsManagerTab&user=".$this->content->userid);
}
   else
   {
$target = TRoute::_("index.php?option=com_adsmanager&view=list&user=".$this->content->userid);
   }
   
   if ($conf->display_fullname == 1)
echo "<a href='$target'><b>".$this->content->fullname."</b></a>";
else
echo "<a href='$target'><b>".$this->content->user."</b></a>";

if ($this->userid == $this->content->userid) {
?>
<div>
<?php
$target = TRoute::_("index.php?option=com_adsmanager&task=write&catid=".$this->content->category."&id=".$this->content->id);
echo "<a href='".$target."'>".JText::_('ADSMANAGER_CONTENT_EDIT')."</a>";
echo "&nbsp;";
$target = TRoute::_("index.php?option=com_adsmanager&task=delete&catid=".$this->content->category."&id=".$this->content->id);
echo "<a href='".$target."'>".JText::_('ADSMANAGER_CONTENT_DELETE')."</a>";
?>
</div>
<?php
}
}
?>
</div>
<div class="addetails_topright">
<?php $strtitle = "";if (@$this->positions[3]->title) {$strtitle = JText::_($this->positions[3]->title); } ?>
<?php if (@$strtitle != "") echo "<h2>".@$strtitle."</h2>";
if (isset($this->fDisplay[4]))
{
foreach($this->fDisplay[4] as $field)
{
$c = $this->field->showFieldValue($this->content,$field);
if ($c != "") {
$title = $this->field->showFieldTitle(@$this->content->catid,$field);
if ($title != "")
echo htmlspecialchars($title).": ";
echo "$c<br/>";
}
}
}?>
</div>
<div class="addetailsmain" style= "border-bottom: 1px solid #3fa5c3;">
<div class="adsmanager_ads_body">
<div class="adsmanager_ads_desc">
<?php $strtitle = "";if (@$this->positions[2]->title) {$strtitle = JText::_($this->positions[2]->title);} ?>
<?php echo "<h2 style='font-size: 14px; font-family: Trebuchet MS; font-weight: bold; border-bottom: 1px solid #ccc; width: 300px;'>".@$strtitle."</h2>";
if (isset($this->fDisplay[3]))
{
foreach($this->fDisplay[3] as $field)
{
$c = $this->field->showFieldValue($this->content,$field);
if ($c != "") {
$title = $this->field->showFieldTitle(@$this->content->catid,$field);
if ($title != "")
echo "<strong>".htmlspecialchars($title).":</strong><br />";
echo "$c<br/>";
}
}
} ?>
</div>
<div class="adsmanager_ads_price">
<?php $strtitle = "";if (@$this->positions[1]->title) {$strtitle = JText::_($this->positions[1]->title);} ?>
<?php echo "<b>".@$strtitle."</b>";
if (isset($this->fDisplay[2]))
{
foreach($this->fDisplay[2] as $field)
{
$c = $this->field->showFieldValue($this->content,$field);
if ($c != "") {
$title = $this->field->showFieldTitle(@$this->content->catid,$field);
if ($title != "")
echo "<strong>".htmlspecialchars($title).": </strong>";
echo "$c<br/>";
}
}
}
?>
</div>
<div class="adsmanager_ads_desc" style= "border: 1px solid #3fa5c3;">
<?php $strtitle = "";if (@$this->positions[5]->title) {$strtitle = JText::_($this->positions[5]->title);} ?>
<?php echo "<h2 style='font-size: 14px; font-family: Trebuchet MS; font-weight: bold; border-bottom: 1px solid #ccc; width: 300px;'>".@$strtitle."</h2>";
if (isset($this->fDisplay[6]))
{
foreach($this->fDisplay[6] as $field)
{
$c = $this->field->showFieldValue($this->content,$field);
if ($c != "") {
$title = $this->field->showFieldTitle(@$this->content->catid,$field);
if ($title != "")
echo "<strong>".htmlspecialchars($title).":</strong><br />";
echo "$c<br/>";
}
}
} ?>
</div>
<div class="adsmanager_ads_contact">
<?php $strtitle = "";if (@$this->positions[4]->title) {$strtitle = JText::_($this->positions[4]->title);} ?>
<?php echo "<h2 style='font-size: 14px; font-family: Trebuchet MS; font-weight: bold; border-bottom: 1px solid #ccc; width: 300px;'>".@$strtitle."</h2>";
if (($this->userid != 0)||($conf->show_contact == 0)) {
if (isset($this->fDisplay[5]))
{
foreach($this->fDisplay[5] as $field)
{
$c = $this->field->showFieldValue($this->content,$field);
if ($c != "") {
$title = $this->field->showFieldTitle(@$this->content->catid,$field);
if ($title != "")
echo "<strong>".htmlspecialchars($title).": </strong>";
echo "$c<br/>";
}
}
}
if (($this->content->userid != 0)&&($conf->allow_contact_by_pms == 1))
{
if ($conf->display_fullname == 1)
$pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$this->content->fullname);
else
$pmsText= sprintf(JText::_('ADSMANAGER_PMS_FORM'),$this->content->user);
$pmsForm = TRoute::_("index.php?option=com_uddeim&task=new&recip=".$this->content->userid);
echo '<a href="'.$pmsForm.'">'.$pmsText.'</a><br />';
}
}
else
{
echo JText::_('ADSMANAGER_CONTACT_NOT_LOGGED');
}
?>
</div>
   </div>
<div class="adsmanager_ads_image">
<?php
$this->loadScriptImage($this->conf->image_display);
if (count($this->content->images) == 0)
$image_found = 0;
else
$image_found = 1;
foreach($this->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($this->content->ad_headline)."' /></a>";
break;
case 'lightbox':
case 'lytebox':
echo "<a href='".$image."' rel='lytebox[roadtrip".$this->content->id."]'><img src='".$thumbnail."' alt='".htmlspecialchars($this->content->ad_headline)."' /></a>";
break;
case 'highslide':
echo "<a id='thumb".$this->content->id."' class='highslide' onclick='return hs.expand (this)' href='".$image."'><img src='".$thumbnail."' alt='".htmlspecialchars($this->content->ad_headline)."' /></a>";
break;
case 'default':
default:
echo "<a href='".$image."' target='_blank'><img src='".$thumbnail."' alt='".htmlspecialchars($this->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 echo $this->content->event->onContentAfterDisplay; ?>
<div class="back_button">
<a href='javascript:history.go(-1)'>
<?php echo JText::_('ADSMANAGER_BACK_TEXT'); ?>
</a>
</div>
« Последнее редактирование: 26.08.2013, 20:51:18 от super111 »
*

Vitek23

  • Осваиваюсь на форуме
  • 10
  • 0 / 1
Не кто не добавлял?
*

SANR

  • Осваиваюсь на форуме
  • 23
  • 7 / 0
В чем проблема?
В шаблоне очень хорошо видно как вставляются позиции...
Добавляем в таблицу adsmanager_positions новую позицию.
После чего просто продублируйте код там где хотите вывести данную позицию с заменой id на id новой позиции что вы добавили в табличку  adsmanager_positions.
Ну и в языковые файлы **-**.com_adsmanager.ini добавьте
Пример.
ADSMANAGER_POSITION_DESCRIPTION777="Description"

"ADSMANAGER_POSITION_DESCRIPTION777"  title новой позиции что ранее была добавлена в таблицу adsmanager_positions.

Данный вопрос уже поднимался пользуйтесь поиском.
*

super111

  • Осваиваюсь на форуме
  • 36
  • 0 / 1
Я начинающий создатель сайтов))))) так что не судите строго.
Все понятно кроме одного:
Добавляем в таблицу adsmanager_positions новую позицию. - где находится таблица. (извеняюсь заранее если вопрос тупой) Именно в этом и была загвоздка.))
В поиске раз пятьсот все обыскал но не нашел темы где это уже обсуждали.
Прекрастно понимаю как относятся к новичкам, типа за вас все нодо сделать и т.д., поэтому пишу в случае крайней необходимости когда совсем в тупике и обязательно пользуюсь поиском.
*

super111

  • Осваиваюсь на форуме
  • 36
  • 0 / 1
Ребят теперь все раскажу, для таких же тупорезов как и я.
И так нам понадобятся следующие файлы:

1) administrator\components\com_adsmanager\install.sql
 Ищем код идобавляем к примеру, то что выделенно красным:
Код
INSERT IGNORE INTO `#__adsmanager_positions` VALUES (1, 'top', 'ADSMANAGER_POSITION_TOP');	
INSERT IGNORE INTO `#__adsmanager_positions` VALUES (2, 'subtitle', 'ADSMANAGER_POSITION_SUBTITLE');
INSERT IGNORE INTO `#__adsmanager_positions` VALUES (3, 'description', 'ADSMANAGER_POSITION_DESCRIPTION');
INSERT IGNORE INTO `#__adsmanager_positions` VALUES (4, 'description2', 'ADSMANAGER_POSITION_DESCRIPTION2');
INSERT IGNORE INTO `#__adsmanager_positions` VALUES (5, 'contact', 'ADSMANAGER_POSITION_CONTACT');
INSERT IGNORE INTO `#__adsmanager_positions` VALUES (6, 'description3', 'ADSMANAGER_POSITION_DESCRIPTION3');
[color=red]INSERT IGNORE INTO `#__adsmanager_positions` VALUES (7, 'description4', 'ADSMANAGER_POSITION_DESCRIPTION4');[/color]

2) administrator\components\com_adsmanager\install.adsmanager.php
 Ищем код идобавляем к примеру, то что выделенно красным:
Код
$sql = " INSERT IGNORE INTO `#__adsmanager_positions` (`id`,`name`,`title`) VALUES "
. " (1, 'top', 'ADSMANAGER_POSITION_TOP'),"
. " (2, 'subtitle', 'ADSMANAGER_POSITION_SUBTITLE'),"
. " (3, 'description', 'ADSMANAGER_POSITION_DESCRIPTION'),"
. " (4, 'description2', 'ADSMANAGER_POSITION_DESCRIPTION2'),"
. " (5, 'contact', 'ADSMANAGER_POSITION_CONTACT');";
[color=red]. " (7, 'description4', 'ADSMANAGER_POSITION_DESCRIPTION4'),"[/color]
3) language\en-GB\en-GB.com_adsmanager.ini
 Ищем код идобавляем к примеру, то что выделенно красным:
Код
ADSMANAGER_POSITION_CONTACT="Контакты"
[color=red]ADSMANAGER_POSITION_DESCRIPTION4=" Здесь можете вписать свое название "[/color]
4) components\com_adsmanager\views\details\tmpl\default.php
Копируем уже выводимую функцию, вставляем в нужное место в коде и меняем Id и позицию.

Далее идем в базу у меня на локе путь: http://localhost/tools/phpmyadmin/
находим базу adsmanager_position и добавляем строку ADSMANAGER_POSITION_DESCRIPTION4 с id 7 и с  именем DESCRIPTION4.

Все теперь все будет ок.
Да и к стати так как мы в последнем действии лазили в базу, первое и второе походу не нужно но не уверен я описал так как сам делал пока разбирался.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор nicklas

Ответов: 4
Просмотров: 3986
Последний ответ 25.04.2024, 23:13:18
от Rinat abzyi
Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 12738
Последний ответ 25.11.2021, 10:43:38
от FlexNL
Слетают категории объявления

Автор guardnext

Ответов: 1
Просмотров: 3494
Последний ответ 09.07.2019, 10:10:59
от guardnext
AdsManger не удаляет объявления

Автор kozhenevsky

Ответов: 0
Просмотров: 1528
Последний ответ 15.02.2018, 12:08:29
от kozhenevsky
Лечим кнопку "Delete from favorites" на странице объявления. AdsManager 3.1.11

Автор Mick_20

Ответов: 1
Просмотров: 1753
Последний ответ 24.12.2017, 22:28:14
от vadim73