~xibo-maintainers/xibo/tempel

« back to all changes in this revision

Viewing changes to lib/Widget/Twitter.php

  • Committer: Dan Garner
  • Date: 2018-03-02 17:41:59 UTC
  • mto: This revision was merged to the branch mainline in revision 624.
  • Revision ID: git-v1:23053a27ba16080b5d0077f6affa71b94ae2e969
Initial draft of work to improve widget HTML caching.
xibosignage/xibo#1436

Show diffs side-by-side

added added

removed removed

Lines of Context:
708
708
        return $return;
709
709
    }
710
710
 
711
 
    /**
712
 
     * Get Resource
713
 
     * @param int $displayId
714
 
     * @return mixed
715
 
     */
 
711
    /** @inheritdoc */
716
712
    public function getResource($displayId = 0)
717
713
    {
718
714
        // Make sure we are set up correctly
721
717
            return '';
722
718
        }
723
719
 
724
 
        // Clear all linked media.
725
 
        $this->clearMedia();
726
 
 
727
 
        // Lock the request
728
 
        $this->concurrentRequestLock();
729
 
 
730
720
        $data = [];
731
721
        $isPreview = ($this->getSanitizer()->getCheckbox('preview') == 1);
732
722
 
764
754
 
765
755
        // Return empty string if there are no items to show.
766
756
        if (count($items) == 0) {
767
 
            $this->concurrentRequestRelease();
768
757
            return '';
769
758
        }
770
759
 
847
836
        // Replace the Head Content with our generated javascript
848
837
        $data['javaScript'] = $javaScriptContent;
849
838
 
850
 
        // Update and save widget if we've changed our assignments.
851
 
        if ($this->hasMediaChanged())
852
 
            $this->widget->save(['saveWidgetOptions' => false, 'notify' => false, 'notifyDisplays' => true, 'audit' => false]);
853
 
 
854
 
        $this->concurrentRequestRelease();
855
 
 
856
839
        return $this->renderTemplate($data);
857
840
    }
858
841
 
 
842
    /** @inheritdoc */
859
843
    public function isValid()
860
844
    {
861
845
        // Using the information you have in your module calculate whether it is valid or not.
864
848
        // 2 = Unknown
865
849
        return 1;
866
850
    }
 
851
 
 
852
    /** @inheritdoc */
 
853
    public function getCacheDuration()
 
854
    {
 
855
        $cachePeriod = $this->getSetting('cachePeriod', 3600);
 
856
        $updateInterval = $this->getOption('updateInterval', 60) * 60;
 
857
        return max($updateInterval, $cachePeriod);
 
858
    }
 
859
 
 
860
    /** @inheritdoc */
 
861
    public function getCacheKey($displayId)
 
862
    {
 
863
        if ($this->getOption('tweetDistance', 0) > 0) {
 
864
            // We use the display to fence in the tweets to our location
 
865
            return $this->getWidgetId() . '_' . $displayId;
 
866
        } else {
 
867
            // Non-display specific
 
868
            return $this->getWidgetId();
 
869
        }
 
870
    }
 
871
 
 
872
    /** @inheritdoc */
 
873
    public function getLockKey()
 
874
    {
 
875
        // What is the minimum likely lock we can get to prevent concurrent access - probably search term
 
876
        return $this->getOption('searchTerm');
 
877
    }
867
878
}