Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разное отображение шаблона 3-х колоночного сайта на php
 
 автор: RobotWerder   (26.05.2012 в 14:31)   письмо автору
 
 

Суть проблемы по адресу
http://cup.academy-ap.com/novosty
Необходимо сделать чтобы центр колонка расширялась при условии что левый столбик отсутствует

Этого варианта не хватает для нормального отображения макета, тк при наличие левого столбика центр колонка заполняет все пространство справа..
Не хватает php знаний чтобы разрбраться в прстом коде шаблона, (сайт на joomla).
привожу код части шаблона



// check modules
$showRightColumn        = ($this->countModules('position-3') or $this->countModules('position-6') or $this->countModules('position-8'));
$showbottom                        = ($this->countModules('position-9') or $this->countModules('position-10') or $this->countModules('position-11'));
$showleft                        = ($this->countModules('position-4') or $this->countModules('position-7') or $this->countModules('position-5'));

if ($showRightColumn==0 and $showleft==0) {
        $showno = 0;
}



..............................
и видимо вывод колонок


 <div id="<?php echo $showRightColumn 'contentarea2' 'contentarea' ?>">

.........................


   <?php if ($navposition=='left' and $showleft) : ?>


                                                        <div class="left1 <?php if ($showRightColumn==NULL){ echo 'leftbigger';} ?>" id="nav">

...................


  <div id="<?php echo $showRightColumn 'wrapper' 'wrapper2'?><?php if (isset($showno)){echo 'class="shownocolumns"';}?>>

.........



вот понимаю что нужно сделать вывод третьего контейнера, например wrapper3 и вытянуть его на необходимую ширину с помощью css но при добавлении к 'wrapper' : 'wrapper2'; третьего контейнера получаю ошибку..
Как правилдьно поставить третий контейнер?!

  Ответить  
 
 автор: confirm   (26.05.2012 в 14:37)   письмо автору
 
   для: RobotWerder   (26.05.2012 в 14:31)
 

Это что такое:

<?php if ($navposition=='left' and $showleft) : ?>

?

  Ответить  
 
 автор: RobotWerder   (26.05.2012 в 17:12)   письмо автору
 
   для: confirm   (26.05.2012 в 14:37)
 

// get params
$color              = $this->params->get('templatecolor');
$logo               = $this->params->get('logo');
$navposition        = $this->params->get('navposition');


и еще вот

  <?php if ($navposition=='center' and $showleft) : ?>

                                        <div class="left <?php if ($showRightColumn==NULL){ echo 'leftbigger';} ?>" id="nav" >

                                                <jdoc:include type="modules" name="position-7"  style="beezDivision" headerLevel="3" />
                                                <jdoc:include type="modules" name="position-4" style="beezHide" headerLevel="3"  />
                                                <jdoc:include type="modules" name="position-5" style="beezTabs1" headerLevel="2"  id="3" />

  Ответить  
 
 автор: confirm   (26.05.2012 в 17:24)   письмо автору
 
   для: RobotWerder   (26.05.2012 в 17:12)
 

И что? Вы хотите чтобы я вам теперь в каждом участке вашего кода указывал на одну и ту же ошибку?

  Ответить  
 
 автор: RobotWerder   (26.05.2012 в 17:57)   письмо автору
 
   для: confirm   (26.05.2012 в 17:24)
 

Что ж..прошу прощения.., вы не писали что это ошибка, а я не очень в php// так что если не сложно попрошу объяснить неучу :)
пасиб что проявляете внимание

  Ответить  
 
 автор: confirm   (26.05.2012 в 18:15)   письмо автору
 
   для: RobotWerder   (26.05.2012 в 17:57)
 

В РНР есть альтернативный синтаксис управления для if, while, for, foreach и switch, когда открывающая фигурная скобка заменяется на двоеточие (:), а закрывающая - на endif;, endwhile;, endfor;, endforeach; или endswitch;, соответственно.
В приведенном вами этого не видно, это не значит что ошибка, конец структуры возможно где-то далее. Но по этим кускам можно сказать только, если использовать так как есть, то парсер будет указывать на ошибку после каждой из строки альтернативного синтаксиса. Другими словами нарушена структура вами, надо полагать.
Если вы не понимаете в РНР, то навряд ли вы поняли то, что я тут написал. Как и мне, что-то понимающего в нем, трудно сказать в чем именно причина ошибки по таким кускам.
Отдайте свой код тому, кто понимает, оплатите работу, иначе ваши кусочки тут править никто не будет.

PS. Кстати, хорошо бы говорить конкретно об ошибке, а не просто упоминать.

  Ответить  
 
 автор: robotwerder   (28.05.2012 в 09:19)   письмо автору
12.6 Кб
 
   для: confirm   (26.05.2012 в 18:15)
 

В том и дело, что я не понимаю знаки вопроса и двоеточие в этом синтаксисе и внедрение доп Id приводит естессно к ошибке, прикладываю index.php целиком ..
Будьте добры взгляните, меня скорее всего интересуют дополнительный div id = wrapper иkb доп contentarea при наличие правой колонки

  Ответить  
 
 автор: confirm   (28.05.2012 в 09:59)   письмо автору
 
   для: robotwerder   (28.05.2012 в 09:19)
 

