XF 2.2 Help: Update Worked on Test Site but Live Site Now Not Visible

Sean Engle

Member
I need some assistance/input from anyone reading this.

Yesterday I did the date to version 2.2.0 from 2.1.11 on our Test Site without any issue whatsoever. Encouraged, I just ran it against the Live Site and it completed successfully but is now not showing any graphics at all (below)..... I am in full freakout - anyone?

Thanks,
//sse

1601842259957.webp
 
Ok - before I do that - the update is saying that I outdated templates. But without the graphics I am having issue determining where I update the templates - just the 'merge'?

1601843470355.webp
 
Did automerge and it ran. There was one template that said it would need to be manually merged, so I hit merge and it's still not readable, with this at the bottom of the page:

Merge template changes: thread_view​

  1. <xf:title page="{$page}">{{ prefix('thread', $thread, 'escaped') }}{$thread.title}</xf:title>
    <xf:h1>{{ prefix('thread', $thread) }}{$thread.title}</xf:h1>
  2. <xf:if is="!$thread.isSearchEngineIndexable()">
    <xf:head option="metaNoindex"><meta name="robots" content="noindex" /></xf:head>
    </xf:if>
  3. <xf:description meta="false">
    <ul class="listInline listInline--bullet">
    <li>
    <xf:fa icon="fa-user" title="{{ phrase('thread_starter')|for_attr }}" />
    <span class="u-srOnly">{{ phrase('thread_starter') }}</span>

    <xf:username user="{$thread.User}" defaultname="{$thread.username}" class="u-concealed" />
    </li>
    <li>
    <xf:fa icon="fa-clock" title="{{ phrase('start_date')|for_attr }}" />
    <span class="u-srOnly">{{ phrase('start_date') }}</span>

    <a href="{{ link('threads', $thread) }}" class="u-concealed"><xf:date time="{$thread.post_date}" /></a>
    </li>
    <xf:if is="$xf.options.enableTagging AND ($thread.canEditTags() OR $thread.tags)">
    <li>
    <xf:macro template="tag_macros" name="list"
    arg-tags="{$thread.tags}"
    arg-tagList="tagList--thread-{$thread.thread_id}"
    arg-editLink="{{ $thread.canEditTags() ? link('threads/tags', $thread) : '' }}" />
    </li>
    </xf:if>
    </ul>
    </xf:description>

    <xf:set var="$fpSnippet" value="{{ snippet($firstPost.message, 0, {'stripBbCode': true}) }}" />

    <xf:macro template="metadata_macros" name="metadata"
    arg-description="{$fpSnippet}"
    arg-shareUrl="{{ link('canonical:threads', $thread) }}"
    arg-canonicalUrl="{{ link('canonical:threads', $thread, {'page': $page}) }}" />

    <xf:page option="ldJsonHtml">
  4. <xf:extension name="structured_data_extra_params" value="{{ [] }}" />
    <xf:extension name="structured_data">
    <xf:set var="$ldJson"
    value="{{ $thread.getLdStructuredData($firstPost, $page, extension_value('structured_data_extra_params')) }}"
    />
    <xf:if is="$ldJson">
    <script type="application/ld+json">
    {$ldJson|json(true)|raw}
    </script>
    </xf:if>
    </xf:extension>
  5. </xf:page>
  6. <xf:extension name="content_top"></xf:extension>
  7. <!--[XF:content_top]-->

    <xf:if is="$pendingApproval">
    <div class="blockMessage blockMessage--important">{{ phrase('content_submitted_displayed_pending_approval') }}</div>
    </xf:if>
  8. <xf:if is="$thread.prefix_id">
    <xf:if contentcheck="true">
    <div class="blockMessage blockMessage--alt blockMessage--small blockMessage--close">
    <xf:contentcheck>{{ prefix_description('thread', $thread.prefix_id) }}</xf:contentcheck>
    </div>
    </xf:if>
    </xf:if>
  9. <xf:macro template="forum_macros" name="forum_page_options" arg-forum="{$forum}" arg-thread="{$thread}" />

    <xf:breadcrumb source="$forum.getBreadcrumbs()" />

    <xf:if is="$canInlineMod OR $thread.canUseInlineModeration()">
    <xf:js src="xf/inline_mod.js" min="1" />
    </xf:if>
  10. <xf:extension name="above_messages"></xf:extension>
  11. <xf:ad position="thread_view_above_messages" arg-thread="{$thread}" />
  12. <xf:widgetpos id="thread_view_above_messages" context-thread="{$thread}" />
  13. <xf:set var="$threadActionsHtml">
    <xf:extension name="thread_actions">
  14. <xf:if contentcheck="true">
    <div class="block-outer-opposite">
    <div class="buttonGroup">
    <xf:contentcheck>
  15. <xf:extension name="thread_action_buttons">
    <xf:if is="$canInlineMod">
    <xf:macro template="inline_mod_macros" name="button" />
    </xf:if>
    <xf:if is="$thread.discussion_state == 'deleted' AND $thread.canUndelete()">
    <xf:button href="{{ link('threads/undelete', $thread) }}" class="button--link" overlay="true">
    {{ phrase('undelete') }}
    </xf:button>
    </xf:if>
    <xf:if is="$thread.canApproveUnapprove() AND $thread.discussion_state == 'moderated'">
    <xf:button href="{{ link('threads/approve', $thread) }}" class="button--link" overlay="true">
    {{ phrase('approve') }}
    </xf:button>
    </xf:if>
    <xf:if is="$xf.visitor.user_id AND $thread.isUnread()">
    <xf:button href="{{ ($firstUnread AND $isSimpleDateDisplay) ? ('#post-' . $firstUnread.post_id) : link('threads/unread', $thread, {'new': 1}) }}"
    class="button--link"
    data-xf-click="scroll-to"
    data-silent="true">
    {{ phrase('jump_to_new') }}
    </xf:button>
    </xf:if>
    <xf:if is="$thread.canWatch()">
    <xf:button href="{{ link('threads/watch', $thread) }}" class="button--link"
    data-xf-click="switch-overlay"
    data-sk-watch="{{ phrase('watch') }}"
    data-sk-unwatch="{{ phrase('unwatch') }}">
    <xf:if is="{$thread.Watch.{$xf.visitor.user_id}}">
    {{ phrase('unwatch') }}
    <xf:else />
    {{ phrase('watch') }}
    </xf:if>
    </xf:button>
    </xf:if>
  16. Deleted
  17. <xf:if contentcheck="true">
    <div class="buttonGroup-buttonWrapper">
    <xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true" title="{{ phrase('more_options') }}">&#8226;&#8226;&#8226;</xf:button>
    <div class="menu" data-menu="menu" aria-hidden="true">
    <div class="menu-content">
    <h4 class="menu-header">{{ phrase('more_options') }}</h4>
    <xf:contentcheck>
    <!--[XF:thread_tools_menu:top]-->
    <xf:if is="$thread.canEdit()">
    <a href="{{ link('threads/edit', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('edit_thread') }}</a>
    </xf:if>
    <xf:if is="$thread.canChangeType() AND count($creatableThreadTypes) > 1">
    <a href="{{ link('threads/change-type', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('change_thread_type') }}</a>
    </xf:if>
    <xf:if is="$thread.canLockUnlock()">
    <a href="{{ link('threads/quick-close', $thread) }}"
    class="menu-linkRow"
    data-xf-click="switch"
    data-menu-closer="true">
    ↑ Resolve using parent version Resolve using both Resolve using custom version ↓

    <xf:if is="$thread.canReply()">
    <xf:button href="{{ link('threads/reply', $thread) }}" data-xf-click="overlay" class="button--link" icon="write">{{ phrase('reply') }}</xf:button>
    </xf:if>
    <xf:button class="button--link menuTrigger" data-xf-click="menu" aria-expanded="false" aria-haspopup="true" title="{{ phrase('more_options') }}">&#8226;&#8226;&#8226;</xf:button>

    <div class="menu" data-menu="menu" aria-hidden="true">
    <div class="menu-content">
    <h4 class="menu-header">{{ phrase('more_options') }}</h4>
    <xf:contentcheck>
    <!--[XF:thread_tools_menu:top]-->
    <xf:if is="$thread.canEdit()">
    <a href="{{ link('threads/edit', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('edit_thread') }}</a>
    </xf:if>
    <xf:if is="$thread.canLockUnlock()">
    <a href="{{ link('threads/quick-close', $thread) }}"
    class="menu-linkRow"
    data-xf-click="switch"
    data-menu-closer="true">
  18. <xf:if is="$thread.discussion_open">
    {{ phrase('lock_thread') }}
    <xf:else />
    {{ phrase('unlock_thread') }}
    </xf:if>
    </a>
    </xf:if>
    <xf:if is="$thread.canStickUnstick()">
    <a href="{{ link('threads/quick-stick', $thread) }}"
    class="menu-linkRow"
    data-xf-click="switch"
    data-menu-closer="true">
  19. <xf:if is="$thread.sticky">
    {{ phrase('unstick_thread') }}
    <xf:else />
    {{ phrase('stick_thread') }}
    </xf:if>
    </a>
    </xf:if>
    <xf:if is="$thread.canCreatePoll()">
    <a href="{{ link('threads/poll/create', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('create_poll') }}</a>
    </xf:if>
    <xf:if is="$thread.canDelete('soft')">
    <a href="{{ link('threads/delete', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('delete_thread') }}</a>
    </xf:if>
    <xf:if is="$thread.canMove()">
    <a href="{{ link('threads/move', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('move_thread') }}</a>
    </xf:if>
    <xf:if is="$thread.canReplyBan()">
    <a href="{{ link('threads/reply-bans', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('manage_reply_bans') }}</a>
    </xf:if>
    <xf:if is="$thread.canViewModeratorLogs()">
    <a href="{{ link('threads/moderator-actions', $thread) }}" data-xf-click="overlay" class="menu-linkRow">{{ phrase('moderator_actions') }}</a>
    </xf:if>
    <!--[XF:thread_tools_menu:before_footer]-->
    <xf:if is="$thread.canUseInlineModeration()">
    <div class="menu-footer"
    data-xf-init="inline-mod"
    data-type="thread"
    data-href="{{ link('inline-mod') }}"
    data-toggle=".js-threadInlineModToggle">
    <xf:checkbox>
    <xf:option class="js-threadInlineModToggle" value="{$thread.thread_id}">{{ phrase('select_for_moderation') }}</xf:option>
    </xf:checkbox>
    </div>
    </xf:if>
    <!--[XF:thread_tools_menu:bottom]-->
    </xf:contentcheck>
    </div>
  20. </div>
    </div>
  21. </xf:if>
    </xf:extension>
  22. </xf:contentcheck>
    </div>
    </div>
    </xf:if>
  23. </xf:extension>
    </xf:set>
  24. <xf:set var="$postSortFilterHtml">
    <xf:extension name="post_sort_filter">
    <xf:if is="($posts is not empty OR $filters)">
    <xf:if contentcheck="true">
    <div class="tabs tabs--standalone tabs--standalone--small tabs--standalone--inline">
  25. <xf:contentcheck>
  26. <xf:if is="$availableSorts AND count($availableSorts) > 1">
    <xf:foreach loop="$availableSorts" key="$sortKey" value="$null">
    <a href="{{ link('threads', $thread, $pageNavFilters|replace({'order': $sortKey == $defaultOrder ? null : $sortKey})) }}"
    class="tabs-tab {{ $sortKey == $effectiveOrder ? 'is-active' : '' }}">
    {{ phrase_dynamic('thread_sort.' . $sortKey) }}
    </a>
    </xf:foreach>
    </xf:if>
    <xf:extension name="post_sort_filter_end"></xf:extension>
  27. </xf:contentcheck>
  28. </div>
    </xf:if>
  29. </xf:if>
  30. </xf:extension>
    </xf:set>
  31. <xf:if is="$isFirstPostPinned">
    <xf:extension name="pinned_block_before"></xf:extension>

    <xf:extension name="pinned_block_classes" value="" />
    <div class="block block--messages {{ extension_value('pinned_block_classes') }}"
    data-xf-init="lightbox{{ $xf.options.selectQuotable ? ' select-to-quote' : '' }}"
    data-message-selector=".js-post"
    data-lb-id="thread-{$thread.thread_id}">
    <xf:extension name="pinned_outer_before">
    <xf:macro name="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer" />

    <div class="block-outer"><xf:trim>
    {$threadActionsHtml}
    </xf:trim></div>

    <xf:macro name="thread_custom_fields_status"
    arg-thread="{$thread}"
    arg-forum="{$forum}"
    arg-wrapperClass="block-outer" />
    </xf:extension>

    <div class="block-container">
    <div class="block-body">
    <xf:extension name="pinned_body">
    <xf:macro name="{{ $templateOverrides.pinned_first_post_macro ?: 'post_macros::post' }}"
    arg-post="{$pinnedPost}"
    arg-thread="{$thread}"
    arg-highlightedPosts="{$highlightedPosts}"
    args="{$templateOverrides.pinned_first_post_macro_args}" />
    </xf:extension>
    </div>
    </div>

    <xf:extension name="pinned_outer_after"></xf:extension>
    </div>
    </xf:if>

    <xf:extension name="above_messages_below_pinned"></xf:extension>

    <xf:extension name="message_block_classes" value="block--messages" />
    <div class="block {{ extension_value('message_block_classes') }}" data-xf-init="{{ $canInlineMod ? 'inline-mod' : '' }}" data-type="post" data-href="{{ link('inline-mod') }}" data-search-target="*">

    <span class="u-anchorTarget" id="posts"></span>

    <xf:if is="!$isFirstPostPinned">
    <xf:macro name="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer" />
    </xf:if>

    <div class="block-outer"><xf:extension name="messages_block_outer"><xf:trim>
    <xf:pagenav
    page="{$page}" perpage="{$perPage}" total="{$totalPosts}"
    link="threads" data="{$thread}" params="{$pageNavFilters}" hash="{$pageNavHash}"
    wrapperclass="block-outer-main" />

    <xf:if is="!$isFirstPostPinned">
    {$threadActionsHtml}
    </xf:if>

    <xf:if contentcheck="true">
    <div class="block-outer-opposite">
    <xf:contentcheck>{$postSortFilterHtml}</xf:contentcheck>
    </div>
    </xf:if>
    </xf:trim></xf:extension></div>

    <xf:extension name="messages_block_outer_secondary"></xf:extension>

    <xf:if is="!$isFirstPostPinned">
    <xf:macro name="thread_custom_fields_status"
    arg-thread="{$thread}"
    arg-forum="{$forum}"
    arg-wrapperClass="block-outer" />
    </xf:if>
  32. <div class="block-container lbContainer"
    data-xf-init="lightbox{{ $xf.options.selectQuotable ? ' select-to-quote' : '' }}"
    data-message-selector=".js-post"
    data-lb-id="thread-{$thread.thread_id}"
    data-lb-universal="{$xf.options.lightBoxUniversal}">

    <div class="block-body js-replyNewMessageContainer">
  33. <xf:if is="$posts is not empty">
    <xf:foreach loop="$posts" value="$post">

    <xf:extension name="messages_block_body_before_post"></xf:extension>

    <xf:if is="$post.message_state == 'deleted'">
    <xf:macro name="{{ $templateOverrides.post_deleted_macro ?: 'post_macros::post_deleted' }}"
    arg-post="{$post}"
    arg-thread="{$thread}"
    args="{$templateOverrides.post_deleted_macro_args}" />
    <xf:else />
    <xf:macro name="{{ $templateOverrides.post_macro ?: 'post_macros::post' }}"
    arg-post="{$post}"
    arg-thread="{$thread}"
    arg-highlightedPosts="{$highlightedPosts}"
    args="{$templateOverrides.post_macro_args}" />
    </xf:if>

    <xf:extension name="messages_block_body_after_post"></xf:extension>

    </xf:foreach>
    <xf:else />
    <xf:if is="$filters">
    <div class="message">
    <div class="message-inner">
    <div class="message-cell">
    {{ phrase('there_no_posts_matching_your_filters') }}
    </div>
    </div>
    </div>
  34. </xf:if>
  35. </xf:if>
  36. </div>
    </div>

    <xf:if contentcheck="true">
    <div class="block-outer block-outer--after">
    <xf:contentcheck>
    <xf:pagenav
  37. page="{$page}" perpage="{$perPage}" total="{$totalPosts}"
    link="threads" data="{$thread}" params="{$pageNavFilters}" hash="{$pageNavHash}"
  38. wrapperclass="block-outer-main" />
  39. <xf:showignored wrapperclass="block-outer-opposite" />
  40. <xf:if is="
    !$thread.canReply()
    AND !$thread.canReplyPreReg()
    AND $thread.discussion_state == 'visible'
    AND $thread.discussion_open
    ">
  41. <div class="block-outer-opposite">
    <xf:if is="$xf.visitor.user_id">
    <span class="button button--wrap is-disabled">
    {{ phrase('no_permission_to_reply') }}
    <!-- this is not interactive so shouldn't be a button element -->
    </span>
    <xf:else />
    <xf:button href="{{ link('login') }}" class="button--link" overlay="true">
    {{ phrase('log_in_or_register_to_reply') }}
    </xf:button>
    </xf:if>
    </div>
    </xf:if>
    </xf:contentcheck>
    </div>
    </xf:if>

    <xf:macro name="thread_status" arg-thread="{$thread}" arg-wrapperClass="block-outer block-outer--after" />
    </div>

    <xf:ad position="thread_view_below_messages" arg-thread="{$thread}" />
  42. <xf:extension name="below_messages"></xf:extension>
    <xf:widgetpos id="thread_view_below_messages" context-thread="{$thread}" />
  43. <xf:set var="$isPreRegReply" value="{{ $thread.canReplyPreReg() }}" />
    <xf:if is="$thread.canReply() OR $isPreRegReply">
  44. <xf:form action="{{ link('threads/add-reply', $thread) }}"
    ajax="true"
    draft="{{ link('threads/draft', $thread) }}"
    class="block js-quickReply"
  45. data-xf-init="attachment-manager quick-reply{{ ($xf.visitor.isShownCaptcha() AND !$isPreRegReply) ? ' guest-captcha' : '' }}"
    data-message-container="div[data-type='post'] .js-replyNewMessageContainer">

  46. <xf:js src="xf/message.js" min="1" />
  47. Deleted

  48. <div class="block-container">
    <div class="block-body">
    <xf:macro template="quick_reply_macros" name="body"
    arg-message="{$thread.draft_reply.message}"
    arg-attachmentData="{$attachmentData}"
    arg-forceHash="{$thread.draft_reply.attachment_hash}"
    arg-messageSelector=".js-post"
    arg-multiQuoteHref="{{ link('threads/multi-quote', $thread) }}"
    arg-multiQuoteStorageKey="multiQuoteThread"
    arg-lastDate="{$lastPost.post_date}"
  49. arg-lastKnownDate="{$thread.last_post_date}"
    arg-loadExtra="{$isSimpleDateDisplay}"
    arg-showGuestControls="{{ !$isPreRegReply }}"
    arg-previewUrl="{{ link('threads/reply-preview', $thread) }}"/>
  50. </div>
    </div>
    </xf:form>
    </xf:if>
  51. <xf:widgetpos id="thread_view_below_quick_reply" context-thread="{$thread}" />
    <xf:extension name="below_quick_reply"></xf:extension>
  52. <div class="blockMessage blockMessage--none">
    <xf:macro template="share_page_macros" name="buttons" arg-iconic="{{ true }}" arg-label="{{ phrase('share:') }}" />
    </div>
  53. <xf:extension name="below_share"></xf:extension>
  54. <xf:macro name="thread_status" arg-thread="!" arg-wrapperClass="">
    <xf:if contentcheck="true">
    <div class="{$wrapperClass}">
    <dl class="blockStatus">
    <dt>{{ phrase('status') }}</dt>
    <xf:contentcheck>
    <xf:if is="$thread.discussion_state == 'deleted'">
    <dd class="blockStatus-message blockStatus-message--deleted">
    <xf:macro template="deletion_macros" name="notice" arg-log="{$thread.DeletionLog}" />
    </dd>
    <xf:elseif is="$thread.discussion_state == 'moderated'" />
    <dd class="blockStatus-message blockStatus-message--moderated">
    {{ phrase('awaiting_approval_before_being_displayed_publicly') }}
    </dd>
    </xf:if>
    <xf:if is="!$thread.discussion_open">
    <dd class="blockStatus-message blockStatus-message--locked">
    {{ phrase('not_open_for_further_replies') }}
    </dd>
    </xf:if>
    </xf:contentcheck>
    </dl>
    </div>
    </xf:if>
  55. </xf:macro> <xf:macro name="thread_custom_fields_status" arg-thread="!" arg-forum="!" arg-wrapperClass=""> <div class="{$wrapperClass} js-threadStatusField"><xf:trim> <xf:if contentcheck="true"> <div class="blockStatus blockStatus--info"> <xf:contentcheck> <xf:macro template="custom_fields_macros" name="custom_fields_view" arg-type="threads" arg-group="thread_status" arg-onlyInclude="{$forum.field_cache}" arg-set="{$thread.custom_fields}" arg-wrapperClass="blockStatus-message" /> </xf:contentcheck> </div> </xf:if> </xf:trim></div>
  56. </xf:macro>

    <xf:widgetpos id="thread_view_sidebar" context-thread="{$thread}" position="sidebar" />
