• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Вывод изображения в EventON

NightHunter

Экзорцист
Регистрация
25 Фев 2014
Сообщения
728
Реакции
1.057
Всем привет! Имеется версия ВП 4.9.8 стоит в нём плагин EventOn и ACF. Ситуация следующая: мне нужно, чтобы при выводе мероприятий, EventOn выводил не то изображение, что указано в нём, а из поля ACF. Я уже задолбался с ним играться, ничего не получается.
Изображение он берёт в
Код:
/includes/eventon-eventon-TOP.php
PHP:
    case 'ft_img':
                $url = !empty($object->url_med) ? $object->url_med : $object->url;
                $url = apply_filters('eventon_eventtop_image_url', $url);
                $OT .= "<div class=\"a-img col-md-2 col-sm-3\"><div><img class='img-responsive' src='$url' /></div></div>";
                break;
Полный файл:
PHP:
<?php
/**
 * Event Top section
 * process content as html output
 * @since  eventon 2.3.17
 * @version  0.1
 */
function eventon_get_eventtop_print($array, $evOPT, $evOPT2)
{

  $OT = '';
  $_additions = apply_filters('evo_eventtop_adds', array());

  $true_array = array();
  if (isset($array['day_block']))
  $true_array['day_block'] = $array['day_block'];

  if (isset($array['belowtitle']))
  $true_array['belowtitle'] = $array['belowtitle'];

  if (isset($array['ft_img']))
  $true_array['ft_img'] = $array['ft_img'];

  if (isset($array['titles']))
  $true_array['titles'] = $array['titles'];

  foreach ($true_array as $element => $elm) {

  // convert to an object
  $object = new stdClass();
  foreach ($elm as $key => $value) {
  $object->$key = $value;
  }

  $boxname = (in_array($element, $_additions)) ? $element : null;

  switch ($element) {
  case has_filter("eventon_eventtop_{$boxname}"):
  $helpers = array(
  'evOPT' => $evOPT,
  'evoOPT2' => $evOPT2,
  );

  $OT .= apply_filters("eventon_eventtop_{$boxname}", $object, $helpers);
  break;
  case 'ft_img':
  $url = !empty($object->url_med) ? $object->url_med : $object->url;
  $url = apply_filters('eventon_eventtop_image_url', $url);
  $OT .= "<div class=\"a-img col-md-2 col-sm-3\"><div><img class='img-responsive' src='$url' /></div></div>";
  break;
  case 'day_block':
  $OT .= "<div class='a-date col-md-1 col-sm-1' data-bgcolor='" . $object->color . "' data-smon='" . $object->start['F'] . "' data-syr='" . $object->start['Y'] . "'>
         <div>" . $object->day_name . $object->html['html_date'];
  $OT .= "<em class='evo_time'>" . $object->html['html_time'] . "</em>";
  $OT .= "</div></div>";

  break;

  // title section of the event top
  case 'titles':
  $show_widget_eventtops = (!empty($evOPT['evo_widget_eventtop']) && $evOPT['evo_widget_eventtop'] == 'yes') ? '' : 'hide_eventtopdata ';

  // event edit button
  $editBTN = '';
  if (current_user_can('manage_options') && !empty($evOPT['evo_showeditevent']) && $evOPT['evo_showeditevent'] == 'yes')
  $editBTN = "<i href='" . get_edit_post_link($object->eventid) . "' class='editEventBtnET fa fa-pencil'></i>";

  $OT .= '<div class="a-training-info col-md-6 col-sm-5"><div>';
  $OT .= "<div class='a-training-title' itemprop='name'>" . $object->title . $editBTN . "</div>";

  // below title inserts
  $OT .= "<div class='a-training-text'>";
  if ($object->subtitle)
  $OT .= $object->subtitle;
  $OT .= "</div>";
  $OT .= "<div class='a-training-price-info'><p>";

  $terms = get_the_terms($object->eventid, 'event_type');
  if (!empty($terms)) {
  $OT .= 'Категория: ';
  $categories = array();
  foreach ($terms as $term)
  $categories[] = $term->name;

  $OT .= implode(', ', $categories) . ' ';
  }

  $price = get_post_meta($object->eventid, '_evcal_ec_f1a1_cus', true);

  if (!empty($price)) {

  $OT .= "<span class=\"a-price\">Цена: <b>" . $price . "</b></span>";
  }

  $OT .= "</p></div></div></div>";

  break;

  case 'belowtitle':

  //organizer
  $org = (!empty($object->evvals['evcal_organizer'])) ? $object->evvals['evcal_organizer'][0] : '';
  if ($object->fields_ && in_array('organizer', $object->fields) && !empty($org)) {
  $OT .= "<div class='a-teacher col-md-2 col-sm-3'><div><span class=\"a-title\">" . (eventon_get_custom_language($evOPT2, 'evcal_evcard_org', 'Event Organized By')) . '</span>
  <span class="a-teacher-name">' . $org . "</span></div></div>";
  }

  $OT .= "<div class='evcal_desc_info hidden' >";

  // time
  if ($object->fields_ && in_array('time', $object->fields))
  $OT .= "<em class='evcal_time'>" . $object->html['html_fromto'] . (!empty($object->timezone) ? ' <em class="evo_etop_timezone">' . $object->timezone . '</em>' : null) . "</em> ";
  //location
  if ($object->fields_ && in_array('location', $object->fields) && !empty($object->location))
  $OT .= $object->location;

  //location name
  if ($object->fields_ && in_array('locationame', $object->fields) && $object->locationname)
  $OT .= '<em class="evcal_location event_location_name">' . stripslashes($object->locationname) . '</em>';

  // event tags
  if ($object->fields_ && in_array('tags', $object->fields) && !empty($object->tags)) {
  $OT .= "<span class='evo_event_tags'>
             <em><i>" . eventon_get_custom_language($evOPT2, 'evo_lang_eventtags', 'Event Tags') . "</i></em>";

  $count = count($object->tags);
  $i = 1;
  foreach ($object->tags as $tag) {
  $OT .= "<em data-tagid='{$tag->term_id}'>{$tag->name}" . (($count == $i) ? '' : ',') . "</em>";
  $i++;
  }
  }

  $OT .= "</div>";
  break;

  case 'close1':
  $OT .= "</span>";// span.evcal_desc3
  break;

  case 'close2':
  $OT .= "</span>";// span.evcal_desc
  $OT .= "<em class='clear'></em>";
  break;
  }
  }

  return $OT;
}
В шаблоне полного мероприятия, выводится картинка из ACF нормально
PHP:
  <?php $image = get_field('foto_trenera');
                if (!empty($image)): ?>

                    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" class="img1 img-responsive"/>

                <?php endif; ?>
