Новости Joomla

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla Ну что, интересная инициатива от...

Готовлю большой выпуск, включающий интервью с участниками Joomla 🖨Ну что, интересная инициатива от @webtolkru в виде интервью с разными участниками весьма меня увлекла. Я, вооружившись данным примером, решил подготовить выпуск для NorrNext (@norrnext) и экстраполировал идею на международный масштаб. Теперь готовлю эксклюзивный выпуск с участниками Joomla сообщества со всего мира, которые, в той или иной мере, внесли свой вклад в развитие и популяризацию системы. Будут беседы с людьми из разных стран и фото с юбилейной символикой 📸Работа в процессе 👆 📝О результатах оповещу отдельно.

Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5

👩‍💻 Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5.Работает везде, где работают плагины группы content. Проверено в материалах, модулях, в описаниях товаров JoomShopping.Плагин конвертирует любую таблицу в адаптивную блочную сетку Bootstrap 5.В админке, в редакторе создаете таблицу, размещает в её ячейках контент, а на сайте эта таблица выводиться как адаптивная сетка из блоков. На мобильных устройствах контент размещенный в таблице будет виден и ничто не вылезет за пределы сайта как раньше.Версия плагина: 1.0.0. Разработчик предупреждает, что плагин пока не корректно работает со сложными таблицами (где много объединенных ячеек или столбцов) - данная проблема будет решена в следующих версиях. В дальнейшем планируется также добавление настроек.Стоимость: 2 500р. Тем, кто даст обратную связь по работе плагина и развёрнутый комментарий, тот получит скидку в 50% на любое другое платное расширение разработчика или сможет сделать заказ на разработку по льготной цене.Разработчик - участник нашего сообщества Дмитрий (@kit2m2).ПодробнееСайт разработчика@joomlafeed#joomla #JoomShopping #расширения

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

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Решена проблема вывода определенных полей только зарегистрированным пользователям, т.е. в поле чекбокс, и если он установлен, то данное поле будет отображаться только зарегистрированным пользователям.
К примеру, оптовая цена может выводиться только для диллеров, или же прикрепленный файл виден только зарегистрированным пользователям (диллерам).

Тестировалось на AdsManager 2.5 RC2

После внесения изменений (см. ниже) в редактировании и создании новых полей появляется возможность

1. Создается в базе столбец reguser с типом INT в таблице adsmanager_fields
2. В коде admin.adsmanager.html.php в функции editfield после строк
Код
<tr>
<td width="20%"><?php echo ADSMANAGER_FIELD_TYPE;?></td>
<td width="20%"><?php echo $lists['type']; ?></td>
<td>&nbsp;</td>
</tr>
вставляем
Код
<tr>
<td width="20%">Reg users?:</td>
<td align=left  width="20%"><input type="checkbox" name="reguser" <?php if($row->reguser==1) {?>checked <?php } ?>value="1" /></td>
<td>&nbsp;</td>
</tr>

3. В файле adsmanager.class.php добавляется в класс adsManagerField
Код
var $reguser=null;

