За последние 24 часа нас посетили 18059 программистов и 1599 роботов. Сейчас ищут 883 программиста ...

Не работает функция

Тема в разделе "PHP для новичков", создана пользователем Slavon143, 14 июн 2018.

  1. Slavon143

    Slavon143 Новичок

    С нами с:
    27 авг 2016
    Сообщения:
    43
    Симпатии:
    0
    Привет. В Open cart есть функция автогенерации метатегов и заголовков
    PHP:
    1.  if($category_id != 61) { // категория керамическая черепица
    2.                 $name = $this->ucfirst_utf8(mb_strtolower($category_info['name']));  
    3.                 $this->document->setTitle($name." купить в Харькове цена в интернет магазине Roofua.com.ua");
    4.                 $this->document->setDescription($name." продаётся нашим интернет магазином Roofua.com.ua уже не 1 год, потому купить данный товар по недорогой цене и не переживать за качество - можно у нас :)");
    5.                 $this->document->setKeywords($name." купить в Харькове");
    6.                 $data['heading_title'] = $this->ucfirst_utf8(mb_strtolower($category_info['name'])) . " купить в Харькове";
    7.                
    8.                 $data['h2'] = $this->ucfirst_utf8(mb_strtolower($category_info['name'])) . " цена в интернет магазине";
    9.             }
    Я написал функцию которая пишет автогенерацию только для определенной категории напр. $category_id = 61, черепица, для нее отдельные теги а $category_id = 62, уже другие.
    PHP:
    1. function Title_set(
    2.                 $id = '',
    3.                 $category_info,
    4.                 $setTitle = '',
    5.                 $setDescription = '',
    6.                 $setKeywords = '' ,
    7.                 $heading_title = '',
    8.                 $h2 = ''
    9.             ){
    10.  
    11.                 if($category_id = $id) { // категория керамическая черепица
    12.                     $name = $this->ucfirst_utf8(mb_strtolower($category_info['name']));
    13.                     $this->document->setTitle($name." $setTitle");
    14.                     $this->document->setDescription($name."$setDescription");
    15.                     $this->document->setKeywords($name." $setKeywords");
    16.                     $data['heading_title'] = $this->ucfirst_utf8(mb_strtolower($category_info['name'])) . "$heading_title";
    17.  
    18.                     $data['h2'] = $this->ucfirst_utf8(mb_strtolower($category_info['name'])) . "$h2";
    19.                 }
    20.  
    21.  
    22.             }
    23.  
    24.             Title_set(
    25.                 $id = '61',
    26.                 $category_info,
    27.                 $setTitle = 'TEST',
    28.                 $setDescription = 'TEST',
    29.                 $setKeywords = 'TEST' ,
    30.                 $heading_title = 'TEST',
    31.                 $h2 = 'TEST'
    32.             );
    Но где-то я допустил ошибку и не могу найти. И undefined function.
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    все аргументы, для которых установлены значения по умолчанию, должны находиться правее аргументов, для которых значения по умолчанию не заданы, в противном случае ваш код может работать не так, как вы этого ожидаете
    --- Добавлено ---
    благодаря тебе я прочитал это в документации.
    а то так бы и делал всё правильно, но был бы не до конца уверен, что такое правило есть (лагичнажи)
     
  3. Slavon143

    Slavon143 Новичок

    С нами с:
    27 авг 2016
    Сообщения:
    43
    Симпатии:
    0
    Да, интересно.