Добавление шрифтов в плагин

Здравствуйте.

Пишу плагин, который работает с Font Awesome. В его css стилях прописывается путь к шрифтам в таком виде:

@font-face {
  font-family: 'FontAwesome';
  src: url('../fonts/fontawesome-webfont.eot?v=4.0.3');
  src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg');
  font-weight: normal;
  font-style: normal;
}


Все бы ничего, но когда css склеивается, то его путь получается templates/cache/.../ и все эти url ссылаются не туда, куда надо. Есть ли возможность, чтобы LS правильно подхватывал шрифты, указанные в css файле плагина?

3 комментария

avatar
не важно, уже нашел. Баг в livestreet 1.0.3.

fix

diff --git a/engine/modules/viewer/Viewer.class.php b/engine/modules/viewer/Viewer.class.php
index cbe5954..1850b96 100644
--- a/engine/modules/viewer/Viewer.class.php
+++ b/engine/modules/viewer/Viewer.class.php
@@ -1112,6 +1112,7 @@ class ModuleViewer extends Module {
                preg_match_all( "/url\((.*?)\)/is",$sContent,$aMatches);
                if(count($aMatches[1])==0) return $sContent;
 
+
                /**
                 * Обрабатываем список файлов
                 */
@@ -1135,7 +1136,14 @@ class ModuleViewer extends Module {
                        /**
                         * Обрабатываем относительный путь
                         */
-                       $sFilePathAbsolute = $this->GetWebPath($this->GetRealpath($sDir.$sFilePathAbsolute));
+      if ( strpos($sFilePathAbsolute, '?') === false ) {
+                         $sFilePathAbsolute = $this->GetWebPath($this->GetRealpath($sDir.$sFilePathAbsolute));
+      } else {
+        $aFilePathParts = explode('?', $sFilePathAbsolute);
+        $sFilePath = $aFilePathParts[0];
+        $sWebPathQuery = $aFilePathParts[1];
+        $sFilePathAbsolute = $this->GetWebPath($this->GetRealpath($sDir.$sFilePath)) . '?' . $sWebPathQuery;
+      }
                        /**
                         * Заменяем относительные пути в файле на абсолютные
                         */
@@ -1457,4 +1465,4 @@ class ModuleViewer extends Module {
                $this->MenuVarAssign();
        }
 }
-?>
\ No newline at end of file
+?>
avatar
сделайте пул реквест на гитхаб github.com/livestreet/livestreet
avatar
Нет времени.
copy/paste мой «fix» в patch.diff
git checkout -b CSSUrlsFix
patch -p1 < patch.diff
git add engine/modules/viewer/Viewer.class.php
git commit -m 'Fixed urls in css url attributes'
git push origin CSSUrlsFix
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.