Version Notes
first release
Download this release
Release Info
| Developer | Atol C |
| Extension | Atol_Productfeedgenerator |
| Version | 1.0.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.0 to 1.0.1
app/design/adminhtml/default/default/layout/productfeedgenerator.xml
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
|
| 3 |
+
<layout version="0.1.0">
|
| 4 |
+
<adminhtml_productflow_index>
|
| 5 |
+
<reference name="head">
|
| 6 |
+
<action method="addCss"><stylesheet>css/productfeedgenerator/styles.css</stylesheet></action>
|
| 7 |
+
</reference>
|
| 8 |
+
<reference name="content">
|
| 9 |
+
<block type="productfeedgenerator/adminhtml_productflow" name="productflow" />
|
| 10 |
+
</reference>
|
| 11 |
+
</adminhtml_productflow_index>
|
| 12 |
+
|
| 13 |
+
<adminhtml_productflow_edit>
|
| 14 |
+
<reference name="head">
|
| 15 |
+
<action method="addJs"><script>colorbox/jquery.colorbox-min.js</script></action>
|
| 16 |
+
<action method="addJs"><script>jquery/jquery-1.4.4.min.js</script></action>
|
| 17 |
+
<action method="addCss"><stylesheet>css/productfeedgenerator/styles.css</stylesheet></action>
|
| 18 |
+
</reference>
|
| 19 |
+
<reference name="content">
|
| 20 |
+
<block type="productfeedgenerator/adminhtml_productflow_edit" name="productflow_edit" template="productflow/edit.phtml">
|
| 21 |
+
<block type="productfeedgenerator/adminhtml_productflow_edit_categories" name="productflow_categories" as="categories">
|
| 22 |
+
<action method="setTemplate"><template>productflow/edit/categories.phtml</template></action>
|
| 23 |
+
</block>
|
| 24 |
+
</block>
|
| 25 |
+
</reference>
|
| 26 |
+
</adminhtml_productflow_edit>
|
| 27 |
+
</layout>
|
app/design/adminhtml/default/default/template/productflow/edit.phtml
ADDED
|
@@ -0,0 +1,387 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php define("ORDERBY_COUNT",3); ?>
|
| 2 |
+
|
| 3 |
+
<div id="product_flow_edit">
|
| 4 |
+
<?php $model = Mage::registry('productflow_data'); ?>
|
| 5 |
+
<?php $json_data = (($model) ? Mage::helper('core')->jsonDecode($model->getData('json_data')) : null); ?>
|
| 6 |
+
<input type="hidden" id="productflow_id" name="productflow_id" value="<?php echo (($model) ? $model->getId() : ""); ?>" />
|
| 7 |
+
<?php $attributes = $this->getProductAttributes(); ?>
|
| 8 |
+
|
| 9 |
+
<div id="messages">
|
| 10 |
+
<ul class="messages"></ul>
|
| 11 |
+
</div>
|
| 12 |
+
|
| 13 |
+
<div class="content-header">
|
| 14 |
+
<h3 class="icon-head"><?php echo $this->__('Product flow edition'); ?></h3>
|
| 15 |
+
<p class="form-buttons">
|
| 16 |
+
<button class="scalable back" id="btn_back" type="button"><span><?php echo $this->__('Back'); ?></span></button>
|
| 17 |
+
<!--<button class="scalable" id="btn_test" type="button"><span><?php echo $this->__('Test'); ?></span></button>-->
|
| 18 |
+
<?php if($model) : ?>
|
| 19 |
+
<button class="scalable delete" id="btn_delete" type="button"><span><?php echo $this->__('Delete'); ?></span></button>
|
| 20 |
+
<?php endif; ?>
|
| 21 |
+
<button class="scalable save" id="btn_save" type="button"><span><?php echo $this->__('Save'); ?></span></button>
|
| 22 |
+
</p>
|
| 23 |
+
</div>
|
| 24 |
+
|
| 25 |
+
<div class="entry-edit">
|
| 26 |
+
<div class="entry-edit-head">
|
| 27 |
+
<h4><?php echo $this->__('General informations'); ?></h4>
|
| 28 |
+
</div>
|
| 29 |
+
<fieldset>
|
| 30 |
+
<div class="input_section">
|
| 31 |
+
<label for="productflow_name"><?php echo $this->__('Name :'); ?></label>
|
| 32 |
+
<input id="productflow_name" type="text" value="<?php echo (($model) ? $model->getTitle() : "") ?>" />
|
| 33 |
+
</div>
|
| 34 |
+
<div class="input_section">
|
| 35 |
+
<label for="productflow_comment"><?php echo $this->__('Comment :'); ?></label>
|
| 36 |
+
<textarea id="productflow_comment"><?php echo (($model) ? $model->getNote() : "") ?></textarea>
|
| 37 |
+
</div>
|
| 38 |
+
</fieldset>
|
| 39 |
+
</div>
|
| 40 |
+
|
| 41 |
+
<div class="entry-edit">
|
| 42 |
+
<div class="entry-edit-head">
|
| 43 |
+
<h4><?php echo $this->__('Category filters'); ?></h4>
|
| 44 |
+
</div>
|
| 45 |
+
<fieldset>
|
| 46 |
+
<div class="input_section">
|
| 47 |
+
<?php echo $this->getChildHtml('categories'); ?>
|
| 48 |
+
</div>
|
| 49 |
+
</fieldset>
|
| 50 |
+
</div>
|
| 51 |
+
|
| 52 |
+
<?php
|
| 53 |
+
$attributesList = Array();
|
| 54 |
+
if($json_data && $json_data['attributes']) {
|
| 55 |
+
foreach($json_data['attributes'] as $attribute) {
|
| 56 |
+
$attributesList[$attribute['id']] = array("operator" => $attribute['operator'], "values" => $attribute['values']);
|
| 57 |
+
}
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
?>
|
| 61 |
+
|
| 62 |
+
<div class="entry-edit">
|
| 63 |
+
<div class="entry-edit-head">
|
| 64 |
+
<h4><?php echo $this->__('Attribute filters'); ?></h4>
|
| 65 |
+
</div>
|
| 66 |
+
<fieldset>
|
| 67 |
+
<div class="attributes_list input_section">
|
| 68 |
+
<div class="entry-edit-head">
|
| 69 |
+
<h4><?php echo $this->__('Attribute list'); ?></h4>
|
| 70 |
+
</div>
|
| 71 |
+
<fieldset>
|
| 72 |
+
<?php foreach($attributes as $attribute) : ?>
|
| 73 |
+
<?php $frontendInput = $attribute->getData('frontend_input'); ?>
|
| 74 |
+
<?php if(in_array($attribute->getData('frontend_input'), array('select', 'multiselect', 'boolean','text'))) : ?>
|
| 75 |
+
<div class="attribute_item <?php echo $frontendInput; ?> <?php echo (isset($attributesList[$attribute->getData('attribute_id')]) ? 'filtered' : ''); ?>" <?php echo (isset($attributesList[$attribute->getData('attribute_id')]) ? '' : 'style="display:none;"'); ?> data-attribute-id="<?php echo $attribute->getData('attribute_id'); ?>" data-attribute-type="<?php echo $frontendInput; ?>">
|
| 76 |
+
<label for="productflow_attribute[<?php echo $attribute->getData('attribute_id'); ?>]['operator']"><?php echo $attribute->getData('frontend_label'); ?></label>
|
| 77 |
+
<select id="productflow_attribute[<?php echo $attribute->getData('attribute_id'); ?>]['operator']" class="operator">
|
| 78 |
+
<?php foreach($this->getOperators($frontendInput) as $operator => $label): ?>
|
| 79 |
+
<option value="<?php echo $operator; ?>" <?php echo ((isset($attributesList[$attribute->getData('attribute_id')]) && $attributesList[$attribute->getData('attribute_id')]['operator'] === $operator) ? 'selected="selected"' : ''); ?>><?php echo $label; ?></option>
|
| 80 |
+
<?php endforeach; ?>
|
| 81 |
+
</select>
|
| 82 |
+
|
| 83 |
+
<?php if($frontendInput === 'multiselect') : ?>
|
| 84 |
+
<select id="productflow_attribute[<?php echo $attribute->getData('attribute_id'); ?>]['value']" class="value" multiple="multiple">
|
| 85 |
+
<?php foreach($attribute->getSource()->getAllOptions(true, true) as $option) : ?>
|
| 86 |
+
<?php if($option['value'] != "" && $option['value'] != null) : ?>
|
| 87 |
+
<option value="<?php echo $option['value']; ?>" <?php echo ((isset($attributesList[$attribute->getData('attribute_id')]) && in_array($option['value'], $attributesList[$attribute->getData('attribute_id')]['values'])) ? 'selected="selected"' : ''); ?>><?php echo $option['label'] ?></option>
|
| 88 |
+
<?php endif; ?>
|
| 89 |
+
<?php endforeach; ?>
|
| 90 |
+
</select>
|
| 91 |
+
<?php elseif($frontendInput === 'select') : ?>
|
| 92 |
+
<select id="productflow_attribute[<?php echo $attribute->getData('attribute_id'); ?>]['value']" class="value" <?php echo (isset($attributesList[$attribute->getData('attribute_id')]) && $attributesList[$attribute->getData('attribute_id')]['operator'] === 'or') ? 'multiple=""' : ''; ?>>
|
| 93 |
+
<?php foreach($attribute->getSource()->getAllOptions(true, true) as $option) : ?>
|
| 94 |
+
<?php if($option['value'] != "" && $option['value'] != null) : ?>
|
| 95 |
+
<option value="<?php echo $option['value']; ?>" <?php echo ((isset($attributesList[$attribute->getData('attribute_id')]) && in_array($option['value'], $attributesList[$attribute->getData('attribute_id')]['values'])) ? 'selected="selected"' : ''); ?>><?php echo $option['label'] ?></option>
|
| 96 |
+
<?php endif; ?>
|
| 97 |
+
<?php endforeach; ?>
|
| 98 |
+
</select>
|
| 99 |
+
<?php elseif($frontendInput === 'boolean') : ?>
|
| 100 |
+
<select id="productflow_attribute[<?php echo $attribute->getData('attribute_id'); ?>]['value']" name="productflow['attributes']" class="value" >
|
| 101 |
+
<option value="true" <?php echo ((isset($attributesList[$attribute->getData('attribute_id')]) && in_array(true, $attributesList[$attribute->getData('attribute_id')]['values'])) ? 'selected="selected"' : ''); ?>><?php echo $this->__('yes'); ?></option>
|
| 102 |
+
<option value="false" <?php echo ((isset($attributesList[$attribute->getData('attribute_id')]) && in_array(false, $attributesList[$attribute->getData('attribute_id')]['values'])) ? 'selected="selected"' : ''); ?>><?php echo $this->__('no'); ?></option>
|
| 103 |
+
</select>
|
| 104 |
+
<?php elseif($frontendInput === 'text') : ?>
|
| 105 |
+
<input type="text" id="productflow_attribute[<?php echo $attribute->getData('attribute_id'); ?>]['value']" name="productflow['attributes']" class="value" style="width:50%" value="<?php echo $attributesList[$attribute->getData('attribute_id')]['values'][0] ?>"/>
|
| 106 |
+
<?php endif; ?>
|
| 107 |
+
<button class="btn_drop_attribute" data-attribute-id="<?php echo $attribute->getData('attribute_id'); ?>" ><?php echo $this->__('Drop'); ?></button>
|
| 108 |
+
</div>
|
| 109 |
+
<?php endif; ?>
|
| 110 |
+
<?php endforeach; ?>
|
| 111 |
+
</fieldset>
|
| 112 |
+
<div id="add_attribute">
|
| 113 |
+
<label for="add_attribute_select"><?php echo $this->__('Add an attribute to filter'); ?></label>
|
| 114 |
+
<select id="add_attribute_select">
|
| 115 |
+
<?php foreach($attributes as $attribute) : ?>
|
| 116 |
+
<option value="<?php echo $attribute->getData('attribute_id'); ?>" class="<?php echo (isset($attributesList[$attribute->getData('attribute_id')]) ? 'filtered' : ''); ?>" ><?php echo $attribute->getData('attribute_code'); ?></option>
|
| 117 |
+
<?php endforeach; ?>
|
| 118 |
+
</select>
|
| 119 |
+
<button class="btn_add_attribute"><?php echo $this->__('Add'); ?></button>
|
| 120 |
+
</div>
|
| 121 |
+
</div>
|
| 122 |
+
</fieldset>
|
| 123 |
+
</div>
|
| 124 |
+
|
| 125 |
+
<div class="entry-edit">
|
| 126 |
+
<div class="entry-edit-head">
|
| 127 |
+
<h4><?php echo $this->__('Other filters'); ?></h4>
|
| 128 |
+
</div>
|
| 129 |
+
<fieldset>
|
| 130 |
+
<div id="product_filters" class="input_section">
|
| 131 |
+
<div class="product_filter">
|
| 132 |
+
<input type="checkbox" id="discounted_products" name="productflow['filters']['discounted']" <?php echo ((isset($json_data) && isset($json_data['filters']) && isset($json_data['filters']['discounted']) && $json_data['filters']['discounted']) ? 'checked="checked"' : ''); ?> />
|
| 133 |
+
<label for="discounted_products"><?php echo $this->__('Filter only discounted products ?'); ?></label>
|
| 134 |
+
</div>
|
| 135 |
+
<div class="product_filter">
|
| 136 |
+
<input type="checkbox" id="new_products" name="productflow['filters']['new']" <?php echo ((isset($json_data) && isset($json_data['filters']) && isset($json_data['filters']['new']) && $json_data['filters']['new']) ? 'checked="checked"' : ''); ?>/>
|
| 137 |
+
<label for="new_products"><?php echo $this->__('Filter only new products ?'); ?></label>
|
| 138 |
+
</div>
|
| 139 |
+
</div>
|
| 140 |
+
</fieldset>
|
| 141 |
+
</div>
|
| 142 |
+
|
| 143 |
+
<div class="entry-edit">
|
| 144 |
+
<div class="entry-edit-head">
|
| 145 |
+
<h4><?php echo $this->__('Collection management'); ?></h4>
|
| 146 |
+
</div>
|
| 147 |
+
<fieldset>
|
| 148 |
+
<!--<div class="input_section">
|
| 149 |
+
<label for="productflow_order_by"><?php echo $this->__('Order by :'); ?></label>
|
| 150 |
+
<select id="productflow_order_by">
|
| 151 |
+
<?php foreach($attributes as $attribute) : ?>
|
| 152 |
+
<option value="<?php echo $attribute->getData('attribute_id'); ?>"><?php echo $attribute->getData('frontend_label'); ?></option>
|
| 153 |
+
<?php endforeach; ?>
|
| 154 |
+
</select>
|
| 155 |
+
<select id="productflow_order_direction">
|
| 156 |
+
<option value="asc"><?php echo $this->__('ASC'); ?></option>
|
| 157 |
+
<option value="desc"><?php echo $this->__('DESC'); ?></option>
|
| 158 |
+
</select>
|
| 159 |
+
</div>-->
|
| 160 |
+
<div class="input_section">
|
| 161 |
+
<label for="productflow_limit"><?php echo $this->__('Limit :'); ?></label>
|
| 162 |
+
<input id="productflow_limit" name="productflow['limit']" type="text" value="<?php echo ((isset($json_data) && isset($json_data['others']) && isset($json_data['others']['limit']) && $json_data['others']['limit']) ? $json_data['others']['limit'] : ''); ?>" />
|
| 163 |
+
</div>
|
| 164 |
+
|
| 165 |
+
<?php $orderByOptions = Mage::getModel('productfeedgenerator/system_config_source_orderbytype')->toOptionArray(); ?>
|
| 166 |
+
|
| 167 |
+
<?php foreach(range(0,ORDERBY_COUNT - 1) as $i) : ?>
|
| 168 |
+
<?php $currentOrderBy = ($json_data && isset($json_data['orderBy']) && isset($json_data['orderBy'][$i]) && isset($json_data['orderBy'][$i]) && isset($json_data['orderBy'][$i]['attribute']) && isset($json_data['orderBy'][$i]['direction'])) ? $json_data['orderBy'][$i] : null; ?>
|
| 169 |
+
<div class="input_section">
|
| 170 |
+
<label for="orderby<?php echo $i; ?>"><?php echo $this->__('Order %s :', $i); ?></label>
|
| 171 |
+
<select name="orderby['<?php echo $i; ?>']" id="orderby<?php echo $i; ?>" class="orderby" data-orderbyid="<?php echo $i; ?>">
|
| 172 |
+
<?php foreach($orderByOptions as $orderBy) : ?>
|
| 173 |
+
<option value="<?php echo $orderBy['value']; ?>" <?php echo ($currentOrderBy && $currentOrderBy['attribute'] == $orderBy['value']) ? 'selected="selected"' :'' ?>><?php echo $orderBy['label']; ?></option>
|
| 174 |
+
<?php endforeach; ?>
|
| 175 |
+
</select>
|
| 176 |
+
<select name="direction['<?php echo $i; ?>']" id="direction<?php echo $i; ?>" class="direction">
|
| 177 |
+
<option value="asc" <?php echo ($currentOrderBy && $currentOrderBy['direction'] == "asc") ? 'selected="selected"' :'' ?>><?php echo $this->__('asc'); ?></option>
|
| 178 |
+
<option value="desc" <?php echo ($currentOrderBy && $currentOrderBy['direction'] == "desc") ? 'selected="selected"' :'' ?>><?php echo $this->__('desc'); ?></option>
|
| 179 |
+
</select>
|
| 180 |
+
</div>
|
| 181 |
+
<?php endforeach; ?>
|
| 182 |
+
</fieldset>
|
| 183 |
+
</div>
|
| 184 |
+
|
| 185 |
+
<script type="text/javascript">
|
| 186 |
+
function formToJson() {
|
| 187 |
+
var limitValue = parseInt(jQuery('#productflow_limit').val());
|
| 188 |
+
if(isNaN(limitValue)) {
|
| 189 |
+
limitValue = null;
|
| 190 |
+
}
|
| 191 |
+
|
| 192 |
+
var json = {
|
| 193 |
+
"attributes" : jQuery('.attribute_item.filtered').map(function() {
|
| 194 |
+
var attributeType = jQuery(this).attr('data-attribute-type');
|
| 195 |
+
return {
|
| 196 |
+
"id" : jQuery(this).attr('data-attribute-id'),
|
| 197 |
+
"operator" : jQuery(this).children('select.operator').val(),
|
| 198 |
+
"values" : jQuery(this).find('select.value option:selected, :text').map(function() {
|
| 199 |
+
return (attributeType == 'boolean') ? (jQuery(this).val() == "true") : jQuery(this).val();
|
| 200 |
+
}).get()
|
| 201 |
+
};
|
| 202 |
+
}).get(),
|
| 203 |
+
"categories" : jQuery('#productflow_categories').val().split(',').map( function(categoryId, i) {
|
| 204 |
+
return (isNaN(parseInt(categoryId))) ? null : parseInt(categoryId);
|
| 205 |
+
}),
|
| 206 |
+
"filters" :
|
| 207 |
+
{
|
| 208 |
+
"discounted" : jQuery('#discounted_products').is(':checked'),
|
| 209 |
+
"new" : jQuery('#new_products').is(':checked')
|
| 210 |
+
},
|
| 211 |
+
"orderBy" : jQuery('.orderby').map(function() {
|
| 212 |
+
var currentSelect = jQuery(this);
|
| 213 |
+
return {
|
| 214 |
+
"attribute" : currentSelect.val(),
|
| 215 |
+
"direction" : currentSelect.siblings('.direction').val()
|
| 216 |
+
};
|
| 217 |
+
}).get(),
|
| 218 |
+
"others" :
|
| 219 |
+
{
|
| 220 |
+
"limit" : limitValue
|
| 221 |
+
}
|
| 222 |
+
};
|
| 223 |
+
|
| 224 |
+
return json;
|
| 225 |
+
}
|
| 226 |
+
|
| 227 |
+
jQuery(document).ready(function () {
|
| 228 |
+
var optionSelected = jQuery('#add_attribute_select option:selected');
|
| 229 |
+
if(optionSelected.length > 0) {
|
| 230 |
+
optionSelected.hide();
|
| 231 |
+
jQuery('#add_attribute_select option:not(.filtered):first').attr("selected","selected");
|
| 232 |
+
}
|
| 233 |
+
|
| 234 |
+
jQuery('.btn_add_attribute').click(function() {
|
| 235 |
+
var optionSelected = jQuery('#add_attribute_select option:selected');
|
| 236 |
+
var id = optionSelected.val();
|
| 237 |
+
var attribute = jQuery('.attribute_item[data-attribute-id='+id+']');
|
| 238 |
+
attribute.show();
|
| 239 |
+
attribute.addClass('filtered');
|
| 240 |
+
optionSelected.hide();
|
| 241 |
+
optionSelected.addClass('filtered');
|
| 242 |
+
jQuery('#add_attribute_select option:not(.filtered):first').attr("selected","selected");
|
| 243 |
+
});
|
| 244 |
+
|
| 245 |
+
jQuery('.btn_drop_attribute').click(function() {
|
| 246 |
+
var id = jQuery(this).attr('data-attribute-id');
|
| 247 |
+
var attribute = jQuery('div.attribute_item[data-attribute-id='+id+']');
|
| 248 |
+
attribute.hide();
|
| 249 |
+
attribute.removeClass('filtered');
|
| 250 |
+
var option = jQuery('#add_attribute_select option[value="'+id+'"]');
|
| 251 |
+
option.show();
|
| 252 |
+
option.removeClass('filtered');
|
| 253 |
+
});
|
| 254 |
+
|
| 255 |
+
jQuery('.btn_drop_category').click(function() {
|
| 256 |
+
var parent = jQuery(this).parent();
|
| 257 |
+
parent.hide();
|
| 258 |
+
parent.removeClass('filtered');
|
| 259 |
+
});
|
| 260 |
+
|
| 261 |
+
jQuery('.attribute_item.select select.operator').change( function() {
|
| 262 |
+
var operator = jQuery(this);
|
| 263 |
+
if(operator.parent().hasClass('filtered') && operator.val() == 'or') {
|
| 264 |
+
operator.siblings('select.value').attr('multiple','multiple');
|
| 265 |
+
} else {
|
| 266 |
+
operator.siblings('select.value').removeAttr('multiple');
|
| 267 |
+
}
|
| 268 |
+
});
|
| 269 |
+
|
| 270 |
+
/*jQuery('#btn_test, #btn_test span').live('click', function() {
|
| 271 |
+
var flow = formToJson();
|
| 272 |
+
|
| 273 |
+
jQuery.ajax({
|
| 274 |
+
type : "POST",
|
| 275 |
+
url : "<?php echo Mage::getUrl('adminhtml/productflow/test'); ?>",
|
| 276 |
+
data : {
|
| 277 |
+
"data" : Object.toJSON(flow),
|
| 278 |
+
"form_key" : FORM_KEY
|
| 279 |
+
},
|
| 280 |
+
dataType : "json",
|
| 281 |
+
success : function(data) {
|
| 282 |
+
jQuery('#messages .messages').html('<li class="info-msg">' + data.count + ' <?php echo $this->__('products given by the current query') ?></li>');
|
| 283 |
+
},
|
| 284 |
+
error : function(data) {
|
| 285 |
+
jQuery('#messages .messages').html('<li class="error-msg"><?php echo $this->__('Server error'); ?></li>');
|
| 286 |
+
}
|
| 287 |
+
});
|
| 288 |
+
});*/
|
| 289 |
+
|
| 290 |
+
jQuery('#btn_save, #btn_save span').live('click', function() {
|
| 291 |
+
var flow = formToJson();
|
| 292 |
+
|
| 293 |
+
jQuery.ajax({
|
| 294 |
+
type : "POST",
|
| 295 |
+
url : "<?php echo Mage::getUrl('adminhtml/productflow/save'); ?>",
|
| 296 |
+
data : {
|
| 297 |
+
"id" : jQuery('#productflow_id').val(),
|
| 298 |
+
"name" : jQuery('#productflow_name').val(),
|
| 299 |
+
"comment" : jQuery('#productflow_comment').val(),
|
| 300 |
+
"data" : Object.toJSON(flow),
|
| 301 |
+
"form_key" : FORM_KEY
|
| 302 |
+
},
|
| 303 |
+
dataType : "json",
|
| 304 |
+
success : function(data) {
|
| 305 |
+
if(data != null) {
|
| 306 |
+
if('error' in data) {
|
| 307 |
+
jQuery('#messages .messages').html('<li class="error-msg">' + data.error + '</li>');
|
| 308 |
+
} else if('success' in data) {
|
| 309 |
+
window.location = "<?php echo Mage::helper("adminhtml")->getUrl('adminhtml/productflow/index'); ?>";
|
| 310 |
+
} else {
|
| 311 |
+
jQuery('#messages .messages').html('<li class="error-msg"><?php echo $this->__('Server error'); ?></li>');
|
| 312 |
+
}
|
| 313 |
+
}
|
| 314 |
+
},
|
| 315 |
+
error : function(data) {
|
| 316 |
+
if(data != null && 'error' in data) {
|
| 317 |
+
jQuery('#messages .messages').html('<li class="error-msg">' + data.error + '</li>');
|
| 318 |
+
} else {
|
| 319 |
+
jQuery('#messages .messages').html('<li class="error-msg"><?php echo $this->__('Server error'); ?></li>');
|
| 320 |
+
}
|
| 321 |
+
}
|
| 322 |
+
});
|
| 323 |
+
|
| 324 |
+
});
|
| 325 |
+
|
| 326 |
+
jQuery('#btn_delete, #btn_delete span').live('click', function() {
|
| 327 |
+
var flow = formToJson();
|
| 328 |
+
|
| 329 |
+
jQuery.ajax({
|
| 330 |
+
type : "POST",
|
| 331 |
+
url : "<?php echo Mage::getUrl('adminhtml/productflow/delete'); ?>",
|
| 332 |
+
data : {
|
| 333 |
+
"id" : jQuery('#productflow_id').val(),
|
| 334 |
+
"form_key" : FORM_KEY
|
| 335 |
+
},
|
| 336 |
+
dataType : "json",
|
| 337 |
+
success : function(data) {
|
| 338 |
+
if(data != null) {
|
| 339 |
+
if('error' in data) {
|
| 340 |
+
jQuery('#messages .messages').html('<li class="error-msg">' + data.error + '</li>');
|
| 341 |
+
} else if('success' in data) {
|
| 342 |
+
window.location = "<?php echo Mage::helper("adminhtml")->getUrl('adminhtml/productflow/index'); ?>";
|
| 343 |
+
} else {
|
| 344 |
+
jQuery('#messages .messages').html('<li class="error-msg"><?php echo $this->__('Server error'); ?></li>');
|
| 345 |
+
}
|
| 346 |
+
}
|
| 347 |
+
},
|
| 348 |
+
error : function(data) {
|
| 349 |
+
if(data != null && 'error' in data) {
|
| 350 |
+
jQuery('#messages .messages').html('<li class="error-msg">' + data.error + '</li>');
|
| 351 |
+
} else {
|
| 352 |
+
jQuery('#messages .messages').html('<li class="error-msg"><?php echo $this->__('Server error'); ?></li>');
|
| 353 |
+
}
|
| 354 |
+
}
|
| 355 |
+
});
|
| 356 |
+
});
|
| 357 |
+
|
| 358 |
+
jQuery('#btn_back').live('click', function() {
|
| 359 |
+
setLocation('<?php echo Mage::helper("adminhtml")->getUrl('adminhtml/productflow/index'); ?>');
|
| 360 |
+
});
|
| 361 |
+
|
| 362 |
+
jQuery('.orderby').change(function() {
|
| 363 |
+
var currentSelect = jQuery(this);
|
| 364 |
+
var id = parseInt(currentSelect.attr('data-orderbyid'));
|
| 365 |
+
if(currentSelect.val() == 0) {
|
| 366 |
+
var others = jQuery('.orderby').filter(function() {
|
| 367 |
+
return jQuery(this).attr("data-orderbyid") > id;
|
| 368 |
+
});
|
| 369 |
+
others.val(0);
|
| 370 |
+
others.parent().hide();
|
| 371 |
+
} else {
|
| 372 |
+
jQuery('.orderby[data-orderbyid="'+(id+1)+'"]').parent().show();
|
| 373 |
+
}
|
| 374 |
+
});
|
| 375 |
+
|
| 376 |
+
var firstToNull = jQuery('.orderby option[value="0"]:selected:first').parent();
|
| 377 |
+
firstToNull.parent().show();
|
| 378 |
+
var idFirst = parseInt(firstToNull.attr('data-orderbyid'));
|
| 379 |
+
var others = jQuery('.orderby').filter(function() {
|
| 380 |
+
return jQuery(this).attr("data-orderbyid") > idFirst;
|
| 381 |
+
});
|
| 382 |
+
others.val(0);
|
| 383 |
+
others.parent().hide();
|
| 384 |
+
|
| 385 |
+
});
|
| 386 |
+
</script>
|
| 387 |
+
</div>
|
app/design/adminhtml/default/default/template/productflow/edit/categories.phtml
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 11 |
+
* If you did not receive a copy of the license and are unable to
|
| 12 |
+
* obtain it through the world-wide-web, please send an email
|
| 13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 14 |
+
*
|
| 15 |
+
* DISCLAIMER
|
| 16 |
+
*
|
| 17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 18 |
+
* versions in the future. If you wish to customize Magento for your
|
| 19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 20 |
+
*
|
| 21 |
+
* @category design
|
| 22 |
+
* @package default_default
|
| 23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
?>
|
| 27 |
+
<input type="hidden" name="category_ids" id="productflow_categories" value="<?php echo $this->getIdsString(); ?>">
|
| 28 |
+
<div id="categories_tree" class="tree"></div>
|
| 29 |
+
<?php if($this->getRoot() && $this->getRoot()->hasChildren()): ?>
|
| 30 |
+
<script type="text/javascript">
|
| 31 |
+
Ext.EventManager.onDocumentReady(function() {
|
| 32 |
+
var categoryLoader = new Ext.tree.TreeLoader({
|
| 33 |
+
dataUrl: '<?php echo $this->getLoadTreeUrl()?>'
|
| 34 |
+
});
|
| 35 |
+
|
| 36 |
+
categoryLoader.createNode = function(config) {
|
| 37 |
+
config.uiProvider = Ext.tree.CheckboxNodeUI;
|
| 38 |
+
var node;
|
| 39 |
+
if (config.children && !config.children.length) {
|
| 40 |
+
delete(config.children);
|
| 41 |
+
node = new Ext.tree.AsyncTreeNode(config);
|
| 42 |
+
|
| 43 |
+
} else {
|
| 44 |
+
node = new Ext.tree.TreeNode(config);
|
| 45 |
+
}
|
| 46 |
+
return node;
|
| 47 |
+
};
|
| 48 |
+
|
| 49 |
+
categoryLoader.on("beforeload", function(treeLoader, node) {
|
| 50 |
+
treeLoader.baseParams.category = node.attributes.id;
|
| 51 |
+
<?php $productFlowId = $this->getProductflowId(); ?>
|
| 52 |
+
<?php if($productFlowId) : ?>
|
| 53 |
+
treeLoader.baseParams.productflow = <?php echo $productFlowId; ?>;
|
| 54 |
+
<?php endif; ?>
|
| 55 |
+
});
|
| 56 |
+
|
| 57 |
+
categoryLoader.on("load", function(treeLoader, node, config) {
|
| 58 |
+
varienWindowOnload();
|
| 59 |
+
});
|
| 60 |
+
|
| 61 |
+
var tree = new Ext.tree.TreePanel('categories_tree', {
|
| 62 |
+
animate:true,
|
| 63 |
+
loader: categoryLoader,
|
| 64 |
+
enableDD:false,
|
| 65 |
+
containerScroll: true,
|
| 66 |
+
rootUIProvider: Ext.tree.CheckboxNodeUI,
|
| 67 |
+
selModel: new Ext.tree.CheckNodeMultiSelectionModel(),
|
| 68 |
+
rootVisible: '<?php echo $this->getRoot()->getIsVisible() ?>'
|
| 69 |
+
});
|
| 70 |
+
|
| 71 |
+
tree.on('check', function(node) {
|
| 72 |
+
if(node.attributes.checked) {
|
| 73 |
+
categoryAdd(node.id);
|
| 74 |
+
} else {
|
| 75 |
+
categoryRemove(node.id);
|
| 76 |
+
}
|
| 77 |
+
varienElementMethods.setHasChanges(node.getUI().checkbox);
|
| 78 |
+
}, tree);
|
| 79 |
+
|
| 80 |
+
// set the root node
|
| 81 |
+
var root = new Ext.tree.TreeNode({
|
| 82 |
+
text: '<?php echo $this->jsQuoteEscape($this->getRoot()->getName()) ?>',
|
| 83 |
+
draggable:false,
|
| 84 |
+
checked:'<?php echo $this->getRoot()->getChecked() ?>',
|
| 85 |
+
id:'<?php echo $this->getRoot()->getId() ?>',
|
| 86 |
+
disabled: <?php echo ($this->getRoot()->getDisabled() ? 'true' : 'false') ?>,
|
| 87 |
+
uiProvider: Ext.tree.CheckboxNodeUI
|
| 88 |
+
});
|
| 89 |
+
|
| 90 |
+
tree.setRootNode(root);
|
| 91 |
+
bildCategoryTree(root, <?php echo $this->getTreeJson() ?>);
|
| 92 |
+
tree.addListener('click', categoryClick.createDelegate(this));
|
| 93 |
+
|
| 94 |
+
// render the tree
|
| 95 |
+
tree.render();
|
| 96 |
+
root.expand();
|
| 97 |
+
//tree.expandAll();
|
| 98 |
+
});
|
| 99 |
+
|
| 100 |
+
function bildCategoryTree(parent, config){
|
| 101 |
+
if (!config) return null;
|
| 102 |
+
|
| 103 |
+
if (parent && config && config.length){
|
| 104 |
+
for (var i = 0; i < config.length; i++){
|
| 105 |
+
config[i].uiProvider = Ext.tree.CheckboxNodeUI;
|
| 106 |
+
var node;
|
| 107 |
+
var _node = Object.clone(config[i]);
|
| 108 |
+
if (_node.children && !_node.children.length) {
|
| 109 |
+
delete(_node.children);
|
| 110 |
+
node = new Ext.tree.AsyncTreeNode(_node);
|
| 111 |
+
|
| 112 |
+
} else {
|
| 113 |
+
node = new Ext.tree.TreeNode(config[i]);
|
| 114 |
+
}
|
| 115 |
+
parent.appendChild(node);
|
| 116 |
+
node.loader = node.getOwnerTree().loader;
|
| 117 |
+
if(config[i].children){
|
| 118 |
+
bildCategoryTree(node, config[i].children);
|
| 119 |
+
}
|
| 120 |
+
}
|
| 121 |
+
}
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
function categoryClick(node, e){
|
| 125 |
+
if (node.disabled) {
|
| 126 |
+
return;
|
| 127 |
+
}
|
| 128 |
+
node.getUI().check(!node.getUI().checked());
|
| 129 |
+
varienElementMethods.setHasChanges(Event.element(e), e);
|
| 130 |
+
};
|
| 131 |
+
function categoryAdd(id) {
|
| 132 |
+
var ids = $('productflow_categories').value.split(',');
|
| 133 |
+
ids.push(id);
|
| 134 |
+
$('productflow_categories').value = ids.join(',');
|
| 135 |
+
}
|
| 136 |
+
function categoryRemove(id) {
|
| 137 |
+
var ids = $('productflow_categories').value.split(',');
|
| 138 |
+
// bug #7654 fixed
|
| 139 |
+
while (-1 != ids.indexOf(id)) {
|
| 140 |
+
ids.splice(ids.indexOf(id), 1);
|
| 141 |
+
}
|
| 142 |
+
$('productflow_categories').value = ids.join(',');
|
| 143 |
+
}
|
| 144 |
+
</script>
|
| 145 |
+
<?php endif; ?>
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Atol_Productfeedgenerator</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -45,9 +45,9 @@ Pour en savoir plus sur notre société, n'hésitez pas à consu
|
|
| 45 |
</description>
|
| 46 |
<notes>first release</notes>
|
| 47 |
<authors><author><name>AtolCD</name><user>AtolCD</user><email>magento@atolcd.com</email></author><author><name>Antoine Trapet</name><user>atr</user><email>atr@atolcd.com</email></author><author><name>Aurélien Ponçon</name><user>apo</user><email>apo@atolcd.com</email></author><author><name>Antoine Chevaldonné</name><user>ach</user><email>ach@atolcd.com</email></author></authors>
|
| 48 |
-
<date>2016-03-
|
| 49 |
-
<time>
|
| 50 |
-
<contents><target name="magelocal"><dir name="Atol"><dir name="Productfeedgenerator"><dir name="Block"><dir name="Adminhtml"><dir name="Productflow"><dir name="Edit"><file name="Categories.php" hash="1dab18a40a30827f9b1ab3001f04d13a"/></dir><file name="Edit.php" hash="000b7dc9137a5e92e7b503ff13713006"/><file name="Grid.php" hash="cc7def146fe698de4249b252eeb3c63e"/><dir name="Renderer"><file name="Linkscolumn.php" hash="d831799203369be2586698559aabf161"/></dir></dir><file name="Productflow.php" hash="827fd19128b6f6b03febbbb5387be50f"/></dir><file name="Frontdisplay.php" hash="ab7997b46c7391e0a0e5b24c6070beb8"/><dir name="Productflow"><file name="Rss.php" hash="a4caa2e3ac07511634be1bc5ee0267da"/></dir></dir><dir name="Helper"><file name="Data.php" hash="7795364cf1483083b9594d95c34bc660"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Productflow"><file name="Collection.php" hash="0d8056368d6c4599a00e3b3dd4f69722"/></dir><file name="Productflow.php" hash="e68259670802fa7f84571b19b0a030cb"/></dir><file name="Productflow.php" hash="aa0fb13c57acb92c3b3855dd6b115e1c"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Orderbytype.php" hash="1a390fda30c5c9d1ca9f5a8c2bf1bb6f"/><file name="Productflowtype.php" hash="967ca8318947473e696612ceb8b9f2c6"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ProductflowController.php" hash="787a5ec0239348658787be719de4574b"/></dir><file name="IndexController.php" hash="39e2e2cf9354c35b32e5a738840b6d87"/><file name="ProductflowController.php" hash="5125ac0325a8f2fc62deb8c89d097111"/></dir><dir name="etc"><file name="adminhtml.xml" hash="c8d2bb91591aae5a80941ef44e19dcc9"/><file name="config.xml" hash="8c2136b71a9c5e306fbf815455a5b443"/><file name="system.xml" hash="511c6ea6cbd55527dfc278b83a44eccb"/><file name="widget.xml" hash="b29e594a7912a2244c1d6fd01912d1c0"/></dir><dir name="sql"><dir name="productfeedgenerator_setup"><file name="mysql4-install-0.1.0.php" hash="178841fb1c45d4fd7e70abc5054ad0ce"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><file name="layout.productfeedgenerator.xml" hash=""/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Atol_Productfeedgenerator.xml" hash="21350607b70c31828328ba4e41f8bd04"/></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Atol_Productfeedgenerator.csv" hash="9e1bfbad6d620a09811cdbd9c1a5abfb"/></dir></target><target name="mageweb"><dir name="js"><dir name="jquery"><file name="jquery-1.4.4.min.js" hash="eef9a6a171184899b08ebd61f1a03425"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="productfeedgenerator"><file name="styles.css" hash="8a550d9db1fcf37915a96e67919de9da"/></dir></dir></dir></dir></dir></target></contents>
|
| 51 |
<compatible/>
|
| 52 |
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
|
| 53 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Atol_Productfeedgenerator</name>
|
| 4 |
+
<version>1.0.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
| 45 |
</description>
|
| 46 |
<notes>first release</notes>
|
| 47 |
<authors><author><name>AtolCD</name><user>AtolCD</user><email>magento@atolcd.com</email></author><author><name>Antoine Trapet</name><user>atr</user><email>atr@atolcd.com</email></author><author><name>Aurélien Ponçon</name><user>apo</user><email>apo@atolcd.com</email></author><author><name>Antoine Chevaldonné</name><user>ach</user><email>ach@atolcd.com</email></author></authors>
|
| 48 |
+
<date>2016-03-14</date>
|
| 49 |
+
<time>08:29:17</time>
|
| 50 |
+
<contents><target name="magelocal"><dir name="Atol"><dir name="Productfeedgenerator"><dir name="Block"><dir name="Adminhtml"><dir name="Productflow"><dir name="Edit"><file name="Categories.php" hash="1dab18a40a30827f9b1ab3001f04d13a"/></dir><file name="Edit.php" hash="000b7dc9137a5e92e7b503ff13713006"/><file name="Grid.php" hash="cc7def146fe698de4249b252eeb3c63e"/><dir name="Renderer"><file name="Linkscolumn.php" hash="d831799203369be2586698559aabf161"/></dir></dir><file name="Productflow.php" hash="827fd19128b6f6b03febbbb5387be50f"/></dir><file name="Frontdisplay.php" hash="ab7997b46c7391e0a0e5b24c6070beb8"/><dir name="Productflow"><file name="Rss.php" hash="a4caa2e3ac07511634be1bc5ee0267da"/></dir></dir><dir name="Helper"><file name="Data.php" hash="7795364cf1483083b9594d95c34bc660"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Productflow"><file name="Collection.php" hash="0d8056368d6c4599a00e3b3dd4f69722"/></dir><file name="Productflow.php" hash="e68259670802fa7f84571b19b0a030cb"/></dir><file name="Productflow.php" hash="aa0fb13c57acb92c3b3855dd6b115e1c"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Orderbytype.php" hash="1a390fda30c5c9d1ca9f5a8c2bf1bb6f"/><file name="Productflowtype.php" hash="967ca8318947473e696612ceb8b9f2c6"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ProductflowController.php" hash="787a5ec0239348658787be719de4574b"/></dir><file name="IndexController.php" hash="39e2e2cf9354c35b32e5a738840b6d87"/><file name="ProductflowController.php" hash="5125ac0325a8f2fc62deb8c89d097111"/></dir><dir name="etc"><file name="adminhtml.xml" hash="c8d2bb91591aae5a80941ef44e19dcc9"/><file name="config.xml" hash="8c2136b71a9c5e306fbf815455a5b443"/><file name="system.xml" hash="511c6ea6cbd55527dfc278b83a44eccb"/><file name="widget.xml" hash="b29e594a7912a2244c1d6fd01912d1c0"/></dir><dir name="sql"><dir name="productfeedgenerator_setup"><file name="mysql4-install-0.1.0.php" hash="178841fb1c45d4fd7e70abc5054ad0ce"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><file name="layout.productfeedgenerator.xml" hash=""/></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="productfeedgenerator.xml" hash="2819062aab01040c428185362050432e"/></dir><dir name="template"><dir name="productflow"><dir><dir name="edit"><file name="categories.phtml" hash="e88f45634328726e01768916cfe407d5"/></dir></dir><file name="edit.phtml" hash="3dfa6696bf128cd285d5a0b85765b68d"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Atol_Productfeedgenerator.xml" hash="21350607b70c31828328ba4e41f8bd04"/></dir></target><target name="magelocale"><dir name="fr_FR"><file name="Atol_Productfeedgenerator.csv" hash="9e1bfbad6d620a09811cdbd9c1a5abfb"/></dir></target><target name="mageweb"><dir name="js"><dir name="jquery"><file name="jquery-1.4.4.min.js" hash="eef9a6a171184899b08ebd61f1a03425"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><dir name="productfeedgenerator"><file name="styles.css" hash="8a550d9db1fcf37915a96e67919de9da"/></dir></dir></dir></dir></dir></target></contents>
|
| 51 |
<compatible/>
|
| 52 |
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
|
| 53 |
</package>
|
