Phalcon Framework 4.1.2

TypeError: Argument 1 passed to Phalcon\Text::lower() must be of the type string, null given

/var/www/html/cache/_var_www_html_app_views_index_showartist.volt.php (80)
#0Phalcon\Text::lower
/var/www/html/cache/_var_www_html_app_views_index_showartist.volt.php (80)
<div class="page-bg chord-bg" style="background-image: url('<?= $this->url->get(($artist->artwork != null ? $artist->artwork : 'images/bg_default.jpg')) ?>')"></div>
<?php $this->macros['chord_list'] = function($__p = null) { if (isset($__p[0])) { $chord = $__p[0]; } else { if (array_key_exists("chord", $__p)) { $chord = $__p["chord"]; } else {  throw new \Phalcon\Mvc\View\Exception("Macro 'chord_list' was called without parameter: chord");  } }  ?>
<?php $link = 'chords/' . substr(Phalcon\Text::lower($chord->slug), 0, 1) . '/' . (Phalcon\Text::lower($chord->slug)) . '.html'; ?>
<div class="item r" data-id="item-<?= $chord->id ?>" data-src="https://www.youtube.com/watch?v=<?= $chord->video ?>">
  <div class="item-media semi-rounded semi-half-rounded">
    <a href="<?= $this->url->get($link) ?>" class="item-media-content"
      style="background-image: url('<?= $this->url->get(($chord->Artist->artwork != null ? $chord->Artist->artwork : 'images/bg_default.jpg')) ?>');">
    </a>
    <div style="display: none" class="item-info">
      <div class="item-title text-ellipsis">
        <a href="<?= $this->url->get($link) ?>" class="chord-title"><?= $chord->title ?></a>
      </div>
      <div class="item-author item-title text-sm text-ellipsis">
        <a href="<?= $this->url->get('artist/' . Phalcon\Text::lower($chord->Artist->slug)) ?>" class="text-muted"><?= $chord->Artist->title ?></a>
      </div>
    </div>
  </div>
  <div class="item-info">
      <div class="item-overlay bottom text-right"></div>
      <div class="item-title text-ellipsis">
          <a href="<?= $this->url->get($link) ?>"><?= $chord->title ?></a>
          <?php if ($chord->explicit == 'yes') { ?>
          <span style="position: absolute;">
              <a tooltip="Explicit Content" flow="right">
                  <?= $this->tag->image(['images/explicit.png', 'alt' => 'Explicit Content', 'style' => 'width: 15px;margin-left: 4px;margin-top: -2px']) ?>
              </a>
          </span>
          <?php } ?>
      </div>
      <?php if ($this->length($chord->featuringArtists()) > 0) { ?>
      <div class="item-author text-sm text-ellipsis text-muted">
          <a class="text-muted" href="<?= $this->url->get('artists/' . substr(Phalcon\Text::lower($chord->Artist->slug), 0, 1) . '/' . (Phalcon\Text::lower($chord->Artist->slug)) . '.html') ?>"><?= $chord->Artist->title ?></a> with <?= join(', ', $chord->featuringArtists()) ?>
      </div>
      <?php } ?> <?php if ($chord->chord == null) { ?>
      <div class="item-title text-ellipsis btn-right-absolute">
          <a class="btn btn-xs btn-outline btn-outline-black rounded b-black" href="<?= $this->url->get('submit/' . Phalcon\Text::lower($chord->slug)) ?>">Add tab</a>
      </div>
      <?php } ?>
  </div>
</div><?php }; $this->macros['chord_list'] = \Closure::bind($this->macros['chord_list'], $this); ?><script>
document.addEventListener('DOMContentLoaded', function () {
  document.querySelectorAll('.item-info').forEach(function (container) {
    const titleBlock = container.querySelector('.item-title a');
    const hasButton = container.querySelector('.btn');
    const hasExplicit = container.querySelector('img[alt="Explicit Content"]');
 
    if (titleBlock && (hasButton || hasExplicit)) {
      titleBlock.classList.add('truncate');
    }
  });
});
</script>
<style>
  .item-title a.truncate {
    display: inline-block;
    max-width: 70%; /* adjust to fit your layout */
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    vertical-align: middle;
  }
