Skip to content
This repository was archived by the owner on Feb 7, 2023. It is now read-only.

Commit 331679d

Browse files
committed
Merge branch 'diriterator-fix'
2 parents 404320a + 13f5f2c commit 331679d

File tree

3 files changed

+26
-9
lines changed

3 files changed

+26
-9
lines changed

builder/lib/builder.lib.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@ protected function moveStaticFile($fileName,$copy = "") {
692692
protected function ignoreDir($fileName) {
693693
$y = false;
694694
foreach($this->id as $dir) {
695-
$pos = strpos($fileName,"/".$dir."/");
695+
$pos = strpos($fileName,DIRECTORY_SEPARATOR.$dir.DIRECTORY_SEPARATOR);
696696
if ($pos !== false) {
697697
$y = true;
698698
break;

builder/lib/generator.lib.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,14 @@ public function generate() {
3939

4040
// iterate over all of the other files in the source directory and move them if their modified time has changed
4141
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__."/../../source/"), RecursiveIteratorIterator::SELF_FIRST);
42+
43+
// make sure dots are skipped
44+
$objects->setFlags(FilesystemIterator::SKIP_DOTS);
45+
4246
foreach($objects as $name => $object) {
4347

4448
// clean-up the file name and make sure it's not one of the pattern lab files or to be ignored
45-
$fileName = str_replace(__DIR__."/../../source/","",$name);
49+
$fileName = str_replace(__DIR__."/../../source".DIRECTORY_SEPARATOR,"",$name);
4650
if (($fileName[0] != "_") && (!in_array($object->getExtension(),$this->ie)) && (!in_array($object->getFilename(),$this->id))) {
4751

4852
// catch directories that have the ignored dir in their path

builder/lib/watcher.lib.php

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,20 @@ public function watch() {
4545

4646
// iterate over the patterns & related data and regenerate the entire site if they've changed
4747
$patternObjects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__."/../../source/_patterns/"), RecursiveIteratorIterator::SELF_FIRST);
48+
49+
// make sure dots are skipped
50+
$patternObjects->setFlags(FilesystemIterator::SKIP_DOTS);
51+
4852
foreach($patternObjects as $name => $object) {
4953

5054
// clean-up the file name and make sure it's not one of the pattern lab files or to be ignored
51-
$fileName = str_replace(__DIR__."/../../source/_patterns/","",$name);
52-
$fileNameClean = str_replace("/_","/",$fileName);
55+
$fileName = str_replace(__DIR__."/../../source/_patterns".DIRECTORY_SEPARATOR,"",$name);
56+
$fileNameClean = str_replace(DIRECTORY_SEPARATOR."_",DIRECTORY_SEPARATOR,$fileName);
5357

5458
if ($object->isFile() && (($object->getExtension() == "mustache") || ($object->getExtension() == "json"))) {
5559

5660
// make sure this isn't a hidden pattern
57-
$patternParts = explode("/",$fileName);
61+
$patternParts = explode(DIRECTORY_SEPARATOR,$fileName);
5862
$pattern = isset($patternParts[2]) ? $patternParts[2] : $patternParts[1];
5963
if ($pattern[0] != "_") {
6064

@@ -92,7 +96,7 @@ public function watch() {
9296
} elseif (isset($o->patterns->$fileNameClean)) {
9397

9498
// the file was hidden so remove references to the item
95-
$patternParts = explode("/",$fileNameClean);
99+
$patternParts = explode(DIRECTORY_SEPARATOR,$fileNameClean);
96100
$pattern = isset($patternParts[2]) ? $patternParts[2] : $patternParts[1];
97101

98102
unset($o->patterns->$fileNameClean);
@@ -113,7 +117,7 @@ public function watch() {
113117
foreach($cp as $fileName => $mt) {
114118

115119
unset($o->patterns->$fileName);
116-
$patternParts = explode("/",$fileName);
120+
$patternParts = explode(DIRECTORY_SEPARATOR,$fileName);
117121
$pattern = isset($patternParts[2]) ? $patternParts[2] : $patternParts[1];
118122

119123
unset($this->patternPaths[$patternParts[0]][$pattern]);
@@ -125,9 +129,13 @@ public function watch() {
125129

126130
// iterate over the data files and regenerate the entire site if they've changed
127131
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__."/../../source/_data/"), RecursiveIteratorIterator::SELF_FIRST);
132+
133+
// make sure dots are skipped
134+
$objects->setFlags(FilesystemIterator::SKIP_DOTS);
135+
128136
foreach($objects as $name => $object) {
129137

130-
$fileName = str_replace(__DIR__."/../../source/_data/","",$name);
138+
$fileName = str_replace(__DIR__."/../../source/_data".DIRECTORY_SEPARATOR,"",$name);
131139
$mt = $object->getMTime();
132140

133141
if (!isset($o->$fileName)) {
@@ -141,10 +149,14 @@ public function watch() {
141149

142150
// iterate over all of the other files in the source directory and move them if their modified time has changed
143151
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(__DIR__."/../../source/"), RecursiveIteratorIterator::SELF_FIRST);
152+
153+
// make sure dots are skipped
154+
$objects->setFlags(FilesystemIterator::SKIP_DOTS);
155+
144156
foreach($objects as $name => $object) {
145157

146158
// clean-up the file name and make sure it's not one of the pattern lab files or to be ignored
147-
$fileName = str_replace(__DIR__."/../../source/","",$name);
159+
$fileName = str_replace(__DIR__."/../../source".DIRECTORY_SEPARATOR,"",$name);
148160
if (($fileName[0] != "_") && (!in_array($object->getExtension(),$this->ie)) && (!in_array($object->getFilename(),$this->id))) {
149161

150162
// catch directories that have the ignored dir in their path
@@ -199,6 +211,7 @@ public function watch() {
199211
*/
200212
private function updateSite($fileName,$message) {
201213
$this->gatherData();
214+
$this->gatherPatternPaths();
202215
$this->gatherNavItems();
203216
$this->generatePatterns();
204217
$this->generateViewAllPages();

0 commit comments

Comments
 (0)