We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 19185
    • 3 Posts
    Здравствуйте!
    Есть следующая задача: на сайте сделать разделение по городам с выбором города пользователем. выглядеть это должно примерно так, если упростить - есть главная страница, общая для всех и есть дочерняя страница. на обеих страницах есть возможность выбора города проживания пользователя, соответственно, в зависимости от выбранного города - контент на дочерней странице отличается. если же город не выбран, отображается общий для всех контент. и, соответственно, нужно сделать не только смену контента в зависимости от города, но и запомнить выбор пользователя, чтобы он не сбрасывался при переходе на главную и обратно и при повторном заходе на сайт (через cookies?)
    буду рад любым советам или возможным решениям этой задачи, либо хотя бы подсказкам, в какую сторону копать
    заранее всем спасибо за ответы!
      • 26744
      • 157 Posts
      Вообще-то всё просто smiley
      Делаем одну общую страницу со сниппетом.

      Задаем переменную $town - она будет отвечать за город пользователя.
      В начале страницы проверяем:
      1. Есть ли эта переменная в cookies. Если есть - сразу выводим контент для нужного города.
      2. Есть ли эта переменная в запросе пользователя - он нажал на ссылку типа index.php?town=1
      выводим ему контент нужного города, ставим ему cookie
      3. Иначе - выводим общий контент

      Единственное нужно продумать:
      1. Использовать ЧПУ (ссылки типа site.ru/moscow/ или вообще на русском языке site.ru/москва)
      2. Передавать название города или его ID (в БД нужно будет создать таблицу со всеми городами).

      Усовершенствования: если найдешь БД ip-адресов городов - то можно автоматически определять город.

      Использовать стандартный Ditto с TV - можно wink но мне кажется сложнее
        • 19185
        • 3 Posts
        супер! спасибо за быстрый ответ!

        вопрос в таком случае в следующем (может и глупый вопрос, конечно): где задавать переменную и как записывать и проверять куки? на каком уровне это делается? стандартными средствами modx, либо в сниппете, либо дописывать плагин и вызывать его при определённом условии?
          • 26744
          • 157 Posts
          Я программер, поэтому мне проще (быстрее) сделать самописный сниппет.

          Сниппет ставим в самом верху шаблона, т.к. от его параметров зависит содержание страницы.
          Примерный вид сниппета:

          <?
          if (isset($_COOKIE['town']))
          	{
          	$town=$_COOKIE['town'];
          	}
          
          if ((!isset($_COOKIE['town'])) and (isset($_GET['town']))) 
            	{
          	$town=$_GET['town'];setcookie ("town", $_GET['town'],time()+36000);  /* ставим куки, если их нет */	
          	} 
          	
          	if ((!isset($_COOKIE['town'])) and (!isset($_GET['town']))) 
          	{
          	$town='';
          	}
          
          #Далее выводим контект, который зависит от $town;
          # через запрос в БД 
          $content=@mysql_result(mysql_query("SELECT content from modx_site_content where id='$town'"), $q);
          echo $content;
          ?>
          



          Здесь $town - это цифра, вернее id страницы с контентом.
          Для использования названия города - нужно изменить запрос к БД (r примеру:...where title=’$town’)
            • 19185
            • 3 Posts
            Огромное спасибо!

            Sergil, а можно, если что, немного будет подёргать Вас в последствии в ПМ или по почте? ну, совсем немного rolleyes
              • 26744
              • 157 Posts
              Quote from: mexx at Dec 09, 2009, 08:10 AM

              Огромное спасибо!

              Sergil, а можно, если что, немного будет подёргать Вас в последствии в ПМ или по почте? ну, совсем немного rolleyes

              Совсем немного - лучше по аське - оперативнее tongue