Browse Source

Fix coding standards

Dinoweb 14 years ago
parent
commit
8261519e53

+ 4 - 0
lib/Gedmo/Mapping/Annotation/Sluggable.php

@@ -18,5 +18,9 @@ use Doctrine\Common\Annotations\Annotation;
 final class Sluggable extends Annotation
 {
     public $position = 0;
+<<<<<<< HEAD
+=======
+    public $slugField = 'slug';
+>>>>>>> a6dd4fd... Fixed coding standard problems
 }
 

+ 9 - 0
lib/Gedmo/Sluggable/Mapping/Driver/Annotation.php

@@ -105,6 +105,7 @@ class Annotation implements AnnotationDriverInterface
                 if (!$this->isValidField($meta, $field)) {
                     throw new InvalidMappingException("Cannot use field - [{$field}] for slug storage, type is not valid and must be 'string' in class - {$meta->name}");
                 }
+<<<<<<< HEAD
                 if (isset($config['slug'])) {
                     throw new InvalidMappingException("There cannot be two slug fields: [{$slugField}] and [{$config['slug']}], in class - {$meta->name}.");
                 }
@@ -114,6 +115,14 @@ class Annotation implements AnnotationDriverInterface
                 $config['updatable'] = $slug->updatable;
                 $config['unique'] = $slug->unique;
                 $config['separator'] = $slug->separator;
+=======
+                
+                $config['slugFields'][$field]['slug'] = $field;
+                $config['slugFields'][$field]['style'] = $slug->style;
+                $config['slugFields'][$field]['updatable'] = $slug->updatable;
+                $config['slugFields'][$field]['unique'] = $slug->unique;
+                $config['slugFields'][$field]['separator'] = $slug->separator;
+>>>>>>> a6dd4fd... Fixed coding standard problems
             }
         }
     }

+ 9 - 0
lib/Gedmo/Sluggable/Mapping/Driver/Xml.php

@@ -65,7 +65,11 @@ class Xml extends BaseXml
                     if (!$this->isValidField($meta, $field)) {
                         throw new InvalidMappingException("Cannot slug field - [{$field}] type is not valid and must be 'string' in class - {$meta->name}");
                     }
+<<<<<<< HEAD
                     $options = array('position' => false, 'field' => $field);
+=======
+                    $options = array('position'=>false, 'field'=>$field, 'slugField'=>'slug');
+>>>>>>> a6dd4fd... Fixed coding standard problems
                     if ($this->_isAttributeSet($mapping->sluggable, 'position')) {
                         $options['position'] =  (int)$this->_getAttribute($mapping->sluggable, 'position');
                     }
@@ -81,8 +85,13 @@ class Xml extends BaseXml
                     if (isset($config['slug'])) {
                         throw new InvalidMappingException("There cannot be two slug fields: [{$slug}] and [{$config['slug']}], in class - {$meta->name}.");
                     }
+<<<<<<< HEAD
                     $config['slug'] = $field;
                     $config['style'] = $this->_isAttributeSet($slug, 'style') ?
+=======
+                    $config['slugFields'][$field]['slug'] = $field;
+                    $config['slugFields'][$field]['style'] = $this->_isAttributeSet($slug, 'style') ?
+>>>>>>> a6dd4fd... Fixed coding standard problems
                         $this->_getAttribute($slug, 'style') : 'default';
 
                     $config['updatable'] = $this->_isAttributeSet($slug, 'updatable') ?

+ 5 - 0
lib/Gedmo/Sluggable/Mapping/Driver/Yaml.php

@@ -63,7 +63,12 @@ class Yaml extends File implements Driver
                             throw new InvalidMappingException("Cannot slug field - [{$field}] type is not valid and must be 'string' in class - {$meta->name}");
                         }
                         $sluggable = $fieldMapping['gedmo'][array_search('sluggable', $fieldMapping['gedmo'])];
+<<<<<<< HEAD
                         $config['fields'][] = array('field' => $field, 'position' => $sluggable['position']);
+=======
+                        $slugField = isset($sluggable['slugField'])? $sluggable['slugField']:'slug';
+                        $config['fields'][$slugField][] = array('field' => $field, 'position' => $sluggable['position'], 'slugField' => $slugField);
+>>>>>>> a6dd4fd... Fixed coding standard problems
                     } elseif (isset($fieldMapping['gedmo']['slug']) || in_array('slug', $fieldMapping['gedmo'])) {
                         $slug = $fieldMapping['gedmo']['slug'];
                         if (!$this->isValidField($meta, $field)) {

+ 26 - 0
lib/Gedmo/Sluggable/SluggableListener.php

@@ -116,8 +116,15 @@ class SluggableListener extends MappedEventSubscriber
             if ($config = $this->getConfiguration($om, $meta->name)) {
                 // generate first to exclude this object from similar persisted slugs result
                 $this->generateSlug($ea, $object);
+<<<<<<< HEAD
                 $slug = $meta->getReflectionProperty($config['slug'])->getValue($object);
                 $this->persistedSlugs[$config['useObjectClass']][] = $slug;
+=======
+                foreach ($config['fields'] as $slugField=>$fieldsForSlugField) {
+                    $slug = $meta->getReflectionProperty($slugField)->getValue($object);
+                    $this->persistedSlugs[$config['useObjectClass']][] = $slug;
+                }
+>>>>>>> a6dd4fd... Fixed coding standard problems
             }
         }
         // we use onFlush and not preUpdate event to let other
@@ -125,8 +132,15 @@ class SluggableListener extends MappedEventSubscriber
         foreach ($ea->getScheduledObjectUpdates($uow) as $object) {
             $meta = $om->getClassMetadata(get_class($object));
             if ($config = $this->getConfiguration($om, $meta->name)) {
+<<<<<<< HEAD
                 if ($config['updatable']) {
                     $this->generateSlug($ea, $object);
+=======
+                foreach ($config['slugFields'] as $slugField) {
+                    if ($slugField['updatable']) {
+                        $this->generateSlug($ea, $object);
+                    }
+>>>>>>> a6dd4fd... Fixed coding standard problems
                 }
             }
         }
@@ -156,6 +170,10 @@ class SluggableListener extends MappedEventSubscriber
         $uow = $om->getUnitOfWork();
         $changeSet = $ea->getObjectChangeSet($uow, $object);
         $config = $this->getConfiguration($om, $meta->name);
+<<<<<<< HEAD
+=======
+        foreach ($config['fields'] as $slugField=>$fieldsForSlugField) {
+>>>>>>> a6dd4fd... Fixed coding standard problems
 
         // sort sluggable fields by position
         $fields = $config['fields'];
@@ -234,7 +252,15 @@ class SluggableListener extends MappedEventSubscriber
     {
         $om = $ea->getObjectManager();
         $meta = $om->getClassMetadata(get_class($object));
+<<<<<<< HEAD
         $config = $this->getConfiguration($om, $meta->name);
+=======
+        if (count ($config) == 0)
+        {
+            $config = $this->getConfiguration($om, $meta->name);
+        }
+        
+>>>>>>> a6dd4fd... Fixed coding standard problems
 
         // search for similar slug
         $result = $ea->getSimilarSlugs($object, $meta, $config, $preferedSlug);