</style>
<div class="row-col">
  <?= $this->partial('components/left-sidebar') ?>
  <div class="col-lg-9 b-r no-border-md">
    <div class="padding b-b">
      <nav aria-label="breadcrumb">
        <ol class="breadcrumb">
          <li class="breadcrumb-item"><a href="https://www.musikord.com/">Home</a></li>
          <li class="breadcrumb-item active" aria-current="page"><?= $artist->title ?></li>
        </ol>
      </nav>
      <div class="row-col">
        <div class="col-sm w w-auto-xs m-b">
          <div class="item w r">
            <div class="item-media rounded hidden-xs-down">
              <div class="item-media-content" style="background-image: url('<?= $this->url->get(($artist->artwork != null ? $artist->artwork : 'images/bg_default.jpg')) ?>');" alt="<?= $artist->title ?>"></div>
              <div style="display: none" class="item-info">
                <div class="item-title text-ellipsis">
                  <?= $this->tag->linkTo(['artist/' . substr(Phalcon\Text::lower($artist->slug), 0, 1) . '/' . Phalcon\Text::lower($artist->slug), $artist->title]) ?>
                </div>
                <div class="item-author text-sm text-ellipsis"></div>
              </div>
            </div>
          </div>
        </div>
        <div class="col-sm">
          <div class="p-l-md no-padding-xs">
            <div class="page-title">
              <h1 class="inline title-mobile"><?= $artist->title ?></h1>
            </div>
            <div class="item-action m-b">
              <a id="share-btn-1" class="btn btn-icon white rounded btn-share pull-right" title="Bagikan halaman ini">
                <i class="fa fa-share-alt"></i>
              </a>
              <a class="btn btn-icon rounded btn-favorite">
                <i class="fa fa-eye"></i>
              </a>
              <span class="text-muted">
                <a dataconvert="" href="#">
                  <?= $this->getDI()->get("shortNumber")->__invoke($artist->view) ?>
                </a>
              </span>
              
                <div class="inline dropdown m-l-xs">
                  <a class="btn btn-icon rounded btn-more" data-toggle="dropdown">
                    <i class="fa fa-ellipsis-h"></i>
                  </a>
                  <div class="dropdown-menu dropdown-menu-scale pull-right">
                    <a class="dropdown-item" href="<?= $this->url->get('submit') ?>">
                      <span class="material-icons">add</span> &nbsp;Submit your Chord
                    </a>
                    <div class="dropdown-divider"></div>
                    <a class="dropdown-item" href="#" data-toggle="modal" data-target="#share-modal">
                      <i class="fa fa-share-alt" aria-hidden="true"></i> &nbsp;Share This Page
                    </a>
                  </div>
                </div>
              </div>
              <div style="text-transform: capitalize" class="item-meta">
                <?php $genres = explode('|', $artist->genre) ?>
                <?php foreach ($genres as $genre) { ?>
                  <?= $this->tag->linkTo(['artists/genre/' . Phalcon\Text::lower($genre), $genre, 'class' => 'btn btn-xs rounded white']) ?>
                <?php } ?>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- BEGIN DATA -->
      <div class="col-lg-9no-border-md">
        <div class="padding">
          <div class="nav-active-border b-danger bottom m-b-md">
            <ul class="nav l-h-2x">
              <li class="nav-item m-r inline">
                <a class="nav-link active" href="#" data-toggle="tab" data-target="#tab_1">Chords &amp; Lyrics</a>
              </li>
              <li class="nav-item m-r inline">
                <a class="nav-link" href="#" data-toggle="tab" data-target="#tab_2">Videos</a>
              </li>
              <li class="nav-item m-r inline">
                <a class="nav-link" href="#" data-toggle="tab" data-target="#tab_3"> News</a>
              </li>
              <li class="nav-item m-r inline">
                <a class="nav-link" href="#" data-toggle="tab" data-target="#tab_4">More Info</a>
              </li>
            </ul>
          </div>
          <div class="tab-content">
            <div class="tab-pane active" id="tab_1">
              <div sty id="tracks" class="row item-list item-list-xs item-list-li m-b no-padding-xs">
                <div class="col-lg-12 col-xs-12 no-padding-xs">
                  <?php foreach ($chord_list as $chord) { ?>
                    <?= $this->callMacro('chord_list', [$chord]) ?>
                  <?php } ?>
                </div>
              </div>
              <div class="item-meta text-sm text-muted">
                Didn't find a chords from <strong><?= $artist->title ?></strong> you were looking for? Be the first to add it to the site.
              </div>
              <p>
                <a class="btn btn-sm m-t success _600" href="<?= $this->url->get('submit') ?>"> Publish tabs</a></strong>
            </div>
            
            <div class="tab-pane" id="tab_2">
              <div class="row">
                <div style="display: none" class="col-xs-4 col-sm-4 col-md-4 col-lg-3">
                  <?= $this->partial('components/sponsor-card') ?>
                </div>
                <?php foreach ($artist->Chord as $chord) { ?>
                  <div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
                    <div class="item r" data-id="item-3">
                      <div class="item-media semi-rounded item-media-4by3 m-b-md">
                        <div class="video-title-hover">
                            <div class="item-title text-sm text-ellipsis">
                                <?= $chord->title ?> by <?= $artist->title ?>
                            </div>
                        </div>
                        <?php if ($chord->video != null) { ?>
                        <a href="#" data-theVideo="https://www.youtube.com/embed/<?= $chord->video ?>" data-toggle="modal" data-target="#videoModal" class="item-media-content" style="background-image: url('https://img.youtube.com/vi/<?= $chord->video ?>/0.jpg');width: 100%;height: 350px;object-fit: cover;background-position: 60% -50px;" alt="<?= $chord->title ?>" title="<?= $chord->title ?>" aria-label="Artwork"></a>
                        <?php } else { ?>
                        <a href="<?= $this->url->get('chord/' . $chord->slug) ?>" target="_blank" class="item-media-content" style="background-image: url('<?= $this->url->get('images/bg_default.jpg') ?>');" alt="<?= $chord->title ?>" title="<?= $chord->title ?>"></a>
                        <?php } ?>
                        <div class="item-overlay center overlay-play-video">
                          <button href="#" data-theVideo="https://www.youtube.com/embed/<?= $chord->video ?>" data-toggle="modal" data-target="#videoModal" class="btn-playpause">Play</button>
                        </div>
                      </div>
                      <div style="display: none" class="item-info">
                        <div class="item-overlay bottom text-right">
                          <a href="#" class="btn-favorite">
                            <i class="fa fa-heart-o"></i>
                          </a>
                          <a href="#" class="btn-more" data-toggle="dropdown">
                            <i class="fa fa-ellipsis-h"></i>
                          </a>
                          <div class="dropdown-menu pull-right black lt"></div>
                        </div>
                        <div class="item-title text-ellipsis">
                          <a href="<?= $this->url->get('chord/' . $chord->title) ?>">
                            <?= $chord->title ?>
                          </a>
                        </div>
                        <div class="item-author text-sm text-ellipsis">
                          <a href="<?= $this->url->get('artist/' . substr(Phalcon\Text::lower($artist->slug), 0, 1) . '/' . Phalcon\Text::lower($artist->slug)) ?>" class="text-muted">
                            <?= $artist->title ?>
                          </a>
                        </div>
                      </div>
                    </div>
                  </div>
                <?php } ?>
              </div>
            </div>
            <div class="tab-pane" id="tab_3">
              <div class="row-col m-b">
                <div class="row">
                  <div class="col-md-12">
                  <div style="display: none" class="col-xs-4 col-sm-4 col-md-4 col-lg-3">
                    <?= $this->partial('components/sponsor-card') ?>
                  </div>
                  <?php if ($artist->News != null) { ?>
                  <?php $v153332310858042795311iterated = false; ?><?php foreach ($artist->News as $news) { ?><?php $v153332310858042795311iterated = true; ?>
                    <div class="col-xs-4 col-sm-4 col-md-4 col-lg-3">
                      <div class="item r" data-id="item-3" data-src="https://api.soundcloud.com/tracks/79031167/stream?client_id=a10d44d431ad52868f1bce6d36f5234c">
                        <div class="item-media item-media-4by3">
                          <a href="<cms:show k_page_link/>" class="item-media-content" style="background-image: url('<?= $this->url->get(($news->image != null ? $news->image : 'images/bg_default.jpg')) ?>');" alt="<?= $news->title ?>"></a>
                        </div>
                        <div class="item-info">
                          <div class="item-overlay bottom text-right">
                            <a href="#" class="btn-favorite"><i class="fa fa-heart-o"></i></a>
                            <a href="#" class="btn-more" data-toggle="dropdown"><i class="fa fa-ellipsis-h"></i></a>
                            <div class="dropdown-menu pull-right black lt"></div>
                          </div>
                          <div class="item-title text-ellipsis">
                            <?= $this->tag->linkTo(['news/' . Phalcon\Text::lower($news->slug), $news->title]) ?>
                          </div>
                        </div>
                      </div>
                    </div>
                  <?php } if (!$v153332310858042795311iterated) { ?>
                  <div class="text-muted">News not available</div>
                  <?php } ?>
                  <?php } ?>
                </div>
                </div>
              </div>
            </div>
            <div class="tab-pane" id="tab_4">
              <div class="row-col m-b">
                <div class="col-xs w-xs text-muted">About</div>
                <?php if ($artist->content != null) { ?>
                  <div class="col-xs">
                      <div class="excerpt-wrapper">
                        <div class="excerpt-short"><?= $this->slice($artist->content, 0, 200) ?>... <a href="#" class="show-more text-muted">Show more</a></div>
                        <div class="excerpt-full" style="display: none;"><?= $artist->content ?></div>
                      </div>
                  </div>
                <?php } else { ?>
                  <div class="text-muted">No info available</div>
                <?php } ?>
              </div>
              <div class="row-col m-b">
                <div class="col-xs w-xs text-muted">Website</div>
                <?php if ($artist->website != null) { ?>
                  <div class="col-xs">
                    <?= $this->tag->linkTo(['artist/' . $artist->slug, $artist->title, 'target' => '_blank']) ?>
                  </div>
                <?php } else { ?>
                  <div class="text-muted">Website not available</div>
                <?php } ?>
              </div>
              <div class="row-col m-b">
                <div class="col-xs w-xs text-muted"></div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- END DATA -->
      <?= $this->partial('components/footer-content') ?>
    </div>
    <?= $this->partial('components/right-sidebar') ?>