Вот, мне нужно, чтобы EventOn выводил везде у себя фотку из ACF, т.е.
<?php echo $image['url']; ?>
P.S. Замена $url на $image['url']; или же get_field('foto_trenera'); возвращает пустое значение
 
Последнее редактирование:
о. а теперь
Код:
print_r(get_field('foto_trenera',133);
); die();
все там же, перед img
Parse error: syntax error, unexpected ';', expecting ',' or ')' in /wp-content/plugins/eventON/includes/eventon-eventTop.php on line 50
т.е. print_r(get_field('foto_trenera',133);
 
а теперь
PHP:
<?php $image = get_field('foto_trenera', $array['titles']['eventid']);
if (!empty($image)): ?>

    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" class="img1 img-responsive"/>

<?php endif; ?>
 
Последнее редактирование:
а теперь
Код:
<?php $image = get_field('foto_trenera', $array['titles']['eventid']);
if (!empty($image)): ?>

    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" class="img1 img-responsive"/>

<?php endif; ?>
Вот так сделал и заработалоооо) :yahoo:
PHP:
$image = get_field('foto_trenera', $array['titles']['eventid']);
                $OT .= "<div class=\"a-img col-md-2 col-sm-3\"><div><img class='img-responsive' src='{$image['url']}' /></div></div>";
Спасибо тебе большое)
 
А можно еще вот так:

PHP:
<?php 
if(isset($array['titles'])
    && isset($array['titles']['eventid'])
    && !empty($array['titles']['eventid'])){
    $image = get_field('foto_trenera', $array['titles']['eventid']);
}

//следующее можешь раскомментировать и заполнить по умолчанию, как потребуется
/* if(empty($image)){
    $image = [
        'url' => 'путь к изображению на сервере от корня сайта',
        'alt' => 'описание картинки для поисковиков']; }
*/

if (!empty($image)): ?>

    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" class="img1 img-responsive"/>

<?php endif; ?>

это к твоему вопросу в чате, чтобы изображение выводило всегда, даже когда в самом плагине ACF оно не задано.
 
Последнее редактирование:
Назад
Сверху