Ejemplo n.º 1
0
 protected function _formatSelectId(Kwf_Component_Select $select)
 {
     if ($select->hasPart(Kwf_Model_Select::WHERE_ID)) {
         $id = $select->getPart(Kwf_Model_Select::WHERE_ID);
         $select->unsetPart(Kwf_Model_Select::WHERE_ID);
         if (substr($id, 0, 2) == '-l') {
             $select->whereEquals('component', 'link');
         } else {
             if (substr($id, 0, 2) == '-d') {
                 $select->whereEquals('component', 'download');
             } else {
                 if (substr($id, 0, 2) == '-i') {
                     $select->whereEquals('component', 'image');
                 } else {
                     return null;
                 }
             }
         }
         $select->whereEquals('nr', substr($id, 2));
     }
     if ($p = $select->getPart(Kwf_Component_Select::WHERE_CHILD_OF)) {
         $select->where(new Kwf_Model_Select_Expr_Or(array(new Kwf_Model_Select_Expr_StartsWith('component_id', $p->dbId . '-'), new Kwf_Model_Select_Expr_Equal('component_id', $p->dbId))));
     }
     return $select;
 }
Ejemplo n.º 2
0
 public function getTemplateVars(Kwf_Component_Renderer_Abstract $renderer)
 {
     $ret = parent::getTemplateVars($renderer);
     $ret['product'] = $this->getData()->row;
     $ret['item'] = $ret['product']->getItem();
     $ret['similarProducts'] = array();
     if ($ret['item']->SimilarProducts) {
         foreach ($ret['item']->SimilarProducts as $p) {
             $p = $ret['product']->getModel()->getRow($p->ASIN);
             foreach ($p->getChildRows('ProductsToNodes') as $n) {
                 $s = new Kwf_Component_Select();
                 $s->whereEquals('node_id', $n->node_id);
                 $s->whereGenerator('detail');
                 if ($this->getData()->parent->parent->countChildComponents($s)) {
                     $ret['similarProducts'][] = $this->getData()->parent->getChildComponent('_' . $p->asin);
                     break;
                 }
             }
         }
     }
     $ret['nodes'] = array();
     $nodes = $ret['product']->getChildRows('ProductsToNodes');
     foreach ($nodes as $node) {
         $s = new Kwf_Component_Select();
         $s->whereEquals('node_id', $node->node_id);
         $s->whereGenerator('detail');
         $node = $this->getData()->parent->parent->getChildComponent($s);
         if ($node) {
             $ret['nodes'][] = $node;
         }
     }
     return $ret;
 }
Ejemplo n.º 3
0
 protected function _formatSelectFilename(Kwf_Component_Select $select)
 {
     if ($select->hasPart(Kwf_Component_Select::WHERE_FILENAME)) {
         $filename = $select->getPart(Kwf_Component_Select::WHERE_FILENAME);
         if ($this->_settings['uniqueFilename']) {
             $select->whereEquals($this->_settings['filenameColumn'], $filename);
         } else {
             if ($this->_hasNumericIds) {
                 $pattern = '#^([0-9]+)-#';
             } else {
                 $pattern = '#^([^-]+)-#';
             }
             if (!preg_match($pattern, $filename, $m)) {
                 return null;
             }
             $select->whereEquals($this->_idColumn, $m[1]);
         }
     }
     return $select;
 }
Ejemplo n.º 4
0
 protected function _formatSelectId(Kwf_Component_Select $select)
 {
     if ($select->hasPart(Kwf_Model_Select::WHERE_ID)) {
         $id = $select->getPart(Kwf_Model_Select::WHERE_ID);
         $separator = substr($id, 0, 1);
         if (in_array($separator, array('_', '-'))) {
             $id = substr($id, 1);
             if ($separator != $this->_idSeparator || $this->_hasNumericIds && !is_numeric($id)) {
                 return null;
             }
             $select->whereEquals($this->_idColumn, $id);
             $select->unsetPart(Kwf_Model_Select::WHERE_ID);
         }
     }
     return $select;
 }