Что посмотреть? Я не знаю джумлу и знать не хочу. Что касается данной страницы, то могу сказать, что именно в этом исходном коде нет ошибок синтаксиса php. А что за ошибки вы получаете - ругается php, или таковой вы называете не тот результат, которого ожидали, вы не сообщаете.

  Ответить  
 
 автор: RobotWerder   (28.05.2012 в 10:50)   письмо автору
 
   для: confirm   (28.05.2012 в 09:59)
 

Мне необходимо внедрить доп условие, чтобы пр наличие правой колонки центральный див wrapper расширялся на оставшуюся ширину страницы..
полагаю вот сюда <div id="<?php echo $showRightColumn ? 'wrapper' : 'wrapper2'; ?>" <?php if (isset($showno)){echo 'class="shownocolumns"';}?>>

Думаю сделать Какой нить wrapper3, но как его в эту строку вмазать не пойму((, ведь если следовать вашему совету двоеточие здесь между 'wrapper' : 'wrapper2'; означает начало фигурных скобок в которых содержится условие и если я делаю wrapper' : 'wrapper2 : wrapper3
то естественно получаю ошибку
Parse error: syntax error, unexpected ':', expecting ',' or ';' in /home/u20284/cup.academy-ap.com/www/templates/beez_20/index.php on line 171

Это я делаю методом научного тыка)

  Ответить  
 
 автор: confirm   (28.05.2012 в 12:48)   письмо автору
 
   для: RobotWerder   (28.05.2012 в 10:50)
 

wrapper' : 'wrapper2 : wrapper3 - так нельзя делать.
<?
//это альтернативная структура управления
$a true;
if(
$a) :
  echo 
1;
endif;
//что идентично такой структуре
if($a) {
  echo 
1;
}
//а это тернарная (или условная запись)
echo $a 0;
//которая выведет на экран 1, так как $a истинно 

Если выражаться словами, то условная запись гласит - если выполняется условие, то выполнить то, что следует за знаком вопроса, иначе то, что за двоеточием. Эту запись то же самое, что и это:
<?
if($a) {
  echo 
1;
} else {
  echo 
0;
}

Вы же наколбасили то, что конечно является ошибкой. А чтобы написать правильно, вы должны сначала определиться на каких условиях у вас должен появится wrapper3. Если их нет, то просто добавляйте html код вашего div.

  Ответить  
 
 автор: RobotWerder   (30.05.2012 в 10:20)   письмо автору
 
   для: confirm   (28.05.2012 в 12:48)
 

то есть в моем случае это тренарная запись выражения..
Значит так:

wrapper3 появится при условии что присутствует правая колонка и левая отсутствует,

то есть применительно к моему index.php примерно так будет?!

if ($showleft==0)
{
echo $wrapper3;
}

если да то проблема в том, чтобы оставить работоспособным старый код и каким образом добавить туда этот ?!?
не оч понятно где там одно условие начинается а где кончается :(

  Ответить  
 
 автор: confirm   (30.05.2012 в 11:42)   письмо автору
 
   для: RobotWerder   (30.05.2012 в 10:20)
 

Я знаю, что у меня левая рука левая, а правая, правая. Но если я повернусь спиной к северу, может быть и запутаюсь. ) Но что у меня две руки я знаю точно.

А вот с вашими колонками, это вопрос, где там левые и какие правые... У меня нет Джумлы, я не могу запустить реально ваш код, и проверить свои суждения, а устанавливать ее ради этого конечно же не буду. Поэтому буду говорить исходя из имеющегося.

Вы показывали ранее кусочки, где в структурах прописано условие:

if ($navposition=='left' and $showleft) :

то есть определяющее, что $showleft истинно (не равно 0 - указывать $showleft==0 нет необходимости, и пишут так в этом случае !$showleft), и насколько я понимаю, в эту структуру вы и пытались добавить свое.

Сейчас вы пишите что добавление должно быть при противном, а значит ищите в своем коде то место, где есть условие:

if (!$showleft && $showRightColumn) :

(если конечно $showRightColumn и определяет правую колонку) и добавляйте то, что вам нужно в этой структуре. А конкретно в каком месте этой структуры, я вам сказать не могу.

Но в том коде, что вы показывали, насколько я помню, условие когда $showleft ложно отсутствует. Значит вам надо самому добавлять структуру в код, которая бы описывала это условие:

if (!$showleft && $showRightColumn) :
  //тут то, что должно быть выведено, включая ваше добавление
endif;


А существующие структуры так пусть и остаются.

  Ответить  
 
 автор: RobotWerder   (31.05.2012 в 11:19)   письмо автору
 
   для: confirm   (30.05.2012 в 11:42)
 

После долгих вариаций у меня получилось..
выражаю вам признательность, жаль плюсануть нельзя))

Сделал вот так

 <div id="<?php echo $showRightColumn && $showleft 'wrapper' : (!$showleft && $showRightColumn 'wrapper3' 'wrapper2'); ?>

  Ответить  
 
 автор: lobaneff   (22.09.2014 в 20:42)   письмо автору
 
   для: RobotWerder   (31.05.2012 в 11:19)
 

Спасибо вам за предоставленное решение проблемы. Я столкнулся точно с такой же ситуацией. Это явная недоработка (а если точнее "косяк") стандартного шаблона Joomla. У них есть команда по "ловле блох", думаю им давно пора бы устранить недостаток. Хотя, возможно, у них и заложена такая логика работы шаблона.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования