Skip to content

Commit

Permalink
File system safe slugs need to be created from the query vars.
Browse files Browse the repository at this point in the history
Incorrectly using self to call a method.
Add missing phpDoc.

gh-218
  • Loading branch information
shazahm1 committed Apr 16, 2014
1 parent ee7c22d commit daab2b6
Showing 1 changed file with 60 additions and 20 deletions.
80 changes: 60 additions & 20 deletions includes/template/class.template.php
Expand Up @@ -584,71 +584,83 @@ private function fileNames( $base, $name = NULL, $slug = NULL, $ext = 'php' ) {

$term = $instance->term->getTermBy( 'id', $categoryID, 'category' );

$files[] = self::fileName( $base, 'category', $term->slug, $ext );
$files[] = $this->fileName( $base, 'category', $term->slug, $ext );
}

$files[] = self::fileName( $base, 'category', NULL, $ext );
$files[] = $this->fileName( $base, 'category', NULL, $ext );
// var_dump( $files );
}

if ( get_query_var( 'cn-cat-slug' ) ) {

$files[] = self::fileName( $base, 'category', get_query_var( 'cn-cat-slug'), $ext );
$files[] = self::fileName( $base, 'category', NULL, $ext );
$files[] = $this->fileName( $base, 'category', get_query_var( 'cn-cat-slug'), $ext );
$files[] = $this->fileName( $base, 'category', NULL, $ext );
// var_dump( $files );
}

if ( get_query_var( 'cn-country' ) ) {

$files[] = self::fileName( $base, 'country', urldecode( get_query_var( 'cn-country' ) ), $ext );
$files[] = self::fileName( $base, 'country', NULL, $ext );
$country = $this->queryVarSlug( get_query_var( 'cn-country' ) );

$files[] = $this->fileName( $base, 'country', $country, $ext );
$files[] = $this->fileName( $base, 'country', NULL, $ext );
// var_dump( $files );
}

if ( get_query_var( 'cn-region' ) ) {

$files[] = self::fileName( $base, 'region', urldecode( get_query_var( 'cn-region' ) ), $ext );
$files[] = self::fileName( $base, 'region', NULL, $ext );
$region = $this->queryVarSlug( get_query_var( 'cn-region' ) );

$files[] = $this->fileName( $base, 'region', $region, $ext );
$files[] = $this->fileName( $base, 'region', NULL, $ext );
// var_dump( $files );
}

if ( get_query_var( 'cn-postal-code' ) ) {

$files[] = self::fileName( $base, 'postal-code', urldecode( get_query_var( 'cn-postal-code' ) ), $ext );
$files[] = self::fileName( $base, 'postal-code', NULL, $ext );
$zipcode = $this->queryVarSlug( get_query_var( 'cn-postal-code' ) );

$files[] = $this->fileName( $base, 'postal-code', $zipcode, $ext );
$files[] = $this->fileName( $base, 'postal-code', NULL, $ext );
// var_dump( $files );
}

if ( get_query_var( 'cn-locality' ) ) {

$files[] = self::fileName( $base, 'locality', urldecode( get_query_var( 'cn-locality' ) ), $ext );
$files[] = self::fileName( $base, 'locality', NULL, $ext );
$locality = $this->queryVarSlug( get_query_var( 'cn-locality' ) );

$files[] = $this->fileName( $base, 'locality', $locality, $ext );
$files[] = $this->fileName( $base, 'locality', NULL, $ext );
// var_dump( $files );
}

if ( get_query_var( 'cn-organization' ) ) {

$files[] = self::fileName( $base, 'organization', urldecode( get_query_var( 'cn-organization' ) ), $ext );
$files[] = self::fileName( $base, 'organization', NULL, $ext );
$organization = $this->queryVarSlug( get_query_var( 'cn-organization' ) );

$files[] = $this->fileName( $base, 'organization', $organization, $ext );
$files[] = $this->fileName( $base, 'organization', NULL, $ext );
// var_dump( $files );
}

if ( get_query_var( 'cn-department' ) ) {

$files[] = self::fileName( $base, 'department', urldecode( get_query_var( 'cn-department' ) ), $ext );
$files[] = self::fileName( $base, 'department', NULL, $ext );
$department = $this->queryVarSlug( get_query_var( 'cn-department' ) );

$files[] = $this->fileName( $base, 'department', $department, $ext );
$files[] = $this->fileName( $base, 'department', NULL, $ext );
// var_dump( $files );
}

if ( get_query_var( 'cn-entry-slug' ) ) {

$files[] = self::fileName( $base, NULL, get_query_var( 'cn-entry-slug'), $ext );
$files[] = self::fileName( $base, 'single', NULL, $ext );
$files[] = $this->fileName( $base, NULL, get_query_var( 'cn-entry-slug'), $ext );
$files[] = $this->fileName( $base, 'single', NULL, $ext );
// var_dump( $files );
}

// Add the base as the least priority, since it is required.
$files[] = self::fileName( $base, NULL, NULL, $ext );
$files[] = $this->fileName( $base, NULL, NULL, $ext );

/**
* Allow template choices to be filtered.
Expand All @@ -662,13 +674,41 @@ private function fileNames( $base, $name = NULL, $slug = NULL, $ext = 'php' ) {
return $files;
}

/**
* Create file name from supplied attributes.
*
* @access private
* @since 0.8
* @uses sanitize_file_name()
* @param string $base The base file name.
* @param string $name The template part name.
* @param string $slug The template part slug.
* @param string $ext The template file name extension.
*
* @return string The file name.
*/
private function fileName( $base, $name = NULL, $slug = NULL, $ext = 'php' ) {

$name = array( $base, $name, $slug );
$name = array_filter( $name );
$name = implode( '-', $name ) . '.' . $ext;

return $name;
return strtolower( sanitize_file_name( $name ) );
}

/**
* Takes a supplied query var and creates a file system safe slug.
*
* @access private
* @since 0.8
* @uses sanitize_file_name()
* @param string $queryVar A query var.
*
* @return string A file system safe string.
*/
private function queryVarSlug( $queryVar ) {

return strtolower( sanitize_file_name( urldecode( $queryVar ) ) );
}

/**
Expand Down

0 comments on commit daab2b6

Please sign in to comment.