ParadoX

ParadoX

Don't worry, be hippy
+11
Репутация
8
Рейтинг
#1 [ЕСТЬ РЕШЕНИЕ] Динамическая языковая константа 12 мая 2017 в 14:30
Привет всем!
Задача такая, чтобы в title div'a подставлялась языковая константа в зависимости от категории item'a.
Например, если $item['category_id'] = 2, то <div title="Категория 2">
Константы LANG_ITEM_CAT_1 — LANG_ITEM_CAT_9 определены в языковом файле. Итак, имеем код:
  1.  
  2. <?php $category_name = 'LANG_ITEM_CAT_' . $item['category_id']; ?>
  3. <div title="<?php echo $category_name; ?>"></div>
  4. <?php unset($item['category_id']); ?>
  5. <?php unset($category_name); ?>
  6.  
Что-то туплю не могу понять, почему в результате константа не подтягивается из языкового файла, а выдаёт <div title="LANG_ITEM_CAT_1"></div>. Прошу ткнуть носом, но не сильно)
#1 [ЕСТЬ РЕШЕНИЕ] Дата в ссылке 30 апреля 2017 в 21:05
Ris, странно! Я попробовал ещё раз. Если не нажать вставить текущую дату, то поле остаётся пустым и даже не отображается в записи.
#2 [ЕСТЬ РЕШЕНИЕ] Дата в ссылке 29 апреля 2017 в 14:57
Ris, благодарю за ответ, но я пробовал такой вариант. Он не подходит, т.к. поле "дата" пользователь должен заполнять. А нужно чтобы всё было автоматически, как с date_pub.
#1 [ЕСТЬ РЕШЕНИЕ] Дата в ссылке 28 апреля 2017 в 17:20
Здравствуйте, друзья!
Кто-нибудь задавался вопросом, как изменить формат даты в ссылке на материал? Если поставить поля, например, {title}-{date_pub}, то ссылка принимает вид /nazvanie-materiala-28-04-2017-17-15.html И всё было бы прекрасно, но дата без времени смотрелась бы лучше. В документации написано, что поле "дата" формируется вида, указанного в конфигурации сайта, но на ссылку видимо это не распространяется? В базе поле date_pub имеет вид 2017-02-08 22:09:04, но в ссылку попадает без секунд, значит и время целиком убрать удастся.
Подскажите пожалуйста, где исправить формирование ссылки, чтобы получилось /nazvanie-materiala-28-04-2017.html?
#3 Добавить/удалить из друзей 27 апреля 2017 в 12:05
Золотой вы человек! Я внимательно перечитал документацию к icms, но данных слишком мало, буду вникать дальше. Это мой первый проект на ней.

Полагаю следующие вопросы будут "Как отменить редирект на профиль при отправке/удалении предложения дружбы?" и "Как сделать запрос отправки/удаления дружбы на AJAX?" laugh

Виктор
По началу я думал, что "ajax-modal" будет достаточно, но не тут-то было! laugh
#4 Добавить/удалить из друзей 26 апреля 2017 в 21:58
И всё же по делу, есть что сказать? facepalm
#5 [ЕСТЬ РЕШЕНИЕ] Продаю InstantMaps для InstantCMS 2. Цена 1550р 26 апреля 2017 в 13:52


Добрый день!

Продаю InstantMaps для InstantCMS 2.
Цена 1550р. Оформление за мой счет.

LuckyRain

Забиваю! Пришлите реквизиты в личку.
#6 Добавить/удалить из друзей 26 апреля 2017 в 10:55


В файле /system/controllers/users/frontend.php объявить переменные $is_friends_on, $is_own_profile, $is_friend_profile, $is_friend_req в функции renderProfilesList() и отправить их на рендеринг

Виктор

Благодарю вас за наводку! Но нельзя ли по подробнее? Это поможет не только мне.

P.S. И интересно, я один подробно отвечаю на вопросы: "Вам нужно сделать то-то и то-то, делается это так-то и так-то"??
#1 Добавить/удалить из друзей 25 апреля 2017 в 22:57
Здравствуйте, други!
Вот озадачился добавить кнопки к пользователям прямо в списке пользователей (/templates/стиль/controllers/users/list.tpl.php). "Но как обычно что-то пошло не так..." ©
Вроде как всё правильно, но из всех условий выполняется только <?php if ($user->is_logged) { ?>. Подскажите пожалуйста, что нужно добавить, чтобы задумка заработала? zst
  1.  
  2. <?php if ($user->is_logged) { ?>
  3.  
  4. <?php if ($is_friends_on && !$is_own_profile) { ?>
  5. <div class="ajax-modal">
  6. <?php if ($is_friend_profile) { ?>
  7. <a href="/users/friend_delete/<?php echo $profile['id'] ?>" title="Удалить из друзей">Удалить из друзей</a>
  8. <?php } else if(!$is_friend_req) { ?>
  9. <a href="/users/friend_add/<?php echo $profile['id'] ?>" title="Добавить в друзья">Добавить в друзья</a>
  10. <?php } ?>
  11. </div>
  12. <?php } ?>
  13.  
  14. <?php } ?>
  15.  
#7 Как убрать пустые группы свойств 22 апреля 2017 в 22:51
Олег Васильевич я, написал сразу.
#8 Как убрать пустые группы свойств 22 апреля 2017 в 21:46


На этой странице есть разумный совет как решать подобные проблемы таким знатокам как мы с вами.
Попробуйте ещё и его.

Олег Васильевич я
Изволите говорить загадками вы?)
Если вы про
  1. <?php if ($fieldset['title'] || $fieldset['fields']){ ?>
, то это было одним из первых, что я пробовал ;)
#9 Как убрать пустые группы свойств 22 апреля 2017 в 12:23

