Web · Wiki · Activities · Blog · Lists · Chat · Meeting · Bugs · Git · Translate · Archive · People · Donate

Commit 530261effe486f0e5c7664796aad13e942b54993

  • avatar
  • jbalogh@mozilla.com <jbalogh @moz…la.com@4eb1ac78-321c-0410-a911-ec516a8615a5>
  • Fri Oct 09 18:20:39 EDT 2009
bug 519859, adding adu sort to getAddonsFromCategory, supporting personas

git-svn-id: http://svn.mozilla.org/addons/trunk@53160 4eb1ac78-321c-0410-a911-ec516a8615a5
  
6161 'joinTable' => 'addons_collections',
6262 'foreignKey' => 'addon_id',
6363 'associationForeignKey' => 'collection_id'),
64
65 'Tag' =>
66 array('className' => 'Tag',
64
65 'Tag' =>
66 array('className' => 'Tag',
6767 'joinTable' => 'users_tags_addons',
6868 'foreignKey' => 'addon_id',
6969 'associationForeignKey' => 'tag_id'
103103 ),
104104 'UserTagAddon' =>
105105 array('className' => 'UserTagAddon'
106
106
107107 )
108108 );
109109
295295 $fields = array_merge($fields, array('the_reason', 'the_future',
296296 'annoying', 'wants_contributions', 'paypal_id', 'suggested_amount'));
297297 break;
298
298
299299 default:
300300 debug("Association $association not declared!");
301301 break;
315315 'Version.id' => $this->Version->getVersionByAddonId($id,
316316 ($addon['Addon']['status']==STATUS_PUBLIC ? STATUS_PUBLIC : $valid_status))),
317317 array('Version.id', 'Version.version', 'Version.created'));
318
318
319319 if (!empty($buf[0]['Version'])) {
320320 $addon['Version'][0] = $buf[0]['Version'];
321321
412412 */
413413 function getAddonsFromCategory($status = array(STATUS_PUBLIC),
414414 $addontypes = ADDON_EXTENSION, $category = 'all', $sort_by = 'name',
415 $direction = 'ASC', $limit = '5', $page = '1', $friends = '') {
415 $direction = 'ASC', $limit = '5', $page = '1', $friends = '',
416 $personas = false) {
416417
417418 $this->unbindFully();
418419
430430 // if cat == all, don't worry about the category. Otherwise only select the chosen one.
431431 $add_joins .= "INNER JOIN addons_categories AS at ON (at.category_id = '{$category}' AND at.addon_id = Addon.id) ";
432432 }
433 // only select add-ons that have any files to offer
434 $add_joins .= "INNER JOIN files AS File ON (Version.id = File.version_id AND File.status IN (".implode(',',$status).")) ";
435433
434 if (!$personas) {
435 // only select add-ons that have any files to offer
436 $add_joins .= "INNER JOIN files AS File ON (Version.id = File.version_id AND File.status IN (".implode(',',$status).")) ";
437 }
438
436439 // Facebook friends
437440 if (!empty($friends)) {
438441 $add_joins .= "INNER JOIN facebook_favorites AS ff ON ff.addon_id = Addon.id ";
474474 case 'newest':
475475 $orderby .= 'Addon.created';
476476 break;
477 case 'adu':
478 $orderby .= 'Addon.average_daily_users';
479 break;
477480 case 'name':
478481 default:
479482 $orderby .= 'IFNULL(tr_l.localized_string, tr_en.localized_string)'; break;
504504 ."AND Addon.inactive = 0 "
505505 ."{$where} {$groupby} {$orderby} {$limitclause}";
506506 } else {
507 if (!$personas) {
508 $add_joins =
509 "INNER JOIN versions AS Version ON (Addon.id = Version.addon_id) "
510 ."INNER JOIN applications_versions AS av ON (av.version_id = Version.id AND av.application_id = ".APP_ID.") "
511 .$add_joins;
512 }
507513 $sql = "SELECT {$select_field} FROM addons AS Addon "
508 ."INNER JOIN versions AS Version ON (Addon.id = Version.addon_id) "
509 ."INNER JOIN applications_versions AS av ON (av.version_id = Version.id AND av.application_id = ".APP_ID.") "
510514 .$add_joins
511515 ."WHERE Addon.addontype_id IN(".implode(',',$addontypes).") "
512516 ."AND Addon.status IN(".implode(',',$status).") "
793793 */
794794 function getCollectionPublishDetails($addon_id, $collectionId) {
795795 $this->unbindFully();
796
796
797797 // comments are en-US only
798798 $sql = "SELECT addons_collections.added, translations.localized_string as comment, users.id, users.firstname, users.lastname, users.nickname
799799 FROM addons_collections
803803 ON users.id = addons_collections.user_id
804804 WHERE collection_id = {$collectionId} AND addon_id = {$addon_id}";
805805 $data = $this->query($sql);
806
806
807807 $details = array(
808808 'dateadded' => $data[0]['addons_collections']['added'],
809809 'publisher' => $data[0]['users'],
840840 $sql = "UPDATE addons SET sharecount = sharecount + {$number} WHERE id = {$addonid};";
841841 return $this->execute($sql);
842842 }
843
843
844844 /**
845845 * adds a tag to an addon
846846 * -using saveAuthor() as an example
853853 $sql = "INSERT IGNORE INTO users_tags_addons set user_id = {$userId}, tag_id = {$tagId}, addon_id = {$addonId}, created = now()";
854854 $ret = $this->execute($sql);
855855 }
856
856
857857 /**
858858 * -trigger trg_tag_stat_dec will update tag_stat
859859 */
861861 if (!(is_numeric($user_id) && is_numeric($tag_id) && is_numeric($addon_id))) {
862862 return false;
863863 }
864
864
865865 $this->execute("DELETE FROM users_tags_addons where user_id={$user_id} AND tag_id={$tag_id} AND addon_id ={$addon_id}");
866866 }
867
867
868868 /**
869869 * -trigger trg_tag_stat_dec will update tag_stat
870870 */
874874 }
875875 $this->execute("DELETE FROM users_tags_addons where tag_id={$tag_id} AND addon_id = {$addon_id}");
876876 }
877
877
878878 /**
879879 * Gets all the tags for this addon
880880 */
884884 foreach ($userTagAddons as $uta) {
885885 $tagIds[] = $uta['UserTagAddon']['tag_id'];
886886 }
887
887
888888 return $this->Tag->findAllById($tagIds,null,"Tag.tag_text asc");
889 }
890
889 }
890
891891 /**
892892 * use bindOnly() before you use this function!
893893 */
896896 foreach ($users_tags_addons as $uta) {
897897 $tagIds[] = $uta['UserTagAddon']['tag_id'];
898898 }
899
899
900900 if( count($tagIds) > 0)
901901 return $this->Tag->findAllById($tagIds);
902902 else {
903903 return array();
904904 }
905
905
906906 }
907
907
908908 /**
909909 * use Addon->bindOnly() before you call this function!
910910 */
913913 foreach ($users_tags_addons as $uta) {
914914 $addonIds[] = $uta['UserTagAddon']['addon_id'];
915915 }
916
916
917917 if( count($addonIds) > 0)
918918 return $this->findAllById($addonIds);
919919 else {
920920 return array();
921921 }
922
922
923923 }
924924
925925 /**
929929 $userTagAddons = $this->UserTagAddon->findAll(array('user_id' => $user_id));
930930 return $this->getTagsByUserTagAddon($userTagAddons);
931931 }
932
932
933933 /**
934934 * use Addon->bindOnly() before you call this function!
935935 */
937937 $userTagAddons = $this->UserTagAddon->findAll(array('tag_id' => $tag_id));
938938 return $this->getAddonsByUserTagAddon($userTagAddons);
939939 }
940
940
941941 function acceptContributions($addon) {
942942 $a = $addon['Addon'];
943943 $this->Config =& new Config();