</div>
<script>
document.addEventListener('click', function(e) {
  if (e.target.classList.contains('show-more')) {
    e.preventDefault();
    const parent = e.target.closest('.excerpt-wrapper');
    parent.querySelector('.excerpt-short').style.display = 'none';
    parent.querySelector('.excerpt-full').style.display = 'block';
    e.target.remove(); // remove the "Show more" button
  }
});
</script>
#1unknown
#2Phalcon\Mvc\View\Engine\Volt->render
#3Phalcon\Mvc\View->engineRender
#4Phalcon\Mvc\View->processRender
#5Phalcon\Mvc\View->render
#6Phalcon\Mvc\Application->handle
/var/www/html/public/index.php (29)
<?php
define('BASE_PATH', dirname(__DIR__));
define('APP_PATH', BASE_PATH . '/app');
 
date_default_timezone_set('Asia/Jakarta');
 
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
require(BASE_PATH . '/vendor/autoload.php');
 
use Phalcon\Di\FactoryDefault;
use Phalcon\Debug;
 
// Enable Phalcon debug screen
$debug = new Debug();
$debug->listen();
 
try {
    $di = new FactoryDefault();
 
    include APP_PATH . '/config/router.php';
    include APP_PATH . '/config/services.php';
 
    $config = $di->getConfig();
    include APP_PATH . '/config/loader.php';
 
    $application = new \Phalcon\Mvc\Application($di);
    echo $application->handle($_SERVER['REQUEST_URI'])->getContent();
 
} catch (\Exception $e) {
    // Temporarily disable redirect for debugging
    // header('location:' . $config->application->baseUri . '404');
    // die($e->getMessage());
 
    echo '<pre>' . $e . '</pre>';
}
KeyValue
_url/artists/n/n-flying-엔플라잉-.html
KeyValue
USERwww-data
HOME/var/www
HTTP_HOSTwww.musikord.com
HTTP_ACCEPT_ENCODINGgzip, br, zstd, deflate
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT*/*
REDIRECT_STATUS200
SERVER_NAMEwww.musikord.com
SERVER_PORT443
SERVER_ADDR10.64.15.165
REMOTE_USER
REMOTE_PORT44042
REMOTE_ADDR216.73.216.52
SERVER_SOFTWAREnginx/1.24.0
GATEWAY_INTERFACECGI/1.1
HTTPSon
REQUEST_SCHEMEhttps
SERVER_PROTOCOLHTTP/1.1
DOCUMENT_ROOT/var/www/html/public
DOCUMENT_URI/index.php
REQUEST_URI/artists/n/n-flying-%EC%97%94%ED%94%8C%EB%9D%BC%EC%9E%89-.html
SCRIPT_NAME/index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHODGET
QUERY_STRING_url=/artists/n/n-flying-엔플라잉-.html&
SCRIPT_FILENAME/var/www/html/public/index.php
PATH_INFO
FCGI_ROLERESPONDER
PHP_SELF/index.php
REQUEST_TIME_FLOAT1753890990.1386
REQUEST_TIME1753890990
#Path
0/var/www/html/public/index.php
1/var/www/html/vendor/autoload.php
2/var/www/html/vendor/composer/autoload_real.php
3/var/www/html/vendor/composer/platform_check.php
4/var/www/html/vendor/composer/ClassLoader.php
5/var/www/html/vendor/composer/autoload_static.php
6/var/www/html/vendor/ralouphie/getallheaders/src/getallheaders.php
7/var/www/html/vendor/symfony/deprecation-contracts/function.php
8/var/www/html/vendor/guzzlehttp/guzzle/src/functions_include.php
9/var/www/html/vendor/guzzlehttp/guzzle/src/functions.php
10/var/www/html/vendor/google/apiclient-services/autoload.php
11/var/www/html/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
12/var/www/html/vendor/google/apiclient/src/aliases.php
13/var/www/html/vendor/google/apiclient/src/Client.php
14/var/www/html/vendor/google/apiclient/src/Service.php
15/var/www/html/vendor/google/apiclient/src/AccessToken/Revoke.php
16/var/www/html/vendor/google/apiclient/src/AccessToken/Verify.php
17/var/www/html/vendor/google/apiclient/src/Model.php
18/var/www/html/vendor/google/apiclient/src/Utils/UriTemplate.php
19/var/www/html/vendor/google/apiclient/src/AuthHandler/Guzzle6AuthHandler.php
20/var/www/html/vendor/google/apiclient/src/AuthHandler/Guzzle7AuthHandler.php
21/var/www/html/vendor/google/apiclient/src/AuthHandler/AuthHandlerFactory.php
22/var/www/html/vendor/google/apiclient/src/Http/Batch.php
23/var/www/html/vendor/google/apiclient/src/Http/MediaFileUpload.php
24/var/www/html/vendor/google/apiclient/src/Http/REST.php
25/var/www/html/vendor/google/apiclient/src/Task/Retryable.php
26/var/www/html/vendor/google/apiclient/src/Task/Exception.php
27/var/www/html/vendor/google/apiclient/src/Exception.php
28/var/www/html/vendor/google/apiclient/src/Task/Runner.php
29/var/www/html/vendor/google/apiclient/src/Collection.php
30/var/www/html/vendor/google/apiclient/src/Service/Exception.php
31/var/www/html/vendor/google/apiclient/src/Service/Resource.php
32/var/www/html/vendor/google/apiclient/src/Task/Composer.php
33/var/www/html/app/config/router.php
34/var/www/html/app/config/services.php
35/var/www/html/app/config/config.php
36/var/www/html/app/config/loader.php
37/var/www/html/cache/_var_www_html_app_views_components_macros_chord-card.volt.php
38/var/www/html/cache/_var_www_html_app_views_components_macros_artist-card.volt.php
39/var/www/html/cache/_var_www_html_app_views_components_macros_gravatar.volt.php
40/var/www/html/app/controllers/IndexController.php
41/var/www/html/app/controllers/ControllerBase.php
42/var/www/html/app/models/Chord.php
43/var/www/html/cache/metadata/map-chord.php
44/var/www/html/cache/metadata/meta-chord-chord.php
45/var/www/html/cache/_var_www_html_app_views_index_notfound404.volt.php
46/var/www/html/cache/_var_www_html_app_views_layouts_index.volt.php
47/var/www/html/cache/_var_www_html_app_views_components_header.volt.php
48/var/www/html/cache/_var_www_html_app_views_components_search.volt.php
49/var/www/html/app/models/Artist.php
50/var/www/html/cache/metadata/map-artist.php
51/var/www/html/cache/metadata/meta-artist-artist.php
52/var/www/html/cache/_var_www_html_app_views_components_news-letter.volt.php
53/var/www/html/cache/_var_www_html_app_views_index.volt.php
54/var/www/html/cache/_var_www_html_app_views_index_showartist.volt.php
55/var/www/html/cache/_var_www_html_app_views_components_left-sidebar.volt.php
Memory
Usage2097152