Fatal error при добавлении записи

Аватар пользователя kovalevm kovalevm 13 ноября 2019 в 12:39

Добрый день!
При добавлении материала типа "Запись в сообщество" выдает такую ошибку:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function vintauge_community_header_group(), 1 passed in /public_html/sites/all/themes/vintauge/templates/page--node--add--post.tpl.php on line 59 and exactly 2 expected in /public_html/sites/all/themes/vintauge/template.php:590 Stack trace: #0 /public_html/sites/all/themes/vintauge/templates/page--node--add--post.tpl.php(59): vintauge_community_header_group(Object(stdClass)) #1 /public_html/includes/theme.inc(1526): include('/home/rc/web/ro...') #2 /public_html/includes/theme.inc(1208): theme_render_template('sites/all/theme...', Array) #3 /public_html/includes/errors.inc(254): theme('maintenance_pag...', Array) #4 /public_html/includes/bootstrap.inc(2622): _drupal_log_error(Array, true) #5 [internal function]: _drupal_excepti in /public_html/sites/all/themes/vintauge/template.php on line 590

Строка 590 в файлу template.php

<?php/*
 * Вывод шапки сообщества - используется в шаблоне page--group и page--taxonomy
 */
function vintauge_community_header_group($group, $type)
{
    global $user;
    $group_image = field_get_items('node', $group, 'field_picture');
    $group_image_output = field_view_value('node', $group, 'field_picture', $group_image[0], array('type' => 'image', 'settings' => array('image_style' => '162x162', 'image_link' => 'none',),));

    $b = '
<div class="col-md-12 community-header">
    <div class="row">
        <div class="col-md-3"></div>
        <div class="col-md-9">'.
        ($type== 'post'?'<h2>'.$group->title.'</h2>':'<h1>'.$group->title.'</h1>')
        .'</div>
    </div>
    <div class="row">
        <div class="col-md-12 blog-header">';

    $b .= render($group_image_output);

    $b .= $group->body['ru'][0]['value'];
    $m1 = '<div class="community_block">';
    if ($user->uid > 0) {
        if (!is_user_og($user, $group->nid)) {
            $m1 .= l('Подключиться к сообществу', 'group/node/' . $group->nid . '/subscribe/og_user_node', array('attributes' => array('class' => 'link_dashed communty_join')));
        } else {
            $m1 .= l('Выйти из сообщества', 'group/node/' . $group->nid . '/unsubscribe', array('attributes' => array('class' => 'off_com communty_join')));
        }
    } else {
        $m1 .= '<i class="fa fa-lock"></i>' . l('Войти', 'user', array('attributes' => array('class' => 'link_dashed')));
        $m1 .= ' ';
        $m1 .= '' . l('Регистрация', 'user/register', array('attributes' => array('class' => 'link_dashed')));
    }

    $b .= $m1 . '</div></div></div></div>';
    return $b;
}
?>

Помогите, пожалуйста!

Лучший ответ

Аватар пользователя marassa marassa 13 ноября 2019 в 13:45
1

Помочь увидеть? Нет проблем, вот определение Вашей функции из первого файла:

function vintauge_community_header_group($group, $type)

$group и $type - это аргументы функции. Их два.
А вот вызов функции из шаблона (второй файл):

vintauge_community_header_group($group)

Передается только один аргумент - $group, что вызывает фатальную ошибку PHP.

PS Как я рад, что начал прямо с восьмёрки и этого ужаса не застал Wink

Комментарии

Аватар пользователя kovalevm kovalevm 13 ноября 2019 в 12:52

Код файл /templates/page--node--add--post.tpl.php

<?php<div class="col-lg-9 col-sm-9 col-xs-12 site-content-left pull-right">
            <?=($group?(vintauge_community_header_group($group)):'')?>
            <div class="row">

                <div class="col-lg-3 col-sm-3 col-xs-12 site-content-right fixedrightSidebar pull-left"
                     style="position: relative; overflow: visible; box-sizing: border-box;">
                    <div class="theiaStickySidebar"
                         style="padding-top: 0px; padding-bottom: 1px; position: static; top: 30px; left: 87.5px;">
                        <div class="sidebar-general sidebar widget_categories">
                            <aside class="left_aside  no_padding">
                                <br/>
                                <div id="categories-2" class="general-sidebar-wrap widget-box widget_categories">
                                    <div class="widget-title">
                                        <h4><?= (!empty($node) ? link_to_category_parent($node1) : ''?></h4>
                                    </div>
                                    <?php print get_group_tree($node?>
                                </div>
                                <div class="hidden-xs hidden-sm">
                                    <?php print render($page['sidebar_first_after']); ?>
                                </div>
                            </aside>
                            <div id="vintauge_social_media_widget-2"
                                 class="general-sidebar-wrap widget-box widget_vintauge_social_media_widget">

                            </div>
                        </div>
                    </div>
                </div>?>

Аватар пользователя marassa marassa 13 ноября 2019 в 13:30

Неужели Вы сами не видите, что в определении функции у Вас два аргумента, а вызывается она с одним? В полном соответствии с текстом ошибки.

Аватар пользователя marassa marassa 13 ноября 2019 в 13:45
1

Помочь увидеть? Нет проблем, вот определение Вашей функции из первого файла:

function vintauge_community_header_group($group, $type)

$group и $type - это аргументы функции. Их два.
А вот вызов функции из шаблона (второй файл):

vintauge_community_header_group($group)

Передается только один аргумент - $group, что вызывает фатальную ошибку PHP.

PS Как я рад, что начал прямо с восьмёрки и этого ужаса не застал Wink