4. В файле adsmanager.html.php замените функцию showFieldValue на приведенную ниже:
Код
function showFieldValue($row,$field,$field_values,$email_display,$option,$itemid,$mode,$plugins)
{
global $mosConfig_live_site,$mosConfig_absolute_path, $my;

if($my->id==0 && $field->reguser!=1) {

if ((strpos($field->catsid, ",$row->catid,")!== false)||(strpos($field->catsid, ",-1,")!== false))
{

if (($field->type != 'checkbox')&&(($field->display_title & $mode) == $mode))
{
echo adsmanager_html::getLangDefinition($field->title).": ";
}

if ($field->title)
$name = $field->name;

$value = "";
$value = "\$row->".$field->name;
eval("if (isset($value)) \$value = \"$value\";");
$value = adsmanager_html::getLangDefinition($value);
switch($field->type)
{
case 'checkbox':
if (($field->display_title & $mode) == $mode)
{
echo adsmanager_html::getLangDefinition($field->title);
if ($value == 1)
echo ":&nbsp;".ADSMANAGER_YES."<br />";
else
echo ":&nbsp;".ADSMANAGER_NO."<br />";
}
else if ($value == 1)
{
echo adsmanager_html::getLangDefinition($field->title)."<br />";
}
break;

case 'multicheckbox':
case 'multicheckboximage':

for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;

if (strpos($value, $fieldvalue)!== false)
{
if ($field->type == 'multicheckbox')
$return = adsmanager_html::getLangDefinition($fieldtitle);
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return."<br />";
}
}

break;

case 'url':
if ((isset($field->link_text))&&($field->link_text != ""))
$linkObj = $field->link_text;
else if ((isset($field->link_image))&&(file_exists($mosConfig_absolute_path."/images/com_adsmanager/fields/".$field->link_image)))
$linkObj = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$field->link_image."' />";
else
{
$linkObj = $value;
}
if ($value != "")
{
$return = "<a href='http://$value' target='_blank'>$linkObj</a>";
}
echo $return;
break;

case 'date':
$return = $value;
echo $return;
break;

case 'select':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if ($value == $v->fieldvalue)
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'emailaddress':
if ($value != "")
{
switch($email_display) {
case 2:
$emailForm = sefRelToAbs("index.php?option=$option&amp;page=show_message_form&amp;mode=0&amp;adid=".$row->id."&amp;Itemid=".$itemid);
echo '<a href="'.$emailForm.'">'.ADSMANAGER_EMAIL_FORM.'</a><br />';
break;
case 1:
echo adsmanager_html::Txt2Png($value,$option);
break;
default:
echo ADSMANAGER_FORM_EMAIL.": <a href='mailto:".$value."'>".adsmanager_html::cutLongWord($value)."</a>";
break;

}
}
break;

case 'textarea':
echo adsmanager_html::cutLongWord(str_replace(array("\r\n", "\n", "\r"), "<br />", $value))."<br />";
break;

case 'editor':
case 'number':
case 'text':
echo adsmanager_html::cutLongWord($value)."<br />";
break;
case 'price':
if ($value != "")
echo sprintf(ADSMANAGER_DEVICE,$value);

echo "<br />";
break;
case 'radio':
case 'radioimage':
for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;
if ($value == $fieldvalue)
{
if ($field->type == 'radio')
$return = $fieldtitle;
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return;
}
}
break;
case 'file':
if ($value != "")
{
echo "<a href='$mosConfig_live_site/images/com_adsmanager/files/$value' target='_blank'>".ADSMANAGER_DOWNLOAD_FILE."</a></b>";
echo "<br />";
}
break;

default:

if (isset($plugins[$field->type]))
{
if ($mode == 1)
$return = $plugins[$field->type]->getListDisplay($row->id,$field );
else
$return = $plugins[$field->type]->getDetailsDisplay($row->id,$field );
echo $return;
}

break;
}
}
}
else if($my->id) {
if ((strpos($field->catsid, ",$row->catid,")!== false)||(strpos($field->catsid, ",-1,")!== false))
{

if (($field->type != 'checkbox')&&(($field->display_title & $mode) == $mode))
{
echo adsmanager_html::getLangDefinition($field->title).": ";
}

if ($field->title)
$name = $field->name;

$value = "";
$value = "\$row->".$field->name;
eval("if (isset($value)) \$value = \"$value\";");
$value = adsmanager_html::getLangDefinition($value);
switch($field->type)
{
case 'checkbox':
if (($field->display_title & $mode) == $mode)
{
echo adsmanager_html::getLangDefinition($field->title);
if ($value == 1)
echo ":&nbsp;".ADSMANAGER_YES."<br />";
else
echo ":&nbsp;".ADSMANAGER_NO."<br />";
}
else if ($value == 1)
{
echo adsmanager_html::getLangDefinition($field->title)."<br />";
}
break;

case 'multicheckbox':
case 'multicheckboximage':

for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;

if (strpos($value, $fieldvalue)!== false)
{
if ($field->type == 'multicheckbox')
$return = adsmanager_html::getLangDefinition($fieldtitle);
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return."<br />";
}
}

break;

case 'url':
if ((isset($field->link_text))&&($field->link_text != ""))
$linkObj = $field->link_text;
else if ((isset($field->link_image))&&(file_exists($mosConfig_absolute_path."/images/com_adsmanager/fields/".$field->link_image)))
$linkObj = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$field->link_image."' />";
else
{
$linkObj = $value;
}
if ($value != "")
{
$return = "<a href='http://$value' target='_blank'>$linkObj</a>";
}
echo $return;
break;

case 'date':
$return = $value;
echo $return;
break;

case 'select':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if ($value == $v->fieldvalue)
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'multiselect':
if (isset($field_values[$field->fieldid])) {
foreach($field_values[$field->fieldid] as $v)
{
if (strpos($value, ",".$v->fieldvalue.",") === false)
{
}
else
{
echo adsmanager_html::getLangDefinition($v->fieldtitle)."<br />";
}
}
}
break;

case 'emailaddress':
if ($value != "")
{
switch($email_display) {
case 2:
$emailForm = sefRelToAbs("index.php?option=$option&amp;page=show_message_form&amp;mode=0&amp;adid=".$row->id."&amp;Itemid=".$itemid);
echo '<a href="'.$emailForm.'">'.ADSMANAGER_EMAIL_FORM.'</a><br />';
break;
case 1:
echo adsmanager_html::Txt2Png($value,$option);
break;
default:
echo ADSMANAGER_FORM_EMAIL.": <a href='mailto:".$value."'>".adsmanager_html::cutLongWord($value)."</a>";
break;

}
}
break;

case 'textarea':
echo adsmanager_html::cutLongWord(str_replace(array("\r\n", "\n", "\r"), "<br />", $value))."<br />";
break;

case 'editor':
case 'number':
case 'text':
echo adsmanager_html::cutLongWord($value)."<br />";
break;
case 'price':
if ($value != "")
echo sprintf(ADSMANAGER_DEVICE,$value);

echo "<br />";
break;
case 'radio':
case 'radioimage':
for($i=0,$nb=count($field_values[$field->fieldid]);$i < $nb ;$i++)
{
$fieldvalue = @$field_values[$field->fieldid][$i]->fieldvalue;
$fieldtitle = @$field_values[$field->fieldid][$i]->fieldtitle;
if ($value == $fieldvalue)
{
if ($field->type == 'radio')
$return = $fieldtitle;
else
$return = "<img src='".$mosConfig_live_site."/images/com_adsmanager/fields/".$fieldtitle."' alt='$fieldtitle' />";
echo $return;
}
}
break;
case 'file':
if ($value != "")
{
echo "<a href='$mosConfig_live_site/images/com_adsmanager/files/$value' target='_blank'>".ADSMANAGER_DOWNLOAD_FILE."</a></b>";
echo "<br />";
}
break;

default:

if (isset($plugins[$field->type]))
{
if ($mode == 1)
$return = $plugins[$field->type]->getListDisplay($row->id,$field );
else
$return = $plugins[$field->type]->getDetailsDisplay($row->id,$field );
echo $return;
}

break;
}
}
}
}
« Последнее редактирование: 18.12.2009, 22:13:30 от GlooM »
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Для наглядности приложил две картинки:
1-ая отображает состояние объявления в момент, когда пользователь не авторизовался, 2-ая — когда авторизовался.
Красным подчеркнул то место, где происходят изменения.