You may click on an update to edit it.
 
Further...

There is a notice of server error log - so I looked at that and this is what is on the first of six pages of server errors:

Server error log
Clear
Class 'Less_Tree_Url' not found
3 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
3 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_Url' not found
3 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
3 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_Url' not found
3 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
3 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_Url' not found
5 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
5 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_Url' not found
6 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
6 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_Url' not found
6 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
6 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_Url' not found
7 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
7 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_Url' not found
7 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
7 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_UnitConversions' not found
8 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Class 'Less_Tree_Url' not found
8 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_Url' not found
8 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Parser.php:2712
Class 'Less_Tree_UnitConversions' not found
8 minutes ago
src/vendor/oyejorge/less.php/lib/Less/Tree/Unit.php:85
Showing 20 of 119 items
1
 
So I'm going through the server log and it's calling out classes which are not found and the path provided shows that the file is in fact there (below). I was thinking perhaps I should run through the upgrade sequence again, but I am not sure and don't want to possibly damage things more.....

I really need some assistance on this....please....anyone.....

1601844968134.png
 
I went back to the Server Log and looked at the first entry for

..src/vendor/oyejorge/less.php/lib/Less/parser.php

as it said this file was not found. The file was there, so I uploaded a new copy of it, overwriting the old one.

Error Log says it's still not found - attached is the more detailed failure for it.
 

Attachments

I would restore the previous version and try again. Looks like something went screwy.
Yeah, I know. Issue is that I don't have a BU of the entire file structure - just those data points (attachments, etc) that I figured I might be at risk of losing (that, and the test update against the test company worked perfectly).....
 
Can you download a fresh set of files from the client area and put your attachtments etc into to the package?
You mean a clean install, then drop in the attachments, etc? I guess so - my thought at this moment is to restore the db to what it was before the update, then re-upload the update files, overwriting the old ones -- and do so in BINARY mode rather than AUTO which is what my FTP uploader was set to.... I'm suspecting some of the uploaded files may be been corrupted ... the only thing I can think of at the moment...
 
Yes, try what you suggested. You could try just reuploading the files first?
Yeah - better suggestion, thanks. I'll re-upload the entire update package via binary and see what that gets me. If nothing, then I'll restore the db to the pre-update version and see if I can re-run the update.
 
  • Like
Reactions: Lee
Top Bottom