text:
<ac:macro ac:name="toc"><ac:parameter ac:name="minLevel">2</ac:parameter></ac:macro>

Zend_Form has been accused of violating the principal of separation of concerns, due to the fact that it has Model-related logic (filtering and validation, metadata), as well as View-releated logic (rendering, decorators).

While Form objects may be used to provide validation to domain models, many do not like this linking of concerns, and would prefer the ability to attach validation chains from models to the form in order to provide validation error hinting; at the same time, many others feel that forms as simply collections of elements with no ability to validate makes them basically worthless.

Finally, the decoration system, while powerful and flexible, is also quite difficult for many to learn. Having it coupled to Zend_Form causes some issues, as it basically inverts the decorator principal, and is somewhat misnamed as it primarily acts as a filter chain.

Refactor Form view helpers to accept form/element/group objects

Currently, we use the ViewHelper decorator with most form elements as the first decorator. While this works well, it also complicates the issue when you want to build your markup manually; you are forced to use the ViewHelper decorator if you want to use a view helper to render the element.

One simple way to solve this is to modify the individual form*() view helpers to accept elements (or other Zend_Form objects), then we can simplify things greatly. As an example:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
'size' => 25,
'maxlength' => 140,
'class' => 'form-text',
echo $view->formText($element);

Use PubSub as basis for Decorator Chains

If we use the pubsub's filter() method, we can achieve the same effect as the current decorators. As an example:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
// Assuming zend\form\DecoratorChain extends pubsub\FilterChain, and that
// render() proxies to filter():
$chain = new zend\form\DecoratorChain();
echo $chain->render($element);

We would provide some pre-formulated chains as part of this initiative. This would then entail simply setting the view and passing in the element.

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$chain = new zend\form\decorator\DefinitionListChain;
echo $chain->render($element);

The above promotes re-use of decorator chains with multiple elements, and also re-use of pre-defined chains.

The actual act of rendering would then be removed from Zend_Form itself.

Use PubSub as basis for Filter and Validation Chains

If we use the pubsub's filter() method, we have all the functionality of the current Zend_Filter and Zend_Validate chains. This can allow us to detach chains or attach chains. As such, we would define chains and attach them to the form elements.

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$vChain = new zend\validator\ValidatorChain();
$vChain->subscribe('MinLength', array(3));
$vChain->subscribe('MaxLength', array(20));
$vChain->breakOnFailure(true); // stop validating on first subscriber failure
$fChain = new zend\filter\FilterChain();

This allows us to continue to perform validation and filtering as before, but offloads much of the code and functionality to other, reusable components.

Allow retrieving and setting all element validators and filter chains

In order to achieve full separation, we would need the ability to retrieve these for the entire form for re-use in Models to validate data sets, as well as to pull from Models in order to attach to Forms. In essence, we're talking about an update to Zend_Filter_Input.

The basics would work as follows:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
// Retrieve filter and validator chains for all elements in form
$filterChain = $form->getFilterChain();
// Attach to model:

The object structure would look as follows:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
"foo" => zend\filterchain\Element::__set_state(array(
'filterChain' => zend\filter\FilterChain(array(
'_subscribers => array(
'validatorChain' => zend\filter\ValidatorChain(array(
'_subscribers => array(
array('MinLength', array(3)),
array('MaxLength', array(25)),

and would be used (roughly) as follows:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$value = $chain->get($key);
$chain->set($key, $value);
$elementChain = $chain->getChain($key);

Make the metadata/behavior separation explicit

The various classes in Zend_Form basically contains metadata and behavior. The metadata is typically consumed by decorators in order to determine how to render themselves; the behavior is generally related to validation and/or error message retrieval (which is a related task).

As such, we propose that all Form classes will define a "metadata" property that will contain key/value pairs, and a set of setter/getter methods for the metadata (with specific setters for metadata that requires normalization).

As an example:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
'action' => $url,
'method' => 'post',
'id' => 'registration',
'class' => 'form-text',
'size' => 25,
'maxlength' => 140,

No IDs by default

Currently, the various Zend_Form elements all generate IDs. With modern JS libraries, this is typically unnecessary, and having explicit IDs makes it very difficult to have forms with variable numbers of the same element or group of elements. Removing ID generation would solve a number of UI issues. (Note: IDs could be set manually as metadata; alternately, setName() could be overridden in order to set the ID as well.)

Translation should be moved to the view layer. The View and Decorator chains would receive the Translator object and use it to translate appropriate labels and metadata. As such, the form, its elements, and the individual validator and validator chains would need no such knowledge of this information.

BC Concerns

Since the chains would be separate objects, and the interaction with those chains would no longer be part of the various Form objects, creation of the chains from configuration will no longer be possible.

One way to mitigate this would be to have a "form builder" class that can build the Form objects and all related objects from configuration. Decorators would be one of the exceptions to this, as the Decorator chains would no longer be contained within the various Form objects. As such, a "decorator chain" builder could be useful.

If metadata is moved to an explicit "metadata" container, this may cause problems with existing configuration. A legacy builder class could alleviate this problem, however.

Removal of IDs

Removing IDs may have UI implications. In particular, the Dojo integration relies heavily on the IDs in order to work. As such, this feature may need to be configurable.

Nov 17, 2009

There's one thing that I really would like to see in Zend_Form 2.0, and that is support for a non-indexed array notation in the element names. Example:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
<input type="text" name="credentials[][username]" value="foo" />
<input type="text" name="credentials[][username]" value="bar" />
<input type="text" name="credentials[][username]" value="baz" />

Which would be received on the PHP side as:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
// Using $_POST directly only for demonstration purposes
$_POST['credentials'] = array(
array('username' => 'foo'),
array('username' => 'bar'),
array('username' => 'baz')

This feature would make it easy to support dynamically added fields using JS. Currently such a setup requires creative coding that can easily be avoided when using this notation.

Nov 17, 2009

This is a huge part of the reason behind not requiring IDs – by not requiring unique IDs, this becomes more possible to support.

Nov 20, 2009

That would be so nice. Currently, I am not adding form elements created by JS to Zend_Form.

Support for non indexed array can be a huge help here.

Nov 20, 2009

That would be so nice. Currently, I am not adding form elements created by JS to Zend_Form.

Support for non indexed array can be a huge help here.

Mar 30, 2010

See my Array Notation related <ac:link ac:anchor="comment-21266847"><ac:link-body>comment</ac:link-body></ac:link> down the page.

Nov 17, 2009

I strongly agree with Jurrien; this is a critical feature. Zend_Form is absolutely brilliant but one of the areas it doesn't support well is JS type stuff. I'd love to see some sample/rough code to suggest how multiple elements and dynamically added form elements might be supported in 2.0.

What's the attraction to using chains here (excuse my ignorance) and will they still support features like breakOnFailure? Further, are there any features of Zend_Form 1.0 that won't be supported in the new version?

Nov 17, 2009

I'll get some code examples up in the coming days to illustrate how dynamically added form elements might be supported. While eliminating mandatory IDs helps solve part of the problem, there are additional aspects that need to be addressed.

The reason for using chains is to eliminate coupling between Zend_Validate and Zend_Form. Yes, breakOnFailure is supported – it's a specific use case of the Phly_PubSub's publish functionality (see the publishUntil() method in the Provider class). Furthermore, this functionality is abstracted sufficiently to be useful in a variety of components, making chains trivially simple to create and use – and providing a consistent methodology to do so.

Regarding existing features: I don't see any existing features that won't be supported; there will be features that will need to be done in a different way, but not removed.

Aug 13, 2010

This would be amazing. Than input elements could be cloned to allow for a variable amount of elements. What are the additional aspects that need to be addressed?

Nov 20, 2009

here are my thoughts on a very general refactoring of Zend_Validate, Zend_Filter and such in combination with chains and the separation of technical and domain validation, and more importantly why this is required to make Zend_Form much more powerful.

1. Zend_Validate should be refactored to allow for stateless validations, which would allow to instantiate only one validator per type and could hugely optimize performance. For this Zend_Validate_Result should be introduced that acts as a stack for validations that failed with their respective error messages.

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$result = new Zend_Validate_Result();
$validator = Zend_Validate::factory('MaxLength');
$validator->accepts($value, $options, $result);
if(!$result->isValid()) {

For this we could introduce a new interface Zend_Validate_Stateless and make sure that the factory creates only instances of this type.

2. Zend_Filter should allow stateless filtering also.

3. There should be Aggregates of both Filters and Validators, Zend_Validator_Aggregate and Zend_Filter_Aggregate that are initially subtypes of a new Zend_Filter_Input for their respective type. They define several "value" => filter/validation rules.

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$filterAggregate = new Zend_Filter_Aggregate();
$filterAggregate->addFilter('fieldA', $filter);
$validateInput = new Zend_Filter_Aggregate();
$validateInput->addFilter('fieldA', $intValidator);
$validateDomain->addFilter('fieldA', $domainValidator);

4. There should be methods to merge aggregates into each other.

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$inputFilter = new Zend_Filter_Input();

5. Each kind of Aggregate signals all its respective children chains (be it validator or filter), so Aggregate -> Chain -> Specific Validator/Filter.

6. You can attach aggregates to Zend_Form instances:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[

7. Internally in Zend_Form calls to setValidators setFilters and such would proxy to the attached filtering/validation aggregate, i.e. it must be passed as a dependency to all elements and subforms of a form, they all hold the one instance of the aggregate per Form.

8. If no Input Validator/Filter is set a new one is created, if then one is attached to the Form it should be merged with the existing one. This also applies to cases were different existing forms are stuck to each other (Form <-> Subform).

9. Currently its very hard to move dependencies through the complete Zend_Form structure. Maybe we should go the DOMDocument way and allow to add only elements or subforms that have been created to a factory method on the Zend_Form instance? This would also solve various plugin loader dependency problems.

Stateless allows to cut the number of objects used for filtering and such to a very low number.

Complete Separation between validation, filtering and the form aspect.

New view on input: It always comes in aggregates, there is no value which is standing alone and is being filtered. There are always many different values that need to be validated in sequence or even with dependencies.

Nov 29, 2009

Great suggestions!

I was dreaming for some time of the elements, validators, filters and decorators separation.

Currently there are some forms in my system with about 150 fields on each. Of course, they consist of some subforms. Also these forms use custom view-script decoration. It's hard to maintain and change each element decoration/validation rules. I believe the new approach will make this work easier.

One of the forms may be subform in the other forms. And it's validation rules often change depending on the main form. I think "Aggregate" approach is rather complicated but it would provide easy whole form behavior change.

Dec 16, 2009

I have one suggestion too. Make it possible to handle each option of Zend_Form_Element_Multi as separate object. Or at least make options "unescapable". Making things like radio button list with name and description for each option includes great deal of pain. Use case is transport selection in eshop, where you need to name the option (FedEx), show the price ($5) and also add some limitations for example (only for orders below $5000). It would be great to have sth like:

<ac:macro ac:name="noformat"><ac:plain-text-body><![CDATA[
'viewHelper' => array('optionDecorators' => array('Label', 'Description')),
Dec 16, 2009

I would argue that this is a job for a custom element and/or view helpers, and not the place of ZF to accommodate. ZF should be providing the minimal code that covers the bulk of use cases, while being flexible enough that other use cases can be easily provided by extension or implementing interfaces.

Dec 19, 2009

What about efforts towards making Zend_Form lighter and easier to use?

For starters lets move everything related to rendering out of the Zend_Form class, including managing decorators, which could go in a specialized registry. Then perhaps add a method to the Zend_Form class to assemble a transfer object which can be used for separate rendering, e.g.:

$to = $form->getTransferObject();

$formView->assign('form', $to);

$formView->setScript('foo.phtml'); //proposed method that allows calling of render() without arguments

$this->view->assign('fooForm', $formView); //Zend_View should have a __toString() method which renders the view provided a script has been set.

This still uses Zend_Form for building the spec, validation and filtering, but allows rendering using a completely custom template (without the need for building complex decorator structures).

Dec 19, 2009

This is actually what this page is already proposing. To clarify:

Validator chains would be separate objects, allowing you to have these attached to your model, and then attach them to the form merely for purposes of error reporting and/or value retrieval. This allows you to have a pure validation scheme for your models that is completely independent from the form objects; it also allows you to re-use validators and validation chains between elements easily.

To render, you would pass your form and/or elements to decorator chains, which would be completely separate objects.

In this latter vein – there is absolutely nothing forcing you to use decorators now or in the future. You can always pull information from the elements discretely in order to build your markup (in fact, that's all the decorators are doing). Decorators simply automate this process and help to keep your view scripts more readable.

Dec 19, 2009

I see. I don't think I like the idea of using publish-subscribe for building a decorator chain though. It feels off in semantics, what is the topic they are subscribing to? Wouldn't it be more appropriate to stick with something of a Composite?

While on the topic of composites, I second Benjamin's call for aggregate validators and filters (and add I would think this more appropriate for the current decorators as well).

Something else I'd like to suggest is context-based validation, for example validation of a ZIP. You'd attach validators assigned by the value of a set index in the context and validity would be determined by the validators that matches the value. In the example of a ZIP, you could set "country" as the key, and assign different validator chains for values "US" and "CA", and optionally a default chain used when the value in the context has no specific validators. With 5.3 this becomes even more interesting as you can easily pass a closure instead of a string or regular expression to match.

Of course this is conditional use, thus fundamentally different to "chains".

Dec 19, 2009

Actually, there are two pieces to the Phly_PubSub component I've been using to prototype 2.0 features. In the first, obviously, it's a publish-subscribe system. In the second, it's used as a filter chain (this is similar to how such components are done in other frameworks and event-driven architectures). Phly_PubSub has two approaches to this latter: you can use topics, or you can have a topic-less filter chain. In the case of decorators, they'd most likely be topic-less – though we could potentially allow attaching any and all decorators to a single pubsub provider under topics such as "form", "display-group", "element-text", "element-multi", "element-button", etc, and thus get maximum re-use from a single decorator chain.

I like the idea of conditional branching in chains, but it's really, really difficult to achieve cleanly and still keep performance. I'm still interested in investigating it, however.

Dec 20, 2009

It's partly just semantics, but also I think a more specific data structure would be more appropriate (Golden Hammer?). On a side note I never quite understood why element decorators are labelled as such, it is certainly not a traditional implementation of the Decorator pattern as described in the GoF, for that decorators would have to share a type with elements, defining the interface for render(). I digress.

What I would like to propose for "decorators", filters and validators alike, is using an aggregate chain instead of a list. Every object has a child, like in a Chain of Responsibility (and with break on error it would very much behave like one). Add in a junction type which will be able to hold several chains (this '''would''' use a list) and you have a recipe for a very flexible yet rigid data structure. You can branch to aggregate chains depending on the implementation of the junction which would determine the condition. Performance loss depends on the condition in the concrete junction: for example a simple hashmap lookup should cause no measurable performance loss at all.

Limiting to validators only for a sec, because it has such an obvious usage example, this could look something like this (please pardon the absence of multiplicity):

EDIT: I just noticed there's an aggregate relation missing between ValidatorJunction and ValidatorAbstract. You get the idea.

<ac:image><ri:attachment ri:filename="zend_form.png" /></ac:image>

Usage example using the ZIP example and context value based junction:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$zipElement->setValidator(new ContextJunction(
'US' => new NotEmptyValidator(
new RegexValidator('/^(\dUnknown macro: {5}
\dUnknown macro: {9} \d
-\dUnknown macro: {4}
'CA' => new NotEmptyValidator(
new RegexValidator('/^[a-z]\d[a-z]\s?\d[a-z]\d$/i')
new StringLengthValidator(4)
Dec 27, 2009

How about types of filters on 2.0 ?

I suggest to have actually 3 types of filters (one was proposed for 2.0 but didn't heard much about them).

I tried to explain this on http://framework.zend.com/issues/browse/ZF-8130

We need basically three types of filters on Zend_Form:

rendering filter

pre-validation filter (existing filters)

post-validation filters (proposed for 2.0)

One sample:

a field into the model has the one date stored as timestamp

i get the record from the model

i populate the form with the record data

at rendering the RENDERING FILTER is transforming the date to a localized format: mm/dd//yyyy or so and it displays into the text field the date into this format

user is making the adjustements to the data (including date) and it saves the form

before validation, we are filtering using some NORMAL (current filters of Zend_Form) filters, let's say for StripTags, Trim, aso

validation is checking that the data is into mm/dd//yyyy format

after validation, the NEW FILTERS PROPOSED FOR 2.0 are changing the data back to timestamp, from mm/dd//yyyy format

the data is saved to the model

Dec 31, 2009

The changes proposed actually negate the need for or possibility of rendering filters, as forms would not be responsible for rendering themselves; your decorator chain would take care of this. As one example, the first decorator filter in your chain could simply alter the element value to the appropriate format, and that value would then be decorated. As for post-validation filters, this is really the role of the domain model, not the form. As such, you could very easily simply attach a different filter chain to the form within your model (since filter chains would be separate objects under this proposal).

Dec 31, 2009

Related to rendering filters. How are supposed to be attached filters to decorators ?

Of course, i can create a custom decorator instead of ViewHelper decorator by example and allow as options an option for filter/filter chain. But i think this would be better to be directly into trunk components, and not into an "extra"/own library...

Jan 03, 2010

Reusing the pubsub component for validator/filter chains is a nice idea. However from an usage point of view, a method called "subscribe()" is not intuitive for adding a new filter to an element.

I'd rather have "add()". Certainly for people who don't know their PoEAA backwards, it would be clearer when reading the code.

Regards,

Jan 29, 2010

I agree, just because we use PubSub doesnt mean the methods have to match those in GoF. they should be specialized to the domain, being form rendering.

Jan 29, 2010

I propose a refactoring of the underlying data-structure of Zend_Form, since its missing a concept.

What people always complain about:

1. Its hard to group fields together that have dependencies on each other

2. Its hard to get many fields that represent one value.

3. The decorator chain is to linear for certain use-cases

4. Radio and Checkbox Groups cant be rendered as parts.

5. Its not that easy to render a form inside a html script and place the elements freely.

6. Its annoying to configure decorators (wanting to change something => reconfigure EVERYTHING).

My solution (and i am implementing a prototype).

1. Separate the concept of "Field" and "Fieldset" that are hidden inside the Zend_Form_Element

2. Each Field can have many Elements.

3. Elements implement a very simple interface Zend_Form_Element

4. Decorators implement Zend_Form_Element

5. Each element may have decorators (or not).

6. Each element has 0:n child elements.

7. Each element has 0:n child fields (as a fieldset).

8. Form and Subforms are elements

9. There are Select, Radio and Checkbox Elements where the options are elements themselves. For large select/radio/checkbox sets, there are elements where they are only options. (Performance vs Ability to place elements freely!)

Sounds more complex? But its more simple as "decorators" are not needed anymore by default. Why?

1. "Label", "Description", and "Errors", "ViewHelper" are Elements of a "Default" Field

2. Fields and Elements implement __invoke(), which proxies to setOptions.

3. Each field and each element must unique in its context, they can be accessed by __get($name) or getField($name)/getElement($name).

4. By default the elements of a field can be rendered in a specified order to emulate the Zend Form 1.x behaviour

5. All fields/elements/decorators have to be created through factory methods on the form so that dependencies are always shared and passed between the elements.

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$view = new Zend\View\PhpView();
$options = array('view' => $view', 'script' => 'myForm.phtml');
$form = new Zend\Form\Form($options);
$field = $form->createField('birthday');

In script:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
<?= $this->form; ?>

<?= $this->birthday->label; ?>

<?= $this->birthday->errors; ?>

<?= $this->birthday->element; ?> (<?= $this->birthday->description; ?>)

Or if the $form is rendered without script, it does so by going the decorator approach and a pre-defined order of the elements. The render method of each element looks like this:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
public function render($content='')
$myOwnContent = $this->renderMyself();
// APPEND PREPEND, WRAP logic
return $myOwnConntent . $content;
return $content . $myOwnContent;
return $myOwnContentPrefix . $content . $myContentPostFix;

If as in the script before "$this->birthday->description"; is called for display, render is called with empty $content to decorate.

Now we can decorate elements, the element gets a DatePicker:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$form->birthday->element->addDecorator('jQueryDatePicker', $options);
$form->birthday->element->appendDecorator('jQueryDatePicker', $options);
$form->birthday->element->addDecorateAfter('jQueryDatePicker', $options, $afterDecoratorName);
$form->birthday->element->addDecorateBefore('jQueryDatePicker', $options, $beforeDecoratorName);

And the label gets a tooltip:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$form->birthday->label->addDecorator('Tooltip', array('tip' => 'Blabla'));

We can also specify birthday as 3 input boxes, by adding 3 fields to a "valueGroup" element.

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$group = $form->birthday->addElement('valueGroup');
$year = $fieldset->createField('year');
$month = $fieldset->createField('month');
$day = $fieldset->createField('day');

now $form->birthday->getValue() will return an array of year, month, day. Unless you have filtered it to return only the date.

Subforms work in the same way:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$subfield = $form->createField('sub1');
$subform = $subfield->addElement('SubForm', array('partial' => 'subform.phtml'));
$field = $subform->addField('interests');
$field->addElement('radio', array('hockey' => 'Hockey', 'soccer' => 'Soccer'))
->setDescription('Tell me your interests!');

This looks more verbose than Zend_Form v1, but convenience methods to the rescue:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$subForm = $form->createSubForm('sub1', array('partial', 'subform.phtml'));
$subForm->createElement('radio', 'interests', array('multiOptions' => ..., 'label' => '', 'description' => ''));

On each Element you call:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$element->create[ELEMENTNAME]($fieldName, $options);

Which saves you talking to the "field value" level.

Both Fields and Input-Elements can have Validators and Filters. An $field->isValid() collects all error messages and puts them onto the $field->errors element. This way you can validate several values in conjunction (when there are dependencies) and single primitive types from form input fields.

Now to the funny parts, all Elements and Fields implement __invoke() which proxies to setOptions.

Inside the view script, a designer can progressively enhance elements:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
<?= $this->form(array('id' => 'my-id')); ?>

<?= $this->birthday->label('Tell me your birthday please', array('class' => 'my-label')); ?>

Jan 30, 2010

gah, I prototyped this and its a bit too complex, i need another insight <ac:emoticon ac:name="smile" />

Its either always placing all the elements manually, or having them "decorated" completly. A mix however is too complicated to configure.

The problem I see is, that label, description and such stuff are "elements" themselves and are put to strict to the form control element. Thats why so many ugly decorators exist and so much logic about prepend, append, wrap and such has to be thought of.

Zend_Form should describe the data-structure, for example the following complex thing:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$data = array(
'user_id' => 1,
'username' => 'beberlei',
'emails' => array(
0 => 'firstname.lastname@example.com',
1 => 'firstname.lastname@example.com',
2 => 'email@example.com',
'addresses' => array(
0 => array(
'street' => 'My Foostreet 1',
'zipcode' => '12345',
'city' => 'New York',
'country' => 'US',
1 => array(
'street' => 'My Barstreet 2',
'zipcode' => '54321',
'city' => 'London',
'country' => 'GB',

Pressing stuff like description, labels and rendering ontop of the Data-structure is the most complex part. And the current Decorator implementation shows the complexity. I would like to see a refactoring towards something like JavaServer Faces, http://java.sun.com/javaee/5/docs/tutorial/doc/bnaph.html

Zend Form is relativly near to this, decorators are called renderers there (a much better name!) and you can combine elements and renderers freely (separation of concerns). However the displaying of the form happens inside HTML markup, i.e. a form consists of a "Zend_Form" implementation plus at least a partial script.

My prototype had a Zend\Form\FormRegistry instance, which is a required second constructor argument. It holds all the plugin loaders, the view instance, translator and other important dependencies that have to be shared between all elements. This is imho a good approach to solve lots of dependency problems inside Zend_Form. I also used factory methods exlusively, no:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$element = new Zend_Form_Element_Text("foo", $options);

anymore, since here we can't share dependencies in an efficient way.

I will try another approach. The question I ask myself is, why are there decorators at all? There should be a view script and view helpers. The view helpers hold an instance of the current Zend_Form instance that is rendered.

Mar 24, 2010

Benjamin, i am not good at hypothetical explanations, but maybe ZF-9516 could fit into your imaginations.

Jan 30, 2010

Ad. "Allow retrieving and setting all element validators and filter chains"

Retrieving and setting the complete Validator or Filter chains is a nice to have, but its a very linear approach from model to view and enforces you to design a form exactly like the internal data-structure of the model. This is a violation of the separation of concerns principle.

I would rather see a focus on the flexibility to transform model to form data-structure and back and only optionally use this feature when I develop an application that is so simple that model <-> view dependencies are not a problem.

Ad. "Refactor Form view helpers to accept form/element/group objects"

Using a config/registry object all inside Zend Form it would be possible to completly "remove" decorators by using a Zend_View instance that can "decorate" calls to view helpers.

Say you don't want to customize the markup, so a call to the "form" view helper should not only render the <form> tag, but also all the elements inside. This can be done by extending the form view helper at runtime.

However when you want to customize the markup all the "form elment" view helpers just need to render themselves. In the speak of Zend_Form there should be an immutable option on construct that defines how ALL elements of ALL types are decorated by default (i.e. loadDefaultDecorators()). This is what Decorator Chains here described do. There should not only be pre-defined chains, but also sets of chains.

Feb 24, 2010

I still have yet to get a clear explanation of why Zend_Form maintains 3 loaders for filters, validators, and decorators per element in 1.x. I imagine there are applications for this, but I think they are more of an edge case than how the majority of developers use Zend_Form, so having this approach be the default is puzzling. Even having Zend_Form use a single set of loaders per form by default would be a significant performance improvement for larger forms. It's not like the behavior couldn't be overridden to use separate loaders per element if a developer actually wanted that behavior. See http://matthewturland.com/2009/04/03/zend_form-and-zend_loader_pluginloader-snafu/ for more information on how the current default behavior can be overridden, where I'd like to see that override be the default behavior in Zend_Form 2.0.

Mar 29, 2010

As some of you may have noticed in the Issue Tracker, i am delving into Zend_Form especially

ElementsBelongTo and belongsTo. And i think you would agree that this part is not intuitive.

My suggestion in respect to Naming Formitems is: forget ElementsBelongTo and requiring unique

Names, instead use belongsTo for Form and Elements to handle them equally, in a way that:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
// foo[bar][form][]
// foo[bar][][baz][]

This would be more "use case centric" as leaving out the name would lead to an Array Notation.

In my imagination, compared to the suggestion above (which i implemented already and am refactoring and cleaning at the moment),

the following should happen with an ArrayObject Extension

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
// maybe this too
// ArrayObject
// Form
// Element

One would do Operations on Forms and Elements in the known way

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$forms = $form->foo->bar->slice(0)
foreach($forms as $subform) {

Where the attachements will be handled by Form like before, just that the Notary will

bridge the way from one Form to SubForm and from Form or SubForm to Elements.

Ahh, forgot to tell about Notary.

Notary will handle the Structure of the Form and Elements without having references to them.

The Elements or SubForms which i call Items now, will get An Unique Id in Notary when instantiated,

which then will be the Key in a Member Array of the Item on which the SubItems get attached.

So just like the $form->_order['name'] Array at the moment, but with the difference that

the id is independent of names or other Data.

That will allow to virtually name and group Items.

So when instantiating an Element, this Element will then have a member

$elem->_notary = new Zend_Form_Notary();

When instantiating Notary this will fetch $notary->_array from Registry which looks like that

after creating the above Form.

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$notary->_array = array('items' => array('#0' => array()
'#1' => array('name' => null,
'path' => 'foo/bar'),
'#2' => array('name' => null,
'path' => 'baz'),
'btree' => array('#0','#1','#2','#2','#1','#0'),
'index' => array('name' => array('#1' =& $notary->_array['items']['#1']['name'],
'#2' =& $notary->_array['items']['#2']['name']),
'path' => array('#1' =& $notary->_array['items']['#1']['path'],
'#2' =& $notary->_array['items']['#2']['path'])));

So now we can do nifty things with $notary like

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
// foo/bar/#/baz/fooElem
// foo[bar][][baz][]

From Notary we can fetch ChildIdents attached to an Ident or fetching Properties of all Ancestors of an Ident and so on.

Mar 29, 2010

As i reread the Recommendations, i realized this Notary ZF-9516 is able and implemented to handle Metadata

and to retrieve Idents based on comparison against Metadata Values as well.

Mar 30, 2010

It is possible as well to implement normalize (for setting), equals, prepare (for retrieving), concat (for Notation) ...

calling appropriate Properties which are create_function/closures variables.

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$func = create_function('$path', 'return str_replace("[]", "/#/",
array("[" => "/",
"]" => "")),
$elem->getNotary()->setProperty('normalizePath', $func);
$elem->getNotary()->setProperty('path', 'foo[bar][][baz][]');
// foo/bar/#/baz/#

and even

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[
$func = create_function('$identProps', 'return $identProps["path"] . "/" . $identProps["name"];');
$elem->getNotary()->setProperty('concatPathAndName', $func);
Aug 13, 2010

I wasn't able to determine if there will be a default set of markup used when outputting a Zend_Form if not specified otherwise. Currently, that markup looks like:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[

<input />

While this is very semantic from an html and data-layer perspective, it complicates things in the presentation and behavioral layers. I am talking specifically about each field not having a parent node. Having a parent node on a per-field basis dramatically simplifies JavaScript and CSS querying. Might I suggest the below, or a similar variant with a parent node:

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[

<input />

Aug 17, 2010

Did you planned to automatically bind form's data to an object by using reflection ?

It would be nice to (optionally) pass to a Form's object an object reference for being populated. In order to do that, objects should have some constraints like well formatted getters and setters. The form fields should have the same names than the object's attributes and the group fields the same name than the nested object attribute and so on.

That kind of code would be great :

<ac:macro ac:name="code"><ac:default-parameter>PHP</ac:default-parameter><ac:plain-text-body><![CDATA[
class Foo
protected $bar;
protected $baz;
public function getBar()Unknown macro: { return $this->bar; }
public function setBar($bar)Unknown macro: { $this->bar = $bar; return $this; }
public function getBaz()Unknown macro: { return $this->baz; }
public function setBaz($baz)Unknown macro: { $this->baz = $baz; return $this; }
<ac:macro ac:name="code"><ac:default-parameter>PHP</ac:default-parameter><ac:plain-text-body><![CDATA[
$foo = new Foo();
$form = new FooForm(array(), $foo);
// filters, sets form data and populate object if it exists.
$form->setData(array('bar' => 'some value', 'baz' => 'other value')); // or $_POST or other
$foo = new Foo();
$foo->setBar('some value');
$form = new FooForm(array(), $foo);
// some value
Aug 17, 2010

I add a precision for non-standard attribute's type, filters should be used (even if i think that the term "filter" is not appropriate).

Ex. with a Zend_Date attribute :

<ac:macro ac:name="code"><ac:default-parameter>PHP</ac:default-parameter><ac:plain-text-body><![CDATA[
class Foo
- @var Zend\Date
protected $date;
public function setDate(Zend\Date $date)Unknown macro: { $this->date = $date; return $this; }
<ac:macro ac:name="code"><ac:default-parameter>PHP</ac:default-parameter><ac:plain-text-body><![CDATA[
class FooForm extends Form
public function init()Unknown macro: { $date = new ElementText('date'); $date->addFilter(new FilterDate('yyyy-MM-dd')); // converts to Zend_Date object $this->addElements(array( $date ); }
<ac:macro ac:name="code"><ac:default-parameter>PHP</ac:default-parameter><ac:plain-text-body><![CDATA[
$foo = new Foo();
$form = new FooForm(array(), $foo);
$form->setData(array('date' => '2010-08-17'));
// filters/converts data, and then populates the object
- @var Zend\Date
Aug 20, 2010

Hi all,

After spending some time with the current Zend_Form, I will be more than happy to have a replacement. I really like the idea of validator/filter chains being decoupled from Zend_Form. As far as validators/filters are concerned, have you considered adopting an approach similar to Symfony annotations?

Usage could be something like this:

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
$entity = new EntityObject();
$validator = new Zend\Validate\ChainGenerator\Annotation($entity)
$data = array(...) //From request or something
//Do something...
} else {
//Do something else...

I haven't used Symfony or its annotation reader yet but the one in Doctrine 2 BETA seems to work well though. With annotation readers already available, I imagine it would be trivial to implement. XML, INI (and YAML?) generators could be made available as well.

Oct 11, 2010

After some reflexion, maybe it would be better to extract binding logic from Zend Form and that ZF 2.0 comes with a databinder component which would be used internally by Zend Form.

e.g :

<ac:macro ac:name="code"><ac:default-parameter>PHP</ac:default-parameter><ac:plain-text-body><![CDATA[
namespace Entity;
use Zend\Date;
class Foo
- @var string
protected $bar;
- @var Date
protected $date;
public function setBar($bar)Unknown macro: { $this->bar = $bar; return $this; }
public function setDate(Date $date)Unknown macro: { $this->date = $date; return $this; }
// getters...
$foo = new Foo();
$form = new FooForm('fooForm');
// or $form = new FooForm('fooForm', $foo);
// proxy method for $form->getDataBinder()->setTarget($foo);
// proxy method for $form->getDataBinder()
// convert from string to Zend\Date object before binding the value to the Foo's date property
$dateConverter = new My\Converter\ZendDateConverter();
// proxy for $form->getDataBinder()->addPropertyConverter('date', $dateConverter);
$form->addPropertyConverter('date', $dateConverter);
// a databinder could be used directly without the need of a Form object
$dataBinder = new DataBinder($foo);
// preventing unallowed fields to be mapped, security matter
// automatically invoked if data binding is used through a form
$dataBinder->setAllowedFields(array('bar', 'date'));
// or $dataBinder->addPropertiesConverter(array('dateField1', 'dateField2'), $dateConverter);
// different method to keep best practices and to not mix parameters data type.
$dataBinder->addPropertyConverter('date', $dateConverter);

A databinder component would be nice and could be used without a form. This way, Zend Form would not be responsible of data binding and delegates that process to an appropriate object, keeping Zend Form focused on forms handling. (i'm really not sure about the good english of this last paragraph <ac:emoticon ac:name="cheeky" />)

Jul 01, 2011

I have created a similar solution, check the example and the unit tests

- @var string
Aug 16, 2011

I have some thoughts/concerns regarding the current Zend_Form 1.0 and some of the comments here so far.

1.) Decorators / Rendering

I'll admit, I am only just grasping the principle behind this pattern, and I can see it has it's advantages. However, you only have to look back a year or so and it seemed that in IRC and on just about every related forum, some developer new to the framework was completely lost as to how he went about changing the damned default DL based output to something a bit more "normal".

You can argue until you are blue in the face about semantics, but you'll never convince me or a large number of other people that a DL was the most semantic markup for a form.

As I have already admitted, as I learn more about decorators, I can see their uses. However, as a learning curve, I am going to have to refer to the drupal learning curve used in a recent PHPNW meeting:- http://28.media.tumblr.com/tumblr_lfojlzGHJ01qdpu1qo1_500.png

My thoughts are along the same lines as Benjamin Eberlei, that the rendering of form elements should be done with a partial view script by default with decorators being the option for those that need them.

This is a rough (OK, very rough) such script that I have been using for a while now:- https://gist.github.com/1150056

Obviously I approve massively of the improvement of passing in just the element and not all it's properties to the view helpers - which would drastically reduce the amount of code in view scripts like mine.

When it comes to getting the most from my time, I can build 90% of my forms using the view script above and style it a lot quicker than with decorators!

2.) Mapping Models directly to Forms

Eeeew!! Please just stop now. Do a google search for getters and setters are evil, and then come back.

I can't think of anything worse for an MVC approach that to bind a form directly to a domain model.

3.) Filter/Validator/Decorator chains.

I thought we already had Filter and Validator chains, and although I have not looked into PubSub, it sounds like what we should be looking towards is a more generic base "chain" implementation that all of the above can extend from.

Just my two bits worth, carry on! <ac:emoticon ac:name="smile" />

Sep 05, 2011

For dynamically-generated or user-configurable forms, it would be very handy if the order values supplied when adding elements or sub-forms did not have to be unique.

Jan 25, 2012

I see you guys are really into internal stuff (filters, chains, decorators), but not the real use-cases and programmer friendly usage of the module <ac:emoticon ac:name="sad" />

I'm new to ZendFramework and what makes me really frustrating is the current Zend_Form data handling.

<ac:macro ac:name="code"><ac:parameter ac:name="title">AlbumController.php</ac:parameter><ac:parameter ac:name="borderStyle">solid</ac:parameter><ac:plain-text-body><![CDATA[
$request = $this->getRequest();
if ($request->isPost()) {
$formData = $request->post()->toArray();
if ($form->isValid($formData)) {

really? Fatal Error <ac:emoticon ac:name="smile" /> Form should be aware of the Request object by itself and extract data from it, so the code looks like:

<ac:macro ac:name="code"><ac:parameter ac:name="title">AlbumController.php</ac:parameter><ac:parameter ac:name="borderStyle">solid</ac:parameter><ac:plain-text-body><![CDATA[
if ($form->isSubmitted()) {
if ($form->isValid()) {

To achieve this, the form have to generate 'namespaced' fields, like in Ruby on Rails or other framworks. If the form's init() looks like:

<ac:macro ac:name="code"><ac:parameter ac:name="title">AlbumForm.php</ac:parameter><ac:parameter ac:name="borderStyle">solid</ac:parameter><ac:plain-text-body><![CDATA[
$artist = new Element\Text('artist');

then it should generate

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[<input type="text" name="album[artist]" />]]></ac:plain-text-body></ac:macro>

 not the

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[<input type="text" name="artist" />]]></ac:plain-text-body></ac:macro>

Also, the form should generate

<ac:macro ac:name="code"><ac:plain-text-body><![CDATA[<input type="hidden" name="album[submit]" value="1" />]]></ac:plain-text-body></ac:macro>

 automatically, just after the <form>. This way you KNOW the form is submitted or not, so you know if you need to run the validation for this particular form. Currently, you just check if ($request->isPost()) and then have to check if the POST contains an element of your form.

The current markup is also really hard to use in real world of CSS. The markup I use in my projects:

<ac:macro ac:name="code"><ac:parameter ac:name="borderStyle">solid</ac:parameter><ac:plain-text-body><![CDATA[
<form class="zendForm" name="FORM_NAME">
<fieldset class="FIELDSET_CLASS">
<legend>FIELDSET CAPTION</legend>

ELEMENT OR GROUP OF ELEMENTS (like radio buttons)

ELEMENT HINT

ERROR MESSAGE

Mar 31, 2012

I think that realy nice to have feature would be possibility to add Object to Select and Radio elements insted of String.

What I'm speaking about is something like these.

<ac:macro ac:name="code"><ac:default-parameter>php</ac:default-parameter><ac:plain-text-body><![CDATA[
interface \Zend\Form\MultiOptionInterface{
public function getId();
public function getLabel(); // maybe __toString ?
class My\Model\User implements \Zend\Form\MultiOptionInterface{
public function __construct($login);
public function getLogin();
public function getId();
public function getLabel()
$selectBox = new \Zend\Form\Element\Select('users');
$selectBox->addItem(new \My\Model\User('John') );
$selectBox->addItem(new \My\Model\User('Dave') );
$selectBox->addItem(new \My\Model\User('Petr') );

It will help a lot to have these posibility now i must convert objects to textvalue and textvalue to Object. If i have more complex form with complex validation i must cuple them with Db/Repository because i need the conversion from / to objects and validation.


text:
Breaking Vegas: The Gadget Gambler DVD
Sale Price: $19.99
To Order by Phone Call 1-800-933-6249
- Additional Details
- Format: Color, DVD-Video, NTSC
- Rating: Not Rated
- Number of Discs: 1
- Run Time: 50 Minutes
- Region: Region 1
- Aspect Ratio: 1.33:1
- Language: English
- Studio: A&E Home Video
- DVD Release Date: March 15, 2005
Meet a devout Baptist who became obsessed with using technology to stack the deck in his favor.
- An exciting new series inspired by the bestselling book about the legendary MIT Blackjack Team.
- Meet a church choir director who became the "mad scientist" of gambling.
- Get the inside story of the greatest gambling schemes and scams in history.
It's every gambler's dream--find a way to beat the odds and empty the coffers of Vegas casinos. Some people get lucky while others scheme their way to riches.
BREAKING VEGAS profiles people who took on the casino system and came away with cash. Sometimes they got away with it, and sometimes the odds--and the law--caught up to them.
Join BREAKING VEGAS for a riotous ride with one of the unlikeliest of casino cheats as we reveal the raucous trials, outrageous close calls, exhilarating triumphs, and tumultuous ups and downs of his strange career. A deeply religious Baptist, director of church choirs, and family man, Keith Taft was transformed into a "mad scientist" obsessed with beating blackjack after a serendipitous visit to a Reno casino. A creative gadget genius, Taft built everything from LED eyeglasses to handheld lasers that could mark cards from 15 feet away, and he wasn't above using children as accomplices!

subset: commoncrawl


text:
My Bloody Valentine - Sometimes
My Bloody Valentine - Sometimes
My Bloody Valentine - Blown A Wish
My Bloody Valentine - What You Want
My Bloody Valentine - Soon
Autre Ne Veut - Play By Play
Thousand foot Kruch
The End is Where We...
We are!
This is my "rally" PvP song...
Orchestral Manoeuvres in the Dark - "Atomic Ranch"
Rhye - Open
Adana Twins - Reaction
Teenage Mutants & Andre Crom - Hanging On
Tube & Berger - Surfin (Nice7 Remix)
Kafele feat. Eliki - Secret (Ezel Remix)
Unknown Mortal Orchestra - So Good At Being In Trouble
bikini kill - rebel girl ^^
Robin Skouteris mash up: R.U.D.E
Basically, for the sake of the second movement
Dedicated to BENDY
Sex Judas / My Girls
N.A.D. - Dawn Of A New Age
Jesse Saunders - On and On
Mykki Blanco - Kingpinning
LE1F - Coins
Right where I left it...
Tired after today, and this track is perfect for it.
<3 2:48
Disclosure perform "You Used to Hold Me"
Ultra Vivid Scene - Mercy Seat
Pale Saints - Kinky Love
Lush - Sweetness and Light
The best music video ever...
Turn up the bass, mash up the place. Make dem bun.
You show courage the brave dream of
Gallop on my old warhorse
Dido featuring Kendrick Lamar - Let Us Move On
Stole My Heart - One Direction
Scream & Shout - MattyB
Donald Byrd and 125th Street, N.Y.C.- Love Has Come Around (Original 12'' Version)
RuPaul featuring Big Freedia - "Peanut Butter"
this song cracks me up. can't take this song seriously. it's unintentional comedy.
one thing about the closet/you don't have to hurry/it will be bad tomorrow/so brother, don't you worry
Muse - Supremacy
good music here
one thing about the closet/you don't have to hurry/it will be bad tomorrow/so brother, don't you worry
Last edited by 7seven7; February 10th, 2013 at 08:28 PM.


text:
Product Notes: Dimmable to 20% with certain incandescent dimmers. See www.CreeLEDLighting.com for recommended dimmers.
Cree Brand DIMMABLE 12 Watt lamp replaces existing BR30 incandescent lamps with a more energy efficient, longer lasting, and more technologically advanced alternative. Can smoothly dim down to 10% power.
Perfect to use anywhere you are using BR30 lamps in recessed ceiling fixtures
No lead or mercury means easy and environmentally safe disposal
650 Lumens initial light output is comparable to most 65 Watt incandescent lamps, while saving 53 Watts in electricity
VERY long life - rated to still put out 70% as much light after 50,000 hours of operation as it does when brand new
Energy Star qualified
CHECK PRODUCT FIT BEFORE INVESTING IN MANY - Product May Not Fit in Your Fixture. Also, NOT RECOMMENDED for use in enclosed fixtures because heat buildup can shorten life. DO NOT "hot swap" this lamp. Turn off fixture before replacing existing bulb
Do you have questions about this product?
get answers from real customers and in-house experts with AnswerBox.
Know the answer? Answer this question
1 answer
Do you have a question about this product?
That's why we make the process as easy as possible and pledge to never leave you in the dark when it comes
to buying replacement bulbs and lighting accessories.
Receive special offers and information from Bulbs.com.


text:
New Arrivals
mouse over photo to zoom click for larger image
Petite Tweed Jacket
Luxurious black and white jacket woven with high-luster yarn and a hint of silver sparkle. Inspired by a couture icon, this 4-pocket silhouette is catwalk ready with grosgrain ribbon, faceted jet stones and chain swags.
- Contoured fit. /li>
- Four functional pockets.
- Jewel neck and placket embellished with a chain twist. Black chiffon piping throughout. 3/4 sleeves. Triple hook-and-eye closure. Signature silvertone coat chain.
- Fully lined.
- 62% polyester, 16% cotton, 13% nylon, 9% metallic. Glass stones. Hand wash. Imported.
- Regular length: 22" from shoulder in front.
- Petite length: 21" from shoulder in front.
We're so sorry: this item sold out sooner than expected. For an equally stylish substitute, please call our Style Experts at 1.877.948.2525. Or click on Live Help below for immediate assistance.


text:
The broken record continues. Another sales month, and all eyes are on GM. When the automaker's 2014 recall total long-jumped past the 20 million mark, we thought there was no way new-car sales could remain unaffected. Yes, we heard from industry experts that shoppers don't pay attention to recalls like they used to, and anyone who owns a Chevy Cobalt isn't in the market for a new car anyway. But given congressional testimonies and lawsuits galore, we expected shoppers to deal the General a sales defeat in June.
Related: 2014 American-Made Index
It didn't happen. GM sales increased 1 percent, beating out Ford and Honda, each down 5.8 percent. A sales stoppage in late June on the Chevrolet Cruze, which GM recalled shortly thereafter, contributed toward a 20.9 percent decline for the popular compact, as did lower inventory for the car. Still, GM's Buick and GMC divisions lifted overall sales for the automaker. And with half of 2014 now in the books, U.S. sales operations head Kurt McNeil said in a sales statement that GM saw its best half-year of retail sales (that's sales to individuals, as opposed to commercial fleets) since 2008.
Shoppers in June fueled sales at Hyundai-Kia (up 2.2 percent), Toyota (up 3.3 percent), Nissan (up 5.3 percent) and Fiat Chrysler Automobiles (up 9.2 percent). Nissan, in particular, saw Sentra sales rocket 67.6 percent over a decent June 2013. At least some of that came from higher purchase incentives versus year-ago levels, but compact cars in general also saw a popularity surge. The segment's popular nameplates gained about 10 percent across the board, led by the Toyota Corolla/Matrix (up 17 percent) and Ford Focus (up 13.5 percent). Gas prices, which inched upward throughout the month, may have sent more shoppers into the segment, too.
What happened at Ford? Pickup-truck shoppers shied away from the F-Series ahead of a 2015 redesign for the F-150, which accounts for about two-thirds of all F-Series sales. F-Series sales fell 11 percent, driving overall full-size pickup sales down 4.6 percent despite the housing sector in May posting another strong month — a key driver for pickup sales. Still, pickups have had an up-and-down year, so it's too early to say there's a plateau just yet.
None of June's top sellers saw a huge uptick in purchase incentives, but the deals continue to improve. CNW Research says total automaker and dealer discounts increased $773 per car over the past year, so the average new car transacted for $32,281 in early June. That's down 1.4 percent versus June 2013's $32,747 — a trend we've observed for a few months now after years of rising prices.
Here are the top 10 best-selling cars in June 2014.
When you are going through troubled times, stress can only be compounded further by a situation where you need a new vehicle fast. Where do you begin? Where are you going to find a car to get to work or run those essential errands? Times like these can make you feel helpless and cause you to wonder if your credit situation will ever change.
Our team of professionals at Mile High Car Company in Colorado Springs are here to tell you that you are not alone, and you definitely are not hopeless.
The truth is, dealers who will provide assistance to those in a challenging financial situations are very few — at least the ones that will treat you fairly. If you go into a regular dealership, you are likely to be treated like a problem, a second rate customer, or a waste of time. Not at Mile High Car Company. Here you are our favorite customer!
Don't make the mistake of visiting the wrong dealer on a vacant lot with a trailer for an office. Chances are they will they will tell you that you are approved when you are not. If the numbers are too good to be true, you may find yourself buying a car with severe title damage or frame damage. Or you may trade in a car that you have a loan on only to find out the dealer will never pay it off.
We are the polar opposite of these bad practices. When you work with us, you will be presented with a Car Fax history report immediately. You will be able to choose a vehicle from our vast inventory selection that will work with your bad credit situation. We will make sure you are presented with the most affordable options available, because our sales professionals are not paid on commission.
The benefit of you buying a pre-owned vehicle is that you save lots of money by avoiding depreciation. Our pre-owned cars, trucks, and SUV's in Colorado Springs still provide many of the current safety standards and features of a new car. Including the option of purchasing an extensive vehicle protection plan.
Take the first step towards getting back on the road by filling out our simple customer profile. Next, one of our credit professionals will contact you with more details about your loan program, and then we will set up a no-pressure meeting at your convenience. Once you have met with us at our convenient location in Colorado Springs, we will verify your identity, and then you can start looking at one of our many used cars, trucks and SUV's that you are guaranteed to be approved on.
All is not lost. You have options. Mile High Car Company is here to give you those options and get you back on track to good credit with you're on time payments that report to the credit bureaus which will increase your credit score.
We are conveniently located in Colorado Springs on the corner of Omaha and Powers, we are right on the corner and right on the price.
Call me with any questions! I look forward to hearing from you.
Ray Martinez,
General Sales Manager
Avoiding depreciation. It's common knowledge that once a new car drives off the lot, its value depreciates immediately. In the first two years of ownership, a new car can lose about 30% of its original value. And if you decide to sell your new car a few years after you buy it, you're going to lose a lot more money in the re-sale than if you had bought it used.
Price. If depreciation is your enemy when buying new, it's definitely your best bud when you buy a used car. There isn't much difference between a brand new car and a two year old car. By buying a car brand new, you're basically paying 30% more than you need to. That's a big mark-up for that new car smell.
You can save even more money if you decide to buy older cars that have more miles on them. A buddy of mine back in college bought an '86 Honda Accord hatchback for a couple hundred dollars. It was super ugly, but it drove just fine and lasted him a few years.
Bigger selection. Because used cars are cheaper than brand new cars, you effectively widen the selection of cars you can purchase. Instead of being merely a dream, luxury and sports cars enter the realm of possibility. I remember back in high school when my dad and I were shopping around for a used car, I found a late model (this was back in the 90s) Mercedes Benz for about $5,000. I couldn't believe it!. Something had to be wrong with it. So, we took it for a test drive and to a mechanic. It was in tip top shape and drove like a dream. I ended up not buying the Benz. I was too punk rock for that. Instead I went with a 1992 Smurf Blue Chevy Cavalier. Now that's punk rock. However, the experience did open my eyes to the fact that if you look hard enough, you can find some awesome cars for super cheap when you buy used.
Read entire article here: http://www.artofmanliness.com/2010/04/11/how-to-buy-a-used-car/
by Jimmy from Colorado Springs Colorado | December 27, 2013
Awesome customer service. Rich was my salesman got me what I needed at the price I needed. I will go back when I'm ready for another vehicle.
1480 Ainsworth StColorado Springs, Colorado80915 (719) 570-7800
based on 19 reviews
4.7 out of 5
34 lifetime reviews
Consumers may file a dispute with a consumer reporting company about an item on their credit report. If they do, the consumer reporting company ordinarily must inform the furnisher that the consumer has filed a dispute. The consumer reporting company is also required to forward all relevant information it has about the dispute to the furnisher. Once the furnisher receives the information, it must review it, conduct an investigation and respond to the consumer reporting company.
Receiving information and investigating disputes: When a consumer files a dispute about a credit report item, companies need to be able to receive information about the dispute and must investigate the consumer's concerns.
Providing investigation results: Furnishers must report the results of the investigation to the consumer reporting company that sent the dispute originally.
Correcting inaccurate information: Furnishers are required to report the results of the investigation to nationwide consumer reporting companies if those companies may have received inaccurate or incomplete credit information. Furnishers also have to modify, delete or permanently block disputed information that is incomplete, inaccurate, or cannot be verified.
Paying down debt can have a tremendous impact on your credit scores. According to FICO, the company behind most of the credit scores used by lenders, consumers with high credit scores (785 and above on a scale of 300 – 850), tend to keep their balances low. Specifically, two-thirds carry less than $8,500 in non-mortgage debt, and they use an average of 7% of their available credit on their credit cards. Remember, moving around debt is not the goal here. The goal is to pay off those balances to free up cash flow as well as to help build strong credit. A consolidation loan, used right, can help you get there just a little faster.
RVINE, Calif. — CarFinance.com released a report of the Top 10 most frequently financed vehicles since 2012. Results showed that consumers are choosing more economical vehicles and are keeping them longer.
The report revealed that below-prime car owners — those consumers who are focused on lowering their interest rates and/or monthly payments — tend to own sensible and durable vehicles. Mid-size sedans with a reputation for longevity and value, such as the Nissan Altima, Honda Accord and Toyota Camry, dominate the firm's list, while durable domestics Chevrolet, Ford and Dodge are the Top 3 brands, respectively.
by Bill & Judy from Colorado Springs, Colorado | January 18, 2013
Jessie helped us find our car, 2012 Nissan, in December 2012. Great car! Jessie provided quick service and in a short time we drove home with our new car. This is the third car that we have purchased from this car dealer who we trust.
Reason for visit: Shopping for NewWould you recommend this dealership to a friend? YesDid you purchase a vehicle from this dealer? Yes


text:
Get it by December 24th details
Sign-up for email updates or SMS text alerts on the latest Stuart Weitzman collections, campaigns and events near you.
As a registered member you can enjoy faster, easier checkout, your address book and order history.
$635 | $413 - 635
Just Sexy!
These shoes are absolutely stunning. I work them with a flare short sleeve dress and received numerous comments. They will make you feel like the Sexy Queen you know you are. And, because of the trio...Read More
Best shoes ever!
I have a very long and narrow foot, and very thin ankles. I have a hard time finding shoes I like that fit. These shoes fit like a glove; as if they were custom made just for me. Love the style. M...Read More
I Love it!!!
A must have black heel...elegant and so comfortable!!!
Widths: N: Narrow M: Medium W: Wide
Items in Bag:
Thank you for your pre-sale purchase. Your shoes will be available in approximately 6-8 weeks, and you will receive a shipment confirmation email when your order is shipped.
Due to custom manufacturing of your shoes, we will immediately charge your credit card for your purchase. Please accept these payment terms by checking the box below.
I authorize my credit card to be charged upon placing this order
Please enter your order number and billing zip code below to track your order.
Sign-up for email updates or SMS text alerts on the latest Stuart Weitzman collections, campaigns and events near you.
Please sign in to submit your ratings.
Forgot password?
Dear Colleagues,
Welcome to Stuart Weitzman. You may now purchase any style using your employee discount.
To utilize your discount, kindly enter your employee file number at checkout in the promo code area.


text:
Men's Yoga Short
Longer-length performance shorts for maximum comfort
Get style and coverage in our longer-length Men's Yoga Short. Features an easy-pull comfort elastic waist, interior drawstring for a custom fit, and pockets. Lightweight and breathable eco-friendly fabric blend. Made in the USA.
Men's Yoga Short Features:
- Longer-length for great coverage
- Performance blend fabric wicks and breathes
- Elastic waist with interior drawstring
- Made exclusively by Gaiam
Fit: Classic
Measurements: 33-34.5" waist; 39-40.5" hip; 9.5" inseam (based off size medium)
Learn more about our sizing and fits with our Measurement Guide.
Material: 87% Recycled Nylon, 13% Spandex
Care Instructions: Machine wash cold, gentle cycle with similar colors and mild detergent. Do not bleach. Tumble dry low. Do not iron or dry clean.


text:
Holiday Shop
mouse over photo to zoom click for larger image
Hematite Crystal Long Tassel Necklace
Ultra-fine chain shimmers darkly with a hematite finish, connected by stations of faceted crystal beads glittering in clear, hematite and smoky grey neutrals. A stand-out among other pieces, able to mix with either a soft gold or rhodium finish. Glass crystals/nickel-free metal. Lobster claw clasp. Adjustable length 30"-32". 5" tassel.
We're so sorry: this item sold out sooner than expected. For an equally stylish substitute, please call our Style Experts at 1.877.948.2525. Or click on Live Help below for immediate assistance.


text:
Classic and Modern Takes on Holiday Recipes
Tired of the same Thanksgiving menu year after year? We have a selection of classic recipes and modern updates that are sure to please your family and guests. To create a Thanksgiving feast that speaks to you, try mixing and matching the old with the new!
For more festive Thanksgiving ideas, taste test our best apple pie recipes, or try these inspired dishes featuring sweet potatoes.
By Hannah Petertil and Lauren Haslett
Brine-Cured Roast Turkey
A big turkey is so spectacular you hardly need to do anything to embellish it. But brining can be that extra touch that makes it so juicy and flavorful that you'll remember it for years to come. Brining the turkey takes 3 days so you'll need to plan ahead, but the lengthy brining time really pays off with fabulous flavor. Make sure you start with an all-natural bird without any added water and sodium solution. (Recipe adapted from Alice Waters.)
Recipe: Brine-Cured Roast Turkey
Ken Burris


text:
change location
I'm a fun wedding/baptism officiant. I'll make your guests smile & also make it so meaningful! I bring a microphone if needed. Se...
View Profile »
Welcome! I am an ordained,licensed interfaith minister who delights in helping you create the most unique, loving, and personalized...
Captain CW Davis is licensed to perform ceremonies on land or sea in NY and NJ.
Create Account
Add Listing
Plan, book and shop for your wedding with inspiration as your guide. Plus, save photos to your favorites!


text:
1 (800) 628-1693 M-F 9-5 Eastern
No products match the criteria that you specified. Please de-select some of your options above and try again.
Gregg Homme is a fun, sexy line of mens underwear from the Great White North. Be sure to expect the unexpected in Gregg Homme's offerings, from racy faux-leather lace-ups to sexy mesh jocks and thongs. If you're tired of the same old briefs and boxers, then Gregg Homme is sure to liven up your underwear drawer and put your other undies to shame. Much of Greg Homme's designs are not for the unadventurous, so make sure you're ready for a jolt of excitement in your underwear drawer when you order Greg Homme's underwear from Skiviez.


text:
I have been away from Dhamma Wheel for a while only managed to get back recently but I have not seen any threads by Bhante/Bhikkhu Dhammanando, so wonder where is he now?
I plan to visit Thailand in August with my father so might want to meet up with him just to meet him in person. Any idea?


text:
2000 Aldo Conterno Barolo Granbussia Riserva
"Intense aromas of ripe fruit, sandalwood and perfume. Full-bodied, with lovely ripe fruit flavors and velvety tannins. Long, sweet fruit finish. Soft, layered and gorgeous. Exciting in a reserved way."
Reviewed by: Wine Spectator - 96pts
Available for Store Pickup - Check All Stores »


text:
Your Yves Saint Laurent shopping bag is empty. Shop now to find your favorite Yves Saint Laurent products
Click to Chat
Get advice on how to choose and use YSL Beauty productsAll HOW TO
We are against boring 404 pages!
This page you're looking for has either moved or is no longer on YSL Beauté. Make sure to delete your old 'bookmark' or 'favourite' for that page and create a new one.
Call 0800 5870820
(8:00am- 6:00pm Mon - Fri)
Or ask your question in the FAQ.
Or Email Us.
The benefits of creating an account
Please enter your email address below and we will send you a notification when this item becomes available.
This item will automatically be removed from your cart after you submit your email.


text:
If for some reason you are not completely satisfied with your purchase this holiday season, choose our FREE pre-paid shipping label and we'll cover your return! This offer is only good on eligible orders placed between November 1, 2014 and December 24, 2014. We've extended our normal return period to January 15, 2015 or 30 days after your order is received - whichever comes later. Learn more about our return policy.
Enjoy free shipping this holiday season! Shop now and get Free Value Shipping on most orders over $29.95 to contiguous 48 states, DC and to all U.S. Military APO/FPO/DPO addresses.
Check out our extensive variety of Thompson Center Product Reviews only at OpticsPlanet. Explore these Thompson Center reviews, ratings, recommendations and feedback from users exactly like you who have experience while using the products. We emphasize online product reviews from the best Thompson Center categories consisting of Thompson Center Riflescope Mounts, Rings & Bases Reviews, Thompson Center Tactical Rails Reviews, Thompson Center Muzzleloading Supplies Reviews. We realize the power of consumer reviews and having a good understanding and expertise of the products you're about to order. These customer written reviews can help you make a well informed and educated purchase decision. If you wish to take part in a conversation about Thompson Center products then make certain to pay a visit to our OpticsPlanet discussion forum. We really wish for you to be happy with the Thompson Center products you pay for, so benefit from consumers like you which have used and have first-hand knowledge about theses Thompson Center products.
Connect with OpticsPlanet
Become our fan, follow us, & subscribe for the latest updates and deals
Subscribe to our email list
Sign up and receive $5 Off and get exclusive access to promotions, sales
events, pre-order sales & more!
Contact Information
Toll-Free: 800-504-5897
Intl.: 847-513-6201
Fax: 847-919-3003
Email: email@example.com
Hours of Operation
7AM-8PM CST Mon-Fri9AM-5PM CST Sat-Sun
Our Guarantees


text:
Find an Internship or Volunteer in Sewickley, Pennsylvania ( PA )
If you're looking for internships or volunteer work in Sewickley, Pennsylvania or even to get a summer job, you've come to the right place! With over 30,000 around the county, chances are that GrooveJob.com has the right job for you and wants to be your only source for finding internships and volunteer positions in Sewickley, Pennsylvania.
We've got plenty of intern and volunteer work in Sewickley, Pennsylvania. Check out the list of employers below who have positions in Sewickley. Remember to check back with Groovejob.com on a regular basis. We add new internships and volunteer jobs listings to our database every week, so you'll find new opportunities every time you check back with us.
|Browse by Employer (Click On Logos)
|Click for Intern or Volunteer at SEAWORLD ADVENTURE PARK
|Click for Intern or Volunteer at INROADS
Jobs by Title
Ethics and Compliance Fall Intern
# Position Description The Ethics and Compliance intern will support the E&C team in its global responsibilities that include:...
Pittsburgh, PA
DTBA Engineering & Construction Consulting Associate ( Intern ) Pittsburgh (Winter 2015)
…include: * Creating financial models based on business issues or transactions being analyzed * Assisting with drafting reports and...
Pittsburgh, PA
Advisory - IT Attestation, IARCS Intern ( Pittsburgh_PA)
Advisory - IT Attestation, IARCS Internship Positions Job # CR006 KPMG LLP, the audit, tax and advisory firm (www.kpmg.com/us), is the US...
Pittsburgh, PA
Quality Engineering Intern
**Projects Intern Will Work On:** * CommSuite * AniMates * Avatar **Goals for the Intern :** * Completing manual testing for on-time...
Pittsburgh, PA
Marketing Intern
…Interact with all of the areas of marketing, in-store and out-of-store, to gain a holistic understanding of the business from a...
Pittsburgh, PA
Intern , Electronics Software Testing (13n2014intern3)
** Intern , Electronics Software Testing** **Pittsburgh, PA; Burlington, MA; Boulder, Co; San Jose, CA** **HCR#12N2013INTERN3** ANSYS...
Pittsburgh, PA
Intern , Electronics Software Development (13n2014intern1)
** Intern , Electronics Software Development** **Pittsburgh, PA; Burlington, MA; Boulder, CO; and San Jose, CA** **HCR#13N2014INTERN1**...
Pittsburgh, PA
Audit Intern ( Pittsburgh_PA)
Audit Internship Positions Job # CR004 KPMG LLP, the audit, tax and advisory firm (www.kpmg.com/us), is the US member firm of KPMG...
Pittsburgh, PA
Intern , Electrical Simulation R&D (13n2014intern2)
** Intern , Electrical Simulation R&D** **Pittsburgh, PA; Burlington, MA; Boulder, CO** **HCR#13NINTERN2** ANSYS employs college...
Pittsburgh, PA
Enterprise CarShare Intern - LA Roche University
Our Enterprise CarShare Internship plays an integral role in the success of the Enterprise CarShare program on an individual Campus. For...
Pittsburgh, PA
Term-time Paid Internship
…commercial experience? Why dont you earn whilst you learn with the PageGroup Term-time Internship ? PageGroup is giving students like...
Cheswick, PA
Summer Paid Internship
…see what it's like to work in the recruitment industry through our Summer internship . Recruitment isnt for the faint-hearted, so if...
Cheswick, PA
Brokerage Internship
…Ability to multi-task *Job Opening ID:* 00113425 *Job Title:* Brokerage Internship *Department:* Integrated Capacity Solutions *Job...
Pittsburgh, PA
Baseball Operations Data and Analytics Intern (Sports Management/Finance/Admin)
…This position is responsible for a variety of data and analytical tasks within the Baseball Operations department. Under the direction...
Pittsburgh, PA
Tax Internship Positions ( Pittsburgh_PA)
Tax Internship Positions Job # CR005 KPMG LLP, the audit, tax and advisory firm (www.kpmg.com/us), is the US member firm of KPMG...
Pittsburgh, PA
Customer Business Development (Sales) Internship
…and have selling and account management responsibility. Responsibilities during the internship include achieving superior in-store...
Pittsburgh, PA
Sales Internship
Auto req ID 17836BR Job Title Sales Internship Job Type Intern CBS Business Unit CBS Radio Station KDKA-AM WDSY-FM WBZZ-FM KDKA-FM...
Pittsburgh, PA
Human Resources Internship - Fall Semester (Sports Management/Finance/Admin)
This internship will provide support in the Human Resources department of the Pittsburgh Pirates. The intern will assist in the areas...
Pittsburgh, PA
Ticket Sales & Service Internship (Sports Marketing/Sales)
This internship will assist the Ticket Sales Department (Premium, Retention, New Business and Groups) with various season and off-season...
Pittsburgh, PA
Job Description A paid internship with Springleaf Financial Services provides valuable training and hands-on experience in the financial...
Butler, PA
|<< First < Previous 1 2 3 Next > Last >>


text:
The University of Texas at San Antonio (UTSA) is a public university established by the Texas Legislature in 1969. With an enrollment of more than 30,000 students, the university today offers 135 degree programs in areas such as business, public policy, education, and fine and liberal arts. To help its 7,000 faculty and staff members communicate with students, UTSA had deployed Microsoft Exchange Server 2003 as its messaging solution. Faced with growing storage requirements, the school began to look for an email solution that would require less hardware and administration. UTSA determined that transitioning its messaging solution from an on-premises deployment to Microsoft Office 365 cloud-based services could help it reduce hardware and datacenter costs and ease administration without sacrificing the service levels and security it had come to expect from Exchange Server.
To provide a messaging solution for faculty and staff, UTSA had deployed Microsoft Exchange Server 2003 on-premises. The school has about 6,300 active accounts, and employees use the Microsoft Office Outlook messaging and collaboration client as their primary email client. About 20 percent of the faculty and staff on campus use Apple Macintosh or Linux computers and use Outlook Web App as their primary email client.
Faced with a large amount of messaging data to store, the university purchased more storage and raised mailbox quotas to 5 GB, but people continued to exceed the limits. The cost of storage was becoming an issue for the school. UTSA implemented Microsoft SharePoint Server 2010 for document storage and management, but it found people continued to use email to store important documents. While the IT team believed that over time more people would begin to use SharePoint Server to store documents, they needed a more immediate solution.
With Exchange Online, all faculty and staff members at UTSA will have 25 GB of mailbox storage by default. Employees can apportion this storage between their primary mailbox and the personal archive, a specialized mailbox that appears alongside users' primary
Overall, UTSA found it easy to prepare for the migration from Exchange Server 2003 to Exchange Online. To ensure it considered all the necessary steps for migration, it built a simulation of its production environment for migration and tested it several times. It also prepared its Microsoft Active Directory servers and configured Active Directory Federation Services. "We set up multiple load-balanced servers for Active Directory Federation Services to enable people to connect to Exchange Online with their existing credentials," says Tuffentsamer. "We found the configuration and migration steps to be very straightforward." UTSA plans to have all of its Exchange Server accounts migrated to Exchange Online by June 2011.
UTSA plans to take advantage of enhanced administrative features in Exchange Online such as role-based access control (RBAC), which IT administrators can use to control and delegate tasks that administrators and help desk operators can perform. The IT team also plans to use the enhanced scripting capabilities of Exchange Online to manage more feature sets through the command line. With Remote PowerShell, built on the Windows PowerShell 2.0 command-line interface, administrators can connect to Exchange Online to perform management tasks that would be time-consuming with the web management interface. For example, they can use Remote PowerShell to automate repetitive tasks, extract data for custom reports, customize policies, and connect Exchange Online to existing infrastructure and processes.
Other capabilities UTSA plans to use are delegate access and legal hold. With the delegate access feature, faculty and staff can allow others, such as administrative or academic assistants, to manage their email and calendars. For legal hold, UTSA currently has a third-party program that it plans to retire after it moves to Exchange Online. Instead, it will use the legal hold capability in Exchange Online to preserve deleted and edited mailbox items (including email messages, appointments, and tasks) from both primary mailboxes and personal archives.
In addition, it no longer has to worry about how to provide additional storage for people who exceed their mailbox quota limits. "For people who need a larger archive, we can easily pay for additional space per user, instead of increasing storage overall," explains Tuffentsamer. "And by moving data to the cloud, we can create more space on our current network file shares for people who need it."
UTSA will also reduce costs for additional solutions, such as security and litigation hold software, that it used to provide required capabilities for its on-premises Exchange Server solution.
Microsoft Office 365
Microsoft Office 365 brings together cloud versions of our most trusted communications and collaboration products—Microsoft SharePoint Online, Exchange Online, and Lync Online—with the latest version of our Office desktop suite and companion web applications for businesses of all sizes.
Office 365 helps save time and money, and it frees up valued resources. Simple to use and easy to administer, it is financially backed by a service level agreement that guarantees 99 percent reliability. Office 365 features robust security, IT-level phone support, geo-redundancy, disaster recovery, and the business-class privacy controls and standards that you expect from a world-class service provider.
For more information about Microsoft Office 365, go to:
For more information about University of Texas at San Antonio, call (210) 458-4011 or visit the website at:
The University of Texas at San Antonio (UTSA) is a public state university founded in 1969 that serves 30,000 students pursuing undergraduate and graduate degrees in their respective fields.
UTSA had deployed Microsoft Exchange Server 2003 to provide messaging services for 7,000 faculty and staff members. As people exceeded mailbox storage limits, it wanted to find a cost-effective solution to increase mailbox sizes without additional hardware and administration.
UTSA decided to transition its messaging solution from an on-premises solution to the Microsoft Exchange Online hosted service, which will help the university reduce costs and ease administration while maintaining expected service levels.


text:
Cannes Announces Film, Press, Radio Juries
As Cannes Lions rapidly approaches, the juries in various categories are finally taking shape as the festival organizers announced this week that the juries for Film, Press and Radio are set. As we previously mentioned, Y&R global CCO Tony Granger will preside over the first two while Publicis Worldwide CCO Olivier Altmann will lead Outdoor.
If you so wish, you can check out the long jury lists after the jump. FYI, Outdoor trophies will be handed out on June 21, Press on June 22 and Film on June 25.


text:
Friday, October 25, 2013
Modern Red Cross Quilt
54 comments:
what a beautiful quilt - I love all the different red fabrics you used! Enjoy the festival :-DReplyDelete
I like how the quilting followed the design of the quilt.ReplyDelete
I saw this book previewed in a different place . . . and this was my favorite one. Great job, blood & sweat & all. Love the gingham binding in particular.ReplyDeleteReplies
Wow! Thanks so much Beth! (Who can resist a red gingham binding??)Delete
your quilt is absolutly gorgeous!! want this book:)ReplyDelete
Wow -- just beautiful! I love the addition of the blue.ReplyDelete
I love it love it love it. It is just perfect, and your color and fabric choices are beautiful. Darn, now I have to add another quilt to my bucket list :)ReplyDeleteReplies
I hate when that happens. Well, not really hate, but I know that feeling of the never-ending quilt-bucket-list! :)Delete
I don't know what it is about a Red Cross quilt but I just love them so! Maybe it's because it is such a wonderful organization that I get a warm fuzzy!:)ReplyDelete
I really gotta make one of these!
Amy, I love this quilt! I'm partial to red, white & blue quilts and this is perfect! Beacuse of you I use Melissa to quilt my quilts too. She's great!ReplyDelete
Inspired and Reverent. You are TOOO stinkin' funny. Beautiful Quilt Amy!!!ReplyDelete
I love this quilt! So fresh and bright! It looks amazing, well done :)ReplyDelete
I saw this yesterday on one of your co-author's blogs, and I have been smitten ever since! I'm so glad you can finally share it, and I can't wait to grab a copy of the book...ReplyDeleteReplies
There are some fun projects in there! It was so fun to finally see the others.Delete
SEW nice to have a brand new Quilt to show off! Have fun at Market!ReplyDelete
how amazingly beautiful!!! And congrats, looking forward to getting my hands on this lovely book.ReplyDelete
This turned out so great! Love it! And I'd love to see the rest of the book too.ReplyDelete
I adore this quilt! Sometimes red, white, and blue can come off as a little hokey, but this is just gorgeous and fresh.ReplyDelete
Sorry you bled over it! A gross, but effective, way to remove your own blood from fabric is to spit on it and rub it out with another cloth. (I told you it was gross!) I learned this from a seamstress friend of mine. Apparently, the blood and the spit have to be from the same person, because there is an enzymatic reaction that causes it to break down (or something--I'm an English major, this is a little beyond me). I've tried this on multiple occasions, and it always works, even if it is gross!Replies
Hahaha! That is so funny! I am totally going to try it. Thanks for sharing!Delete
Love it... And congrats on the book!!!ReplyDelete
Amy, the visual impact of this quilt is huge! It reminds me of hand-painted tile.ReplyDelete
Well, actually, blood is quite appropriate for a Red Cross quilt, if you think about it... :-) Strong graphic quilts like this one make me think that I am fabric shopping ALL WRONG. I have very few fabrics in my stash like this that are solid or read as solids, but the design impact of this quilt would be completely lost if it was made up in my crazy multicolor fabrics. I need remedial fabric stashing help!!ReplyDelete
oh my goodness. this is stunning! just incredible.ReplyDelete
It's just awesome, Amy. Love how there are so many patterns to notice inside, depending on how you look at it :)ReplyDelete
Love it...fabric choice really enhances the pattern. BeautifulReplyDelete
The book looks like a good read and the quilt is just beautiful!ReplyDelete
I love how depending on the angle you see a different pattern in this! Ouch on the blood infusion though...ReplyDelete
Beautiful! My favorite types of quilts are those based on traditional patterns and updated. Great fabric choices and quilting!ReplyDelete
This is so great! I love old school patterns made made modern and the colors are fantastic!ReplyDelete
I really like this quilt! And, I totally was going to weigh in with the blood removal tip noted above, but someone beat me to it. I second Books_Bound's suggestion. You really will get the quilt good as new though you're right that the colors were perfect for disguising the leftovers of your labor of love :-)ReplyDelete
very nice, as others have said it is good to see a modern twist on the traditional old blocksReplyDelete
How can you miss with red, white, and blue unless it's blue, white and a touch or red? jk I adore the red bias gingham binding. The blood just blends right into the quilt. Of course, others have already enlighten you as to how to remove it - it works. Now, I can hardly wait for the giveaway. Of course, I know my chances of winning the book are slim to nil. It's fun to try though. I love the old quilts and I'm finding that I like the new spin on the old quilts too. I thought I was more of a traditionalist. I certainly wouldn't call myself a modernist yet I do like the new spin. Thanks for a great post and now I have a new excitement.ReplyDelete
A lovely quilt. I really like it. Hmmm I think I just have added another book to my wish list :)ReplyDelete
Beautiful! That book looks like one I need to keep my eye out for!ReplyDelete
Really gorgeous! Love traditional updated patterns - I will be looking for this book :)ReplyDelete
Beautiful job! Love the nice clean crisp look. Best picture is where you show Melissa's square stipple. Perfect choice.ReplyDelete
Very nice quilt, and I just love the backing fabric for it. :DReplyDelete
Love it! The pattern shines with the limited colour palette.ReplyDelete
Very nice. +1 to what Canadian Abroad said above.ReplyDelete
This is a gorgeous quilt :)ReplyDelete
This quilt really POPS!!!!! love how it photographs!ReplyDelete
Your quilt looks great. Love all the fabrics you have used.ReplyDelete
It really is spectacular and congrats on the book.ReplyDelete
I want the quilt and the book! I gives me ideas of what can be done with solids.ReplyDelete
Another beautiful quilt - love the red. I like the idea of color bundles at Marmalade and the fabric called carnaby street groovy vibes Citrus - what a name!ReplyDelete
your red cross is gorgeous! I'm a new quilter and know so little, but I know I love bird collage and dear stella. so cute. have a great week!ReplyDelete
This quilt is so eye-catching and beautiful.ReplyDelete
I really love the around the color wheel solids, they're awesome!! Thanks for the giveaway, I would love to have that book! firstname.lastname@example.com
This is such a bold graphic design, I love it.ReplyDelete
This quilt is spectacular!ReplyDelete
Whilst wizzing through all the entries its this one I've come back to.ReplyDelete
I'm really loving red on quilts right now and yours is very red, nice job x
SO SO SO SO SOOOOO cute!!!!!ReplyDelete
I think this quilt... red cross it the nicest quilt I have seen in a long, long, long time! I can see that it is beautifully made!ReplyDelete
I love the colour combination, the interest in the piecing, and naturally the finished article....
Thank you so much for your comments - they make my day! I try to respond to as many as my 'mommy' time allows, but life sometimes gets in the way. Please know how much I appreciate each of them.
I apologize for the current comment settings that require a registered user account. They are the only way that I don't get tons of gross spam. I'm hoping Blogger will make a way where people who are not registered users, but would like to leave a comment can do so. Please, Blogger! In the mean time, thanks for your patience.
I also love to respond to questions. If you are a no-reply blogger, please leave an email address so I can get back to you. Or you can email me directly: amy @ diaryofaquilter.com. Thanks!


text:
And you can do the paper layers, its easy! Just start stacking and adding a solid paper in there every once in a while to balance the look of the layout!
Only time E has a good smile? School pics. O.o
LOL, I love that LO! But dang, you got yourself a real Simon Cowell on your hands, being all honest about what's "missing" from your LO! (And you reminded me that I totally need to pick up that kit cuz it's too stinking CUTE!)
Pinterest Twitter
Siggy created with GS's Dia de los Muertos Monthly Mix


text:
Despite Mercedes' advantage this season, Toto Wolff has warned of a potential fight-back from rivals at the upcoming Spanish Grand Prix.
Mercedes have been the team to beat at the start of this year's Championship.
Taking all four pole positions and race victories, Nico Rosberg and Lewis Hamilton hold the 1-2 in the standings, both already a full race victory ahead of third-placed Fernando Alonso.
Added to that, Mercedes have 154 points in the Constructors' while second-placed Red Bull are on just 57.
But despite his team's massive advantage, Wolff is wary that a fight-back could be around the corner.
The Spanish GP, the first European race on the calendar, is known for being the venue that all the teams head to with major updates for their cars.
Wolff is just hoping Mercedes' updates negate any inroads their rivals may make.
"We are now four races into the 2014 season and hold a strong position in both Championships. However, the first European round of the year always provides a prime opportunity for teams to arrive with improvements to their cars," the Merc chief warned.
"Of course, we are no different to any other team in that respect and our aim must be to increase the advantage we enjoyed at the last race in China.
"We have seen already that our rivals are relentless in their efforts to close the gap. As a team, it is up to us to rise to that challenge: to take that relentless mentality to an even greater extent than those around us.
"If we are to build a sustained level of success in this sport, any small advantage must be seen as a platform upon which to build a bigger advantage."
He added: "We head to Barcelona on good form and in high spirits. But, most importantly, we approach the next race weekend as we approached the first: in the knowledge that there is still a long season ahead and anything can happen."