Скорее всего я ошибаюсь.

DK
Что я только не пробовал… Видимо ещё где-то алгоритм полей править надо, но не нашёл((
#1 Как убрать пустые группы свойств 21 апреля 2017 в 20:08
Здравствуйте, други!
Не знаю почему никто ещё не задался этим вопросом? Собственно проблема: как убрать пустые группы свойств?
Берём к примеру тип контента "Объявления" (board) и для него делаем нужные "свойства" (цвет, размер, вес и т.д.), а потом эти свойства для удобства группируем в группу (например, "Характеристики").
Создаём объявление, заполняем все свойства, сохраняем и видим красоту:
Характеристики:
Цвет: красный
Размер: 20*30см
Вес: 1кг
Супер! То что нужно. Кроме "Характеристик" можно наделать кучу групп свойств для удобства отображения.

Но стоит не заполнить ни одного свойства в группе на странице объявления мы видим:

Характеристики:
И собственно всё. Название группы отображается вне зависимости, заполнили вы свойства или нет! Выглядит крайне некрасиво.

Вот код, отвечающий за вывод:
  1.  
  2. <?php if ($props && array_filter((array)$props_values)) { ?>
  3. <?php
  4. $props_fields = $this->controller->getPropsFields($props);
  5. $props_fieldsets = cmsForm::mapFieldsToFieldsets($props);
  6. ?>
  7. <div class="content_item_props <?php echo $ctype['name']; ?>_item_props">
  8. <table>
  9. <tbody>
  10. <?php foreach($props_fieldsets as $fieldset){ ?>
  11. <?php if ($fieldset['title']){ ?>
  12. <tr>
  13. <td class="heading" colspan="2"><?php html($fieldset['title']); ?></td>
  14. </tr>
  15. <?php } ?>
  16. <?php if ($fieldset['fields']){ ?>
  17. <?php foreach($fieldset['fields'] as $prop){ ?>
  18. <?php if (isset($props_values[$prop['id']])) { ?>
  19. <?php $prop_field = $props_fields[$prop['id']]; ?>
  20. <tr>
  21. <td class="title"><div><?php html($prop['title']); ?><div></td>
  22. <td class="value">
  23. <?php echo $prop_field->setItem($item)->parse($props_values[$prop['id']]); ?>
  24. </td>
  25. </tr>
  26. <?php } ?>
  27. <?php } ?>
  28. <?php } ?>
  29. <?php } ?>
  30. </tbody>
  31. </table>
  32. </div>
  33. <?php } ?>
  34.  
Прошу помощи с этим вопросом. Какое правило нужно подставить/добавить, чтобы код
  1.  
  2. <?php if ($fieldset['title']){ ?>
  3. <tr>
  4. <td class="heading" colspan="2"><?php html($fieldset['title']); ?></td>
  5. </tr>
  6. <?php } ?>
  7.  
не выполнялся в случае отсутствия заполненных свойств?
#10 Как в универсальном каталоге свойства, разместить ниже полей? 14 апреля 2017 в 21:42


Пригодится кому-нибудь.
Очередность вывода задается в файле system/controllers/content/frontend.php
Строчки примерно 467 (поиск по if ($ctype['props']){ )
Вот эту группу строк нужно переместить примерно на строчку 532 (перед словами
// Если ручной ввод SLUG, то добавляем поле для этого
if (!$ctype['is_auto_url']){
)

Wanderer

Благодарю, пригодилось! Но можно ли это как-то "закрепить" в своём шаблоне, чтобы снова не править после обновления?
#11 [ЕСТЬ РЕШЕНИЕ] Поле в произвольном месте страницы 9 апреля 2017 в 20:29
Ладно, как принято на большинстве форумов, сам отвечу на собственный вопрос:
1. вывести только ссылку <?php echo html_image_src($profile['background'], 'размер пресета (small, normal и т.д.)'); ?> Этот код я использовал в таком примере:
  1. <?php if (!empty($profile['background'])){ ?>style="background-image: url('/upload/<?php echo html_image_src($profile['background'], 'top_background'); ?>')"<?php } ?>>
2. вывести непосредственно само изображение: <?php echo html_image($profile['background'], 'размер пресета (small, normal и т.д.)'); ?>
Странно, почему "знатокам" было тяжело ответить…
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.