2013-06-26 6 views
1

Я создал веб-сайт Joomla уже пару недель и начал с практически нуля знаний о Joomla и PHP. Я должен сказать, что у меня есть я как бы пробирался сквозь все это. Во всяком случае, у меня небольшая «проблема» и надеюсь, что вы, ребята, можете мне помочь разобраться:Предотвратите «прямой доступ» к элементам меню, но сохраните их доступными, если они включены в статьи.

Я использую Plugin Include Component, чтобы вставлять содержимое внутри статей. Естественно, это содержимое связано с элементами меню. Дело в том, что я хочу, чтобы эти пункты меню были доступны только через статьи, в которые они встроены. Это означает, что я хочу каким-то образом ограничить прямой доступ к элементам меню, но все же позволяя пользователям видеть их содержимое внутри статей.

Ради понимания я буду стараться быть более наглядными:

У меня есть Блог Категории, связанные с пунктом меню . С помощью плагина, упомянутого выше, у меня есть A встроенный внутри статьи B. Все идет нормально! Когда отображается B, раздел категории в категории A также показан в его составе. Но я не хочу, чтобы пользователи могли вводить url B в браузер и получать к нему доступ напрямую, так как это наносит ущерб структуре и навигации моего сайта. Очевидно, что публикация пункта меню не помогла бы, потому что она перестала быть видимой внутри статьи.

Приношу извинения, если я не прояснился. Любые подсказки или подсказки?

+0

У вас возникла проблема с тем, что элемент меню рассматривается как часть меню, отображаемого на сайте, или просто для того, чтобы кто-то мог ввести URL-адрес элемента меню, и он отобразится? –

+0

Нет, никаких проблем вообще, это просто, как вы говорите, есть вероятность, что кто-то может ввести URL-адрес элемента меню и получить к нему доступ напрямую. Но я думаю, что для этого хаха нет никакого лекарства. – iroquois

ответ

0

Хорошо, если вы не можете напрямую обращаться к элементам меню для элемента A, просто опубликуйте пункт меню в новом меню, которое не добавлено в любую позицию модуля. Таким образом, нет прямых ссылок, которые пользователь может получить через интерфейс.

Что касается пользователя TYPING в URL-адресе для элемента A, вам не повезло. Невозможно предотвратить это. После того, как вы создали пункт меню, есть URL-адрес, который обязательно должен быть доступен. Используя трюк скрытого меню, пользователь должен знать, что URL-адрес существует, чтобы иметь возможность туда добраться, но он будет там, если он это узнает. То, как вы размещаете сайт вместе, не должно видеть URL-адрес, чтобы он, вероятно, никогда не вводил его, но это было бы возможно.

+0

Да, я использовал трюк скрытого меню. Меня беспокоит то, что, как только сайт будет опубликован, и поисковые роботы Google достигнут этого, эти ссылки в конечном итоге будут видны всем, кто выполняет поиск (я прав?). Во всяком случае, это не вопрос жизни или смерти, просто нужно держать вещи аккуратными и аккуратными. Большое спасибо!! – iroquois

+0

Да, ответ @Brent Friar дает вам, насколько вы можете, без какого-либо специального кода - или, по крайней мере, я не знаю такого плагина, который будет делать то, что вам нужно. Однако я бы сказал, что это достигается путем создания плагина контента/системы, который отображает скрытую форму, в которой генерируется JToken, которая проверяется после Route на запрошенной странице. Ну, вообще-то это общий смысл. Я имею в виду, вы могли бы сделать этот плагин простым или сложным, как вам было угодно; включают {placeHolders}, включают/исключают кошек, статьи и т. д. – MyBO

+0

Google будет получать только ссылки на вашем сайте. Поскольку плагин должен обрабатывать все стороны сервера ссылок, вам не нужно слишком беспокоиться. Единственный хак, который я могу подумать, будет устанавливать уровень доступа в скрытом пункте меню на «специальный».Если плагин не проверяет уровень доступа (я понятия не имею, если он это делает или нет), он может по-прежнему включать его на странице, в то время как элемент меню будет недоступен через пункт меню без входа в систему в качестве администратора. –

Смежные вопросы