Виртуальные вкладки для страницы пользователя!
Вопрос собственно в следующем! Как бы мне сделать вкладки как на здесь на modx.pro для одного юзера! (заметки, комменты, избранное) П.С. Говорить о том, что «надо сначала воспользоваться поиском» не надо, пишу это как раз потому, что воспользовался!
Понимаю есть ааахренеть сколько мануалов и примеров, например здесь: но тем не менее пример у меня не работает, даже не хочет работать элементарно страница пользователя! Сама страница пользователя у меня тем не менее есть и организована так:
Сделана по этому примеру:
Прошу помощи! Но так, чтобы не пришлось менять вид чанков и политики вызова данных пользователя на фронт! Заранее спасибо за любою помощь!
Комментарии: 40Можно сделать вот так:
— в местах, где определяется «вкладка» дописать необходимые плейсхолдеры по вкусу и готово.
Если что-то не получится — могу выслать куда-нибудь готовый код плагина.
Еще раз приветствую! Действительно работает! Вроде бы вкладки определяет + я допилил автономности и динамичности, но вот есть небольшая проблема… Как теперь на этих вкладках вызывать то, что мне надо? Если вас не затруднит распишите пожалуйста! :D
Пробовал вот такую бурду: При этом использовал небольшой динамиский фрагмент шаблона, где по факту должно было происходить переключение контента! Но чет пошло не по плану :(
Вот полный код плагина:
Оперируйте контентом, выстраивая условия в шаблоне, который определен для ресурса, на который произошла замена.
Например: 1. Есть страница /users/ (список всех пользователей), со своим шаблоном, отображающий, допустим, всех пользователей. 2. В плагине, при совпадении шаблона адресного запроса, идет переадресация на /users/ методом sendForward + выставляются плейсхолдеры (допустим, user_id) 3. В шаблоне «списка всех пользователей» проверяем наличие этого плейсхолдеры и, исходя из результата, подставляем нужные данные:
Используя феном, можно так вообще кастомизировать виртуальную страницу без потери результативности, вплоть до сео. Вот, например, как реализована страница пользователя у меня:
вот так сейчас у меня и реализовано! Но это только одна виртуальная страничка, а вот ваш вариант интересный, но феном пока даже с коментами плохо понимаю, потому как это почти пхп, а я в нем мягко говоря не шарю!
Вот момента когда происходит вот это:
как впихнуть еще три виртуальные страницы Публикации, Коменты, Избранное в эту часть:
ведь с учетом работы плагина получается, что страница списка пользователей расположена по адресу: а страница пользователя по адресу: а вот виртуальные вкладки, например публикации: вот первые два варианта уживаются так как вы и написали, собственно у меня так и было еще давно: А вот как теперь сделать так, чтобы прийти к контенту на виртуальной странице:
Ну, в принципе, можно сделать так (но я рекомендую все же обучиться fenom'y, т.к. с ним создавать сайты становится на порядок интереснее):
— качаете какое-нибудь дополнение аля switch — в плагине, в зависимости от совпадения, передаете плейсхолдер user_page_type — создаете чанк с оформлением под каждый «тип» страницы (основная, список пользователей, комментарии, избранное) — далее, в шаблоне списка пользователей:
мде, в общем чет нифига не работает по всякому. + виртуальные вкладки мне кажется тоже не работают, а если быть точнее то я не знаю как проверить!
Дело в том, что первый раз установив плагин я обрадовался, т.к. по запросу например страницы: mysite.ru/users/2/posts он вроде бы сделал редирект и страница просто обновилась на странице пользователя, я подумал, что и должно быть, что вроде бы как надо теперь кастомизировать алиас для этих страничек! Да вот не тут то было, оказалось, что он так реагирует на все алиасы: У меня вот вопрос, а ресурсы надо в админке создавать с этими алиасами? Может в этом дело :D
Вы не поверите! Но чет не фурычит опять никак! Даже по прямой ссылке ничего не выдает! Вот плагин сбахал, тот что выше с вашими модификациями, на страницу чтобы вывести контент уже до банального образа дошел: пробовал так же и вот этот вариант: при чем когда загружаю странцу пользователя то вот это условие {case default} или {case 'main'} выполняется, т.е. на странице по адресу: выдает контент 000 А когда я пытаюсь перейти на другой алиас, напимер сюда то условие {case 'posts'} не срабатывает и один фиг отображается то, что было на стартовой странице пользователя! У меня вот вопрос, может плагин корявый и где то что то конфликтует? Или же его надо доконструировать, что бы начало работать это условие: Но вот тогда почему не работает это: чет я запутался вообще!
[[*alias]] = поле ресурса. У вас оно все время будет полем от страницы «списка пользователей», которой вы подменяете ответ сервера.
Если вам нужно получить плейсхолдер, используйте [[+value]]
та мне без разницы че надо получить, мне просто рабочий готовый вариант нужен, уже пол года ищу решение :D
Вот вы говорите [[+value]]! Да действительно, я чет тупанул, т.к. для [[*alias]] значение будет одно, потому как стоит символ "*" но вот как тогда должен выглядеть вызов, чтобы сработало то условие, которое мне нужно, а еще лучше расскажите подробнее как бы мне сделать, чтобы заработало это, вроде бы оно легче и быстрее: Просто скажите может в плагине надо что то докалякать, чтобы это заработало? Потому как просто вставкой в шаблон это не работает, а всегда возвращает значение {case default} или {case 'main'}
Для работы этого кода, вам нужно: — установить дополнение pdoTools — включить для него системную настройку pdotools_fenom_parser
Но, без базовых знаний js у вас могут возникнуть побочные проблемы, в случае, если у вас в шаблонах или чанках где-то присутствуют {}.
Да, к слову. Вам будет не лишним принудительно отключить кэширование для страницы списка пользователей: редактирование ресурса -> закладка настройки -> убрать галочку у пункта «Кэшируемый»