[вложение удалено Администратором]
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
Уважаемый GlooM, а можно поподробней пункт №1?

В какой таблице создать? (Я так понял что надо создать поле reguser, может не догнал чего?)
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Уважаемый GlooM, а можно поподробней пункт №1?

В какой таблице создать? (Я так понял что надо создать поле reguser, может не догнал чего?)
Забыл написать :)
в таблице adsmanager_fields
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
2. В коде admin.adsmanager.html.php в функции editfield
Код
<tr>
<td width="20%">Reg users?:</td>
<td align=left  width="20%"><input type="checkbox" name="reguser" <?php if($row->reguser==1) {?>checked <?php } ?>value="1" /></td>
<td>&nbsp;</td>
</tr>


пОПОДРОБНЕЙ МОЖНО ЧЕТ НЕ ВЫШЛО НИХРЕНА, КУДА ВСТАЛЯТЬ СТРОКУ С ТАБЛИЦЕЙ В ФУНКЦИИ, УЕХАЛ  ШАБ И ЭФФЕКТА НОЛЬ :-(
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Так,
пОПОДРОБНЕЙ МОЖНО ЧЕТ НЕ ВЫШЛО НИХРЕНА, КУДА ВСТАЛЯТЬ СТРОКУ С ТАБЛИЦЕЙ В ФУНКЦИИ, УЕХАЛ  ШАБ И ЭФФЕКТА НОЛЬ :-(
Итак, подробнее.
Идете в administrator/components/com_adsmanager/ там файл admin.adsmanager.html.php
в нем находите
Код
<tr>
<td width="20%"><?php echo ADSMANAGER_FIELD_TYPE;?></td>
<td width="20%"><?php echo $lists['type']; ?></td>
<td>&nbsp;</td>
</tr>
и ниже этого кода вставляете
Код
<tr>
<td width="20%">Reg users?:</td>
<td align=left  width="20%"><input type="checkbox" name="reguser" <?php if($row->reguser==1) {?>checked <?php } ?>value="1" /></td>
<td>&nbsp;</td>
</tr>
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
О, БИГ СЕНКЬЮ, а я прям в функцию пихал :laugh:
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
Попробую сборку сделать, еще бы капчу в 1.0.хх прикрутить, смотрю тоже на жустинке сидите ?
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Попробую сборку сделать, еще бы капчу в 1.0.хх прикрутить, смотрю тоже на жустинке сидите ?
Да, работаем с joostina :)
Сейчас собрали уже 4 сборки различных.
С капчей на след. неделе разберусь.
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
Уважаемый GlooM, капчу побороли ?
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Ох, признаюсь, забыл :)
Постараюсь на неделе, сейчас работы много
*

DK-Scorp

  • Захожу иногда
  • 235
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
Блин, все работает, но столкнулся со следующим вопросом:
Нерегенный/неавторизованный юзер с фронта добавляет объяву
и тут видны все поля, а по моей логике их бы тоже спрятать,
естественно эти поля не должны быть обязательными дабы объява без проблем сохранилась
рыл show_write_form пока не найду куда бы вставить :-(
*

DT3

  • Осваиваюсь на форуме
  • 44
  • 5 / 0
а как сделать показ только для хозяина объявления
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
я так понял чтобы спрятать пункты на вводе все тоже самое только в adsmanager.html.php в другую функцию сие конструктив вставить ( displayFields)?
С фантазией плохо.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
+
забираю переделал для вывода полей при заполнении.
С фантазией плохо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор nicklas

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

Автор klekovkinandrey

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

Автор FlexNL

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

Автор murovoz

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

Автор kaman62

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