Как запретить вывод блока если он пуст

S
На сайте с 19.11.2014
Offline
72
#41
Smirnof:
Хорошо.
Я имел ввиду, что не могу понять, как скрипт узнает, что делать с {$this->config[$nom.'catevideos']}
Ведь если я удалю все и оставлю только

вряд ли все заработает, видимо что-то нужно изменить.
Т.е. как скрипт узнает что вставить в $nom.' и то, что это значение может быть разным, запутался :(

Если вы вызываете getcates('one'), вы передаёте параметр $nom, равный 'one'

Если вы вызываете getcates('two'), вы передаёте параметр $nom, равный 'two' и т.д.

В результате в методе $this->config[$nom.'catevideos'] превращается в

$this->config['onecatevideos'] или $this->config['twocatevideos'] и т.д.

Вот простой примерчик, как это работает


//Три вызова функции write

write('one');
write('two');
write('thre');

function write($nom){

echo $nom.'BBBBBBB';

}

Выведет

'oneBBBBBBB';// для write('one');
'twoBBBBBBB';// для write('two');
'threeBBBBBBB';// для write('thre');

Тоесть, всё делает одна функция (write), а не три (writeone, writetwo, writethree);

S
На сайте с 13.11.2012
Offline
72
#42

:) Хорошо, это я понял.

Если вы вызываете getcates('one'), вы передаёте параметр $nom, равный 'one'
Если вы вызываете getcates('two'), вы передаёте параметр $nom, равный 'two' и т.д.

По другому задам вопрос, как мне вызвать getcates('one'), getcates('two') и т.д.

в

protected function getcates($nom){
// Construct URL
$part = "snippet";
$this->url = "https://www.googleapis.com/youtube/v3/search?videoEmbeddable=true&key={$this->key}&part=$part&order=data&maxResults=5&q={$this->config[$nom.'catevideos']}&type=video";
// Get Data
$data = $this->http(TRUE);
foreach ($data->items as $yt) {
$html .= $this->listQueryVideo($yt);
}
return $html;
}

?

Стал вроде бы вникать.

Наверное это в шаблоне менять нужно, верно?

<?php if(isset($this->config["onecatename"]) && $this->config["onecatename"]!=''):?>
<!-- ПЕРВЫЙ БЛОК ВИДЕО -->
<div class="section-box"><div class="section-header"><h2 class="section-title"><a class="name-link" href="<?php echo $this->config["url"] ?>/search/<?php echo $this->config["onecatesearch"] ?>"><span class="name"><?php echo $this->config["onecatename"] ?></span></a></h2><a class="more-link" href="<?php echo $this->config["url"] ?>/search/<?php echo $this->config["onecatesearch"] ?>"><span>More <i class="mini-arrow-right"></i></span></a></div><div class="section-content grid-small"><div class="nag cf">
<div class="my-trailers-slider"><?php echo $this->getonecate() ?></div>
</div></div><!-- end .section-content --></div><!-- end .section-box -->
<!-- /КОНЕЦ ПЕРВОГО БЛОКА ВИДЕО -->
<?php endif;?>

))) так не получилось <?php echo $this->get('one')cate() ?>

S
На сайте с 19.11.2014
Offline
72
#43
Smirnof:
:) Хорошо, это я понял.

По другому задам вопрос, как мне вызвать getcates('one'), getcates('two') и т.д.

Наверное это в шаблоне менять нужно, верно?

Вы писали в прошлых постах


В шаблоне у меня выводятся данные при помощи ...getonecate..., ...gettwocate

Ну вот меняете, где у вас там вызовы,

getonecate() на getcates('one')

gettwocate() на getcates('two')

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

getmillioncate() на getcates('million')

---------- Добавлено 30.07.2015 в 01:02 ----------

Smirnof:

))) так не получилось <?php echo $this->get('one')cate() ?>

))) <?php echo $this->getcates('one') ?>

Хотя и такое не лишено смысла, если добавить хотябы точку

<?php echo $this->get('one').cate() ?>, но это так, к примеру

S
На сайте с 13.11.2012
Offline
72
#44

Swir, {$this->config[$nom.'catevideos']} с этим ничего делать не нужно, оно само вставит то, что нужно основываясь на protected function getcates($nom){

Так да?

Спасибо.

---------- Добавлено 30.07.2015 в 02:08 ----------

Еще путаюсь из-за того, что в вашем образце

protected function getcates($nom){

а в моем

protected function getONEcate{

Изменить на protected function get($nom).cate{?

S
На сайте с 19.11.2014
Offline
72
#45
Smirnof:
Swir, {$this->config[$nom.'catevideos']} с этим ничего делать не нужно, оно само вставит то, что нужно основываясь на protected function getcates($nom){
Так да?
Спасибо.

Так точно.

S
На сайте с 13.11.2012
Offline
72
#46

Еще путаюсь из-за того, что в вашем образце

protected function getcates($nom){

а в моем

protected function getONEcate{

Изменить на protected function get($nom).cate{?

Хотя наверное не нужно, ведь вызывать то я буду ваш пример (функцию) ........

S
На сайте с 19.11.2014
Offline
72
#47
Smirnof:
Еще путаюсь из-за того, что в вашем образце
protected function getcates($nom){
а в моем
protected function getONEcate{

Изменить на protected function get($nom).cate{?

Нет, я привёл пример из другой оперы )))

оставляете protected function getcates($nom)

а в шаблоне меняете


$this->getonecate() на $this->getcates('one')
$this->gettwocate() на $this->getcates('two')
...................................
$this->getmillioncate() на $this->getcates('million')
S
На сайте с 13.11.2012
Offline
72
#48

Здесь <?php echo $this->getcates('one') ?>

config воткнуть не нужно? Что-то не хочет выводить, хотя и ошибок не показывает, перепроверю, возможно не все изменил.

Вот, что сейчас у меня в блоках

<?php if(isset($this->config["onecatename"]) && $this->config["onecatename"]!=''):?>
<!-- ПЕРВЫЙ БЛОК ВИДЕО -->
<div class="section-box">
<div class="section-header"><h2 class="section-title"><a class="name-link" href="<?php echo $this->config["url"] ?>/search/<?php echo $this->config["onecatesearch"] ?>"><span class="name"><?php echo $this->config["onecatename"] ?></span></a></h2><a class="more-link" href="<?php echo $this->config["url"] ?>/search/<?php echo $this->config["onecatesearch"] ?>"><span>More <i class="mini-arrow-right"></i></span></a></div>
<div class="section-content grid-small"><div class="nag cf">
<div class="my-trailers-slider"><?php echo $this->getcates('one') ?></div>
</div></div><!-- end .section-content -->
</div><!-- end .section-box -->
<!-- /КОНЕЦ ПЕРВОГО БЛОКА ВИДЕО -->
<?php endif;?>
S
На сайте с 19.11.2014
Offline
72
#49
Smirnof:
Здесь <?php echo $this->getcates('one') ?>
config воткнуть не нужно? Что-то не хочет выводить, хотя и ошибок не показывает, перепроверю, возможно не все изменил.

Да нет, не нужно

В методе перед

foreach ($data->items as $yt) {

$html .= $this->listQueryVideo($yt);

}

пропишите

$html = '';

тоесть получится


$html = '';
foreach ($data->items as $yt) {
$html .= $this->listQueryVideo($yt);
}

И пробуйте, проверяйте.

А у вас эти методы до всех изменений работали?

S
На сайте с 13.11.2012
Offline
72
#50
А у вас эти методы до всех изменений работали?

Да, вроде работали.

Ранее в методе foreach было $html = '';

я удалил, посчитал, что лишнее, но проблема не в этом.

Все же хотелось бы знать, в методе foreach наличие $html = ''; обязательно?

Заменил

$this->url = "https://www.googleapis.com/youtube/v3/search?videoEmbeddable=true&key={$this->key}&part=$part&order=data&maxResults=5&q={$this->config[$nom.'catevideos']}&type=video";

на

$this->url = "https://www.googleapis.com/youtube/v3/search?videoEmbeddable=true&key={$this->config["key"]}&part=$part&order={$this->config["zerosortingresults"]}&maxResults={$this->config["twonumber"]}&q={$this->config["twocatevideos"]}&videoSyndicated=true&type=video";

В чем разница, пытаюсь понять, но не только в {$this->key} и {$this->config["key"]}

{$this->config[$nom.'catevideos']} менял на поисковый запрос music не сработало, пытаюсь понять разницу.

---------- Добавлено 30.07.2015 в 03:08 ----------

Заработало! Ура!

Видимо там ошибки в типах запросов к youtube api были.

Swir, большое вам спасибо за терпение и оказанную помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий