PDA

Просмотр полной версии : Скрыть/показать элемент контента


Fkor
10.04.2009, 16:31
Доброго времени суток!
Кто-нибудь сталкивался с такой задачей:
- нужно сделать так, чтобы пользователь сайта мог скрыть / показать определенный элемент контента страницы, с запоминанием состояния.

dmartynenko
12.04.2009, 21:54
Задача легко решаема дописыванием небольшого eID модуля...
Но... Лучше опишите какую в целом задачу вы этим хотите решить. Возможно есть более интересные решения.

Fkor
13.04.2009, 10:44
Спасибо за отклик.
Примерно так - есть страница, на которой расположены несколько разнородных элементов (плагинов, блоков текста, фронтенд редактор новостей и т.п.). Нужно дать пользователю возможность включить/выключить каждый из этих элементов. Как вариант может быть - выводить под каждым чекбокс "показать/скрыть" ... не придумал еще..

Fkor
24.08.2009, 16:42
Задача легко решаема дописыванием небольшого eID модуля...


Если возможно, чуть подробнее..:)

dmartynenko
24.08.2009, 19:43
То, что судя по всему вы хотите сделать, называется Dashboard, а элементы которые пользователю могут выбирать - Widgets.

Задача с одной стороны типовая, с другой весьма не тривиальная.
Так как показать/скрыть реализовать достаточно просто. Другое дело потом захочется дать возможность настраивать эти элементы, менять местами и т.п.

Вот пример для BE: myDashboard - http://forge.typo3.org/projects/show/typo3v4-dashboard
http://typo3.org/extensions/repository/view/mydashboard/current/
http://typo3.org/documentation/document-library/extension-manuals/mydashboard/0.1.12/view/
правда в репозитории почему-то на данный момент отсутствует...

И даже есть инициативы для FE, правда без какого-либо результата:
http://forge.typo3.org/projects/show/extension-fedashboard
http://dmitry-dulepov.com писал что-то такое делает для латвийского портала и выложит в репозиторий. Но сейчас найти не могу и ничего такого не видел.

Если вы хотите кратко суть как это можно сделать, то примерно так:
1. Элементы для показа на странице хранятся в отдельном SysFolder - это обычные CE, которые могут быть чем угодно - текстом, плагином и т.п.
2. Вы создаете свой экст, которые выводит на страницу пользователей эти элементы через AJAX, в зависимости от состояния элементы для конкретного пользователя (см. ниже).
3. Также создаете отдельную табличку для запоминания состояния элементов: (код элемента, код пользователя, состояние)
4. Делаете eID скрипт который будет обрабатывать действия пользователей показать/скрыть, запоминает в вашей табличке и возвращать также через AJAX отдельный элемент или только его шапку с кнопкой "показать".

Казалось бы полезная штука... Но имхо до сих пор никем не сделано из-за того, что все упирается в *настройку* элементов. А эта задача совсем не тривиальная, учитывая потенциально большое их разнообразие. Да и TYPO3 не портальная система - в ней гибкая функциональность для FE пользователей не заложена.

Можете посмотреть реализацию myDashboard - в нем есть механизм, позволяющий создавать и встраивать свои Widgets.

Valery Romanchev
24.08.2009, 21:41
еще вот это посмотрите http://typo3.org/extensions/repository/view/typortal/current/
еще можно в репозитории поискать... что-то еще может быть

dmartynenko
25.08.2009, 13:24
еще вот это посмотрите http://typo3.org/extensions/repository/view/typortal/current/
еще можно в репозитории поискать... что-то еще может быть

Заинтересовался и решил посмотреть. Так как документации никакой нет - полез в код.
Изменения вносятся прямо в tt_content - т.е. если один пользователь что-то поменяет, поменяется у всех.
Но как пример для создания чего-то большего очень даже ничего, видимо по этому в название автор добавил Framework. Главное есть связка с JavaScript (prototype) и eID - именно в том виде, что я описал выше.

Fkor
29.01.2010, 17:10
http://www.rggooglemap.com/dev/personalpage.html
Но, к сожалению, автор не выложил еще в TER...