Jump to content

JoelLarson

New Members
  • Posts

    3
  • Joined

  • Last visited

    Never

Everything posted by JoelLarson

  1. Very nice. It seems solid. Page loads are quick. The theme is pleasing. My only opinion on it for improving in version one would be to have pretty URIs.
  2. I ran into an issue where I'm writing an upvote/downvote system in CakePHP and wanted to use a cache for votes so I didn't have to recount every vote for every link (very expensive on db calls). I started looking in the CakePHP docs and found: http://book.cakephp.org/view/1033/counterCache-Cache-your-count It was missing my ability to cache the amount of upvotes and downvotes (named upvote_count and downvote_count) in my database. I figured out a solution with a bit of OOP magic and derping around in the Model.php from Core. The code I have written is definitely not optimized. If you have better alternatives or code to make it perform better, please comment. <?php class Vote extends AppModel { $name = 'Vote'; $belongsTo = array( 'Item' => array( 'className' => 'Item', 'foreignKey' => 'id', 'counterCache' => true, ), ); // Overwrite for recounting up/down votes on counterCache public function updateCounterCache($keys = array(), $created = false) { $response = parent::updateCounterCache($keys, $created); // Here is the hook for custom recounts. $this->recountVotes($this->data['Vote']['item_id']); // Return the parent::updateCounterCache to make it appear like nothing changed. return $response; } protected function recountVotes($item_id) { // So this gets a count of the counterCache columns we'd like to make happen. $record = array( $this->alias => array( // WARNING: Direction is an INT(1) instead of TINYINT(1) to allow for a negative in my case. 'upvote_count' => $this->field('COUNT(`id`)', array('direction' => 1, 'item_id' => $item_id)), 'downvote_count' => $this->field('COUNT(`id`)', array('direction' => -1, 'item_id' => $item_id)), 'id' => $item_id, ) ); // Then update the table it belongs to. $this->query(sprintf('UPDATE `items` as `Item` SET `Item`.`upvote_count` = %d, `Item`.`downvote_count` = %d WHERE `Item`.`id` = %d', $record[$this->alias]['upvote_count'], $record[$this->alias]['downvote_count'], $record[$this->alias]['id'] )); return true; } } I hope someone finds a use for this ability until CakePHP natively supports it.
  3. I would assume this code to work: foreach($a->result as $node) { $node->nid; } Using your expression (and assuming you're doing drupal), I believe the code you're looking for is similar to: $views_handle_field_node->view->result[$i]->nid Hope this helps.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.