Jump to content
  • 0

Видимый пункт меню для определенного IP адреса


explo1d
 Share

Question

Подскажите пожалуйста возможно ли такое реализовать. Есть сайт фирмы. На сайте нужно сделать 1 пунктик меню (рядом с теми которые уже есть в top-menu), что бы он был видимый только для определенных IP адресов, тобишь есть общий 1 IP адресс, который идёт на 2 офиса наших, который расположены рядом. Там как раз будет информация для штатных работников. А вот для людей другого контингента, что бы этого пункта и вовсе не существовало. То бишь, настроить так, что бы этот пункт меню был виден только нам (по одному IP адресу), а остальным нет, и было без сдвигов для них.

Заранее благодарю. Описал как можно подробней. Не знаю как такое называется.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

в PHP ищем $SERVER['REMOTE_ADDR'] а дальше уже с помощью условия выводите или не выводите свой пункт меню, а чтобы сдвигов не было - это нужно верстку смотреть, а ее нет

Link to comment
Share on other sites

  • 0

в PHP ищем $SERVER['REMOTE_ADDR'] а дальше уже с помощью условия выводите или не выводите свой пункт меню, а чтобы сдвигов не было - это нужно верстку смотреть, а ее нет

в PHP ищем $SERVER['REMOTE_ADDR'] а дальше уже с помощью условия выводите или не выводите свой пункт меню, а чтобы сдвигов не было - это нужно верстку смотреть, а ее нет

Собственно CMS Joomla 2.5 . Перерыв PHP файлы, нашёл только такие строки


if (file_exists(JPATH_INSTALLATION.'/index.php')) {
header('Location: '.substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], 'index.php')).'installation/index.php');
exit();
} else {
echo 'No configuration file found and no installation code available. Exiting...';
exit();

и


// Get the current entry point path relative to the site path.
$scriptPath = realpath($_SERVER['SCRIPT_FILENAME'] ? $_SERVER['SCRIPT_FILENAME'] : str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']));
$relativeScriptPath = str_replace('\\', '/', str_replace(JPATH_SITE, '', $scriptPath));

В офисе стоит сервер Апаче на убунту, там я так понял с помощью mysql и php/Python всё реализовуеться. . При запросам решить этот вопрос, юзал гугл, читал читал, конкретики так и не нашёл (с англ. норм)

http://stackoverflow.com/questions/3699454/should-ip-serverremote-addr-return-1-on-a-mamp-localhost/13649642#13649642

http://moinmo.in/JoomlaIntegration

http://forum.joomla.org/viewtopic.php?p=1542157

Да и ещё. Есть 2 домена фирмы. На двух доменах расположен один и тот же сайт, с одинаковыми БД. То бишь один тестовый ( на нём и производилась разработка сайта ,модулей и прочей ерунды), а второй официальный, на котором я делаю правки уже с 100% уверенностью в написании правильного кода либо контекста.

Дак вот, хотел бы услышать от Вас подсказки с последовательными шагами для реализации такой фичи, хотя бы суть объяснить конкретней. Если там не долго ,помогите пожалуйста. Могу доступ предоставить к тестовому домену, либо же скинуть файлы php.

Заранее благодарен тем, кто откликнется и поможет!

Link to comment
Share on other sites

  • 0

в шаблоне сайта находите место где генерится меню(возможно оно не генерится а статическое) и добавляете там чтото типо:


if($SERVER['REMOTE_ADDR'] == '192.168.1.1'){
echo '<li><a>наш пункт меню</a>';
}

Это всего лишь пример, как у вас выглядит шаблон никто не знает

Link to comment
Share on other sites

  • 0

в шаблоне сайта находите место где генерится меню(возможно оно не генерится а статическое) и добавляете там чтото типо:


if($SERVER['REMOTE_ADDR'] == '192.168.1.1'){
echo '<li><a>наш пункт меню</a>';
}

Это всего лишь пример, как у вас выглядит шаблон никто не знает

Вот код шаблона. Вот ссылка на сайт http://gipron.com.ua/


<?php
defined('_JEXEC') or die;


require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'functions.php';

// Create alias for $this object reference:
$document = $this;

// Shortcut for template base url:
$templateUrl = $document->baseurl . '/templates/' . $document->template;

Artx::load("Artx_Page");

// Initialize $view:
$view = $this->artx = new ArtxPage($this);


JHtml::_('behavior.framework', true);

?>
<!DOCTYPE html>
<html dir="ltr" lang="<?php echo $document->language; ?>">
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $document->baseurl; ?>/templates/untitled1/css/template.css" />
<link rel="stylesheet" href="<?php echo $document->baseurl; ?>/templates/untitled1/css/template.css" />




<meta name="viewport" content="initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width">

<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.css" media="screen">
<!--[if lte IE 7]><link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.ie7.css" media="screen" /><![endif]-->
<link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.responsive.css" media="all">
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Droid+Serif&subset=latin">

<script>if ('undefined' != typeof jQuery) document._artxJQueryBackup = jQuery;</script>
<script src="<?php echo $templateUrl; ?>/jquery.js"></script>
<script>jQuery.noConflict();</script>

<script src="<?php echo $templateUrl; ?>/script.js"></script>
<script>if (document._artxJQueryBackup) jQuery = document._artxJQueryBackup;</script>
<script src="<?php echo $templateUrl; ?>/script.responsive.js"></script>
</head>
<body>

<div id="art-main">
<header class="art-header clearfix"><?php echo $view->position('position-30', 'art-nostyle'); ?>


<div class="art-shapes">
<h1 class="art-headline" data-left="50%">
<a href="<?php echo $document->baseurl; ?>/"><?php echo $this->params->get('siteTitle'); ?></a>
</h1>
<h2 class="art-slogan" data-left="57.56%"><?php echo $this->params->get('siteSlogan'); ?></h2>


</div>



</header>
<?php if ($view->containsModules('position-1', 'position-28', 'position-29')) : ?>
<nav class="art-nav clearfix">

<?php if ($view->containsModules('position-28')) : ?>
<div class="art-hmenu-extra1"><?php echo $view->position('position-28'); ?></div>
<?php endif; ?>
<?php if ($view->containsModules('position-29')) : ?>
<div class="art-hmenu-extra2"><?php echo $view->position('position-29'); ?></div>
<?php endif; ?>
<?php echo $view->position('position-1'); ?>

</nav>
<?php endif; ?>
<div class="art-sheet">
<?php echo $view->position('position-15', 'art-nostyle'); ?>
<?php echo $view->positions(array('position-16' => 33, 'position-17' => 33, 'position-18' => 34), 'art-block'); ?>
<div class="art-layout-wrapper clearfix">
<div class="art-content-layout">
<div class="art-content-layout-row">
<?php if ($view->containsModules('position-7', 'position-4', 'position-5')) : ?>
<div class="art-layout-cell art-sidebar1">
<?php echo $view->position('position-7', 'art-block'); ?>
<?php echo $view->position('position-4', 'art-block'); ?>
<?php echo $view->position('position-5', 'art-block'); ?>




</div>
<?php endif; ?>

<div class="art-layout-cell art-content">
<?php
echo $view->position('position-19', 'art-nostyle');
if ($view->containsModules('position-2'))
echo artxPost($view->position('position-2'));
echo $view->positions(array('position-20' => 50, 'position-21' => 50), 'art-article');
echo $view->position('position-12', 'art-nostyle');
echo artxPost(array('content' => '<jdoc:include type="message" />', 'classes' => ' art-messages'));
echo '<jdoc:include type="component" />';
echo $view->position('position-22', 'art-nostyle');
echo $view->positions(array('position-23' => 50, 'position-24' => 50), 'art-article');
echo $view->position('position-25', 'art-nostyle');
?>



</div>
<?php if ($view->containsModules('position-6', 'position-8', 'position-3')) : ?>
<div class="art-layout-cell art-sidebar2 clearfix">
<?php echo $view->position('position-6', 'art-block'); ?>
<?php echo $view->position('position-8', 'art-block'); ?>
<?php echo $view->position('position-3', 'art-block'); ?>


</div>
<?php endif; ?>
</div>
</div>
</div>
<?php echo $view->positions(array('position-9' => 33, 'position-10' => 33, 'position-11' => 34), 'art-block'); ?>
<?php echo $view->position('position-26', 'art-nostyle'); ?>

<footer class="art-footer clearfix"><?php echo $view->position('position-27', 'art-nostyle'); ?></footer>
</div>
</div>
<?php echo $view->position('debug'); ?>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-44960390-1', 'gipron.com.ua');
ga('send', 'pageview');

</script>
</body>
</html>

Edited by explo1d
Link to comment
Share on other sites

  • 0


<?php if ($view->containsModules('position-1', 'position-28', 'position-29')) : ?>
<nav class="art-nav clearfix">
<?php if ($view->containsModules('position-28')) : ?>
<div class="art-hmenu-extra1"><?php echo $view->position('position-28'); ?></div>
<?php endif; ?>
<?php if ($view->containsModules('position-29')) : ?>
<div class="art-hmenu-extra2"><?php echo $view->position('position-29'); ?></div>
<?php endif; ?>
<?php echo $view->position('position-1'); ?>
</nav>
<?php endif; ?>

Вот кусок где вставляется меню. Генерит его видимо стандартный модуль джумлы либо сторонний. Но само меню генерируется гдето в модуле, а сюда вставляется только результат. Поищите скрипты модуля меню или возможно его шаблоны. Давно джумлу не видел в глаза, так сказать вам не могу где искать, где-нибудь либо в папке рабочего шаблона со словом "menu", к примеру, либо в папке модуля.

Edited by wwt
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy