Popular Content

Showing content with the highest reputation since 04/26/2018 in all areas

  1. 2 points
    Using the link below: https://invisioncommunity.com/developers/docs/fundamentals/accessing-the-database-r166/ You should be able to compare the reactions table and the information from the active record and do what you want. Have fun!
  2. 2 points
    At this point here I believe you could create a new condition based on receivers specific rep points. pp_reputation_points = total number of rep points the content author has which will increase with each positive reaction (see below). Using the below you could do something with the content author's total. Though, the below doesn't take into account if that particular reaction event was 0 or -1. The condition below doesn't know if the Author's rep points actually went down because it's not comparing the original # of rep points and what affect the event has on that total. Basing everything on reactions only being positive, meaning there is no neutral or negative ratings, would assume that every reaction event = a positive increase in the Author's total. I haven't considered 0 or -1 only 1, which makes things easy(er)(ish). The below is a simple example and might be totally wrong. Winging it. //<?php foreach ( $changed as $key => $data ) { if ($key == 'pp_reputation_points') { $repPoints = $key['pp_reputation_points']; } } if ($repPoints > 10) { return TRUE; } return FALSE; An example action for the above would be: Since the author has above a 10 reputation, we're going to give him 1.5 points economy points vs. 1 point for someone with a reputation under 10 who receives a reaction.
  3. 2 points
    The active record event returns a response when a reaction is given. That's the only event I could think of to use that would apply. If the active record $record or $changes matches a pull from the reputation table then I guess you would have a match which could be manipulated. Maybe pull the item_id, rep_rating, and member_id from the core_reputation_index which appears to have all the reputation data. Then compare that data from the active record, $record->item_id, $record->member_id I think, and see if both those are in the core_reputation_index. If both of those are in that table, then then that member gave rep to that content. IDK. I'll play around with it. Probably won't work. And if it's pulling data from the database every active record hit, that wouldn't be good. So there would have to be more conditions to weed out the junk... I assume. There is a column in the above table for the type of reaction. So that could also be pulled to further narrow down the member, content id, and type of reaction.
  4. 2 points
    Is there an action for flagging as spammer? I do not remember on top of my head, so my suggestion is kinda rough, but something like this. Create a custom data field of integer type, connected to a member that contains number of reports. Rule 1: Event: Content is reported Action: Add +1 to the created custom data field. Rule 2: Event: Custom field is updated Condition: is the value of the created custom field > 5 Action: flag member as spammer Something like that. Sorry, I am a bit tired, so it probably needs a lot of work to get it going, just a direction you can think about.
  5. 1 point
    The base condition is going to use php code to check if pp_reputation_points is in $changed. I believe, after testing, that this 1 rule will separate all the junk and return true only on reaction changes. This code will do that, I believe. //<?php foreach ( $changed as $key => $data ) { if ($key == 'pp_reputation_points') { return TRUE; } } return FALSE; I'm winging this.. figured I'd throw the above out there for people to test.
  6. 1 point
    Try to move it into another, invisible forum/collaboration instead, so no one will see it.
  7. 1 point
    Forums topics are actually two pieces of content. The topic itself is content and its content is stored as the first post which is also content. The content of a topic is not available as the ->content property, only the posts. To get content from a topic object, you use the ->content() method.
  8. 1 point
    I can't see anything obviously wrong with your ruleset configuration. Looks pretty good to me. What you need to do is enable debugging on the ruleset and then perform the activity which you expect the rules to evaluate for (publishing a review), and then inspect the debug logs for the rules and see what shows up.
  9. 1 point
    If I can get them implemented and working automatically, I might do that. Most are specific to the reactions I've added to the site. Here's a few of them, it's a constant work in progress, tons of the temporary titles have already been renamed.
  10. 1 point
    You can do that with Rules with Bulk actions. I very much doubt points economy will get any features that can be created with Rules, the two apps complement each other.
  11. 1 point
  12. 1 point
    If your condition is that the number is greater than 0, then they will continue to be awarded on every review, because 2 reviews is greater than 0, and so is 3. I would set the condition that the number is equal to a specific number of reviews so that it only happens when the number reaches that singular value.
  13. 1 point
    Create custom data field to track the number of reviews. Rule 1: Event: article is published Action: increase the value of the custom data field by one Rule 2: Event: custom data field is updated Condition: is the value >1, 5, 10, etc Action: award a medal. Need some working, but this should be the basic idea.
  14. 1 point
  15. 1 point
    If spammers are an issue, I would use the Cleantalk mod. Best money I ever spent. I don't even use captcha anymore.
  16. 1 point
    Just off the top of my head, you're probably going to need to first create an action which records the number of reports for each member. Assuming that you're starting this after members already have been flagged for something in the past. Once you have that record of reports, the action will be to look at the record and see if it >= X. If it equals X then flag as spammer. Hope this helps!
  17. 1 point
    Rules is extremely powerful app, but not the most user friendly, that's a known fact. This prevents it from getting popularity it deserves both with the members and other developers. My suggestion here is to fix the issue with user friendliness, of course if it is possible. So, we can export our rules as XML and give them to others. shortening the path for them, but unfortunately this does not improve the user friendliness by much. You can serve a perfect rule on a plate, if the other side does not understand it, they won't be able to make the small tweaks required to customize a rule for their use case and we are back at the start. My suggestion is to build another layer in the app, allowing us to export rules as a plugin with settings. So the other users won't have to modify the events/conditions/actions, they will just change a few settings that we expose to them. For a simple example lets take the "send member a welcome pm" use case. Right now you need to create event (member is validated) and action (send the pm from this author). The last sentence is in foreign language for almost all people. It will be much better if I can create the "rules" logic and export it as a plugin that has two setting fields - one for sender, one for the message and thats it. The end user just needs to have the core of the Rules installed and they don't have to care about events, conditions and actions, this is all taken care of under the hood. This will allow many of us to share our creative rules in a way that is simple for the others and won't require excessive support. Right now I do have some creative stuff (I think) and I do have even bigger ideas. But I definitely don't want to provide my ideas on the marketplace and be forced to deal with all the questions that will come with the more complicated rules. So it will look like this: Kevin - develops and supports the core, everyone will have to have this. People like me - provide creative rules as plugins. The heavy lifting of the development will be taken care of in the core, we can use our creativity to develop final solutions for the ordinary users. We will also support our plugins with answering questions, improvements, etc. Ordinary users - they will buy the plugins and the core. So no contribution from their part, except increasing the popularity of the app and the plugins and providing monetary compensation to the other two layers. I hope this is doable and I am sure it can bring some life in to the application, because I frankly think right now it is almost abandoned. There haven't been any new features related to 4.2 and 4.3 and even though @Kevin Carwile supports it with the rare bug fix here and there the development to me is far from where it needs to be.
  18. 1 point
    Collabs are an organization of "apps", not "forums". This is why you see a summary of the all the "apps" type content in the collab and not a breakdown of some arbitrarily picked categories from a single app that is in the collab. I can only suggest that you attempt to customize the template for the collab row to accomodate your specialized needs. Theme > front / components / collabRow ~ line 104 - 117
  19. 1 point
    Ok. Please try using this patch file and see if you have a different result. ./applications/collab/hooks/ipsMember.php ipsMember.php
  20. 1 point
  21. 1 point
    I'm proud to be one of the first six users, who support Kevin's application by purchasing it on the marketplace I hope, that being a part of Miller Media and starting to get payments for the Points Economy application, Kevin will also start to consider implementing new features to this great application! I've checked trough the topics in this category, and found many good ideas worth to be implemented. I summarize them here for easy search and analysis: Besides of the gaming plan you wrote in the second post of this topic, the other good ideas are: - more graphs on the Economy Dashboard; - new widgets: 1) showing the Top-X users who got most points within a specific time period (day/week/month/year), 2) showing the most *rich* people among the users, who have points in a specific currency. (this info we have in the ACP, great to have it available somewhere on the forum). - ability to adjust points manually for the specific users groups (moderators) on the front end (without using the ACP), - Donations - When changing points from one currency to another, there should be a field somewhere on the Economy Dashboard, showing the current exchange rate between these currencies; - Reactions support! Would be great to find out the solution for this issue - the whole reputation system is currently out of our control which is very bad... By the way, the new addon called "Points" has the new Reaction system support: the points can be earned/lost according to the reaction given!
  22. 1 point
    This recipe adds a custom data field to forums which can be used to make topics posted in the forum automatically expire after a set number of hours. A custom action is used to schedule the locking of the topic at the given time. This recipe could easily be tweaked to extend the scheduled lock time if the topic author re-posts or under some other condition. auto-expire-topics.xml
  23. 1 point
    I get this question a lot. But it doesn't quite work that way. Apps implement a rules extension on their own. Rules doesn't extend them. The rules extension is what tells Rules how to use any available events, conditions, and actions available for a particular app, and is a component that gets packaged with the app itself. I dont maintain or distribute the "such and such" app so I dont have a way to include that extension myself. But I've been pretty open in my offer to help other app authors add a custom rules extension to their apps if they need help with that. They just need to come to me with an idea of what events, conditions, or actions they want to add and provide me with a dev copy of their app and I will happily help them get a baseline extension up and running for them to include in a future release. In the early days of rules, I actively pursued app authors on my own to offer my service of creating a rules extension for their app for them while considering what ECA's would be a good fit, and aftwr I would build it on goodwill and send it to them, some would not even include it since they didnt really understand the benefits. So I built extensions that never even got rolled into the other app by the app author. I'm too busy for that these days. I am happy to help, but only on specfic request and in cooperation with the app author themselves.
  24. 1 point
    It is fairly common to have an action or set of actions that you would like to perform on a piece of content (or member) only after a certain amount of time has elapsed between particular events. For example, you might want to: Close a topic automatically a certain amount of time after it was created. Move a topic to a different forum if it hasn't been posted in for a certain amount of time. Send members a polite follow up email if they haven't logged in for a specified period of time. There is a simple pattern that you can use in all of these cases, which isn't so obvious to those that are new to rules, but is very easy to implement once you understand how it works. Why does this work? It's in the keyphrase. Let's take a look at example #2 above. We want to move the topic if it hasn't been posted in for 3 weeks. So what we do is to create an action to move the topic to the new location, and schedule that action for 3 weeks in the future instead of executing it immediately. This way each time a post is made in the topic, the move gets rescheduled. It's important to use a keyphrase that will be unique to that topic, so we must include a token in the keyphrase such as the topic id. It could look something like this: "Move topic [content:id] to graveyard". Of course, the token that corresponds to the id of what you are trying to move will depend on the event that you are writing your rule for, so make sure to look at the tokens list to see which token corresponds to your content id. But the concept is pretty simple. With every post, we assume that it is going to be the last post that happens... and we schedule the future action for the set amount of time in the future. If another person posts in the topic, we simply schedule the future action again which removes any previously scheduled follow up action with the same keyphrase, and sets in motion the new follow up action. This way the only follow up action that is in motion for the topic is the one which was scheduled after the last time the chosen event occured (in this case, it's when a topic comment is posted). If no qualified event happens within the timeframe between the last action and the follow up action which causes the follow up to be rescheduled, then the follow up action executes and the cycle ends.
  25. 1 point
    Synopsis Unlock and create all new features on your site by attaching rules to commerce events. A solution is available which adds the following ECA’s to rules. Events: Automate site features based on commerce events An invoice is marked paid/unpaid A product line item has been paid/unpaid on an invoice A product renewal has been paid/unpaid on an invoice A product purchase has been generated A product purchase expiration has been changed A product purchase has expired A product purchase has been cancelled A product purchase has been deleted An expired product has been re-activated A product purchase has been transferred to a new customer A payment has been received on an invoice A payment has been refunded on an invoice A payment has been blocked by a fraud rule A fraud rule has been checked Conditions: Easily check for commerce conditions Check for a specific product or products Check if a product is in a certain product group Check if an invoice has specific products on it Check if an invoice has a particular status Check if a member has purchased certain products Check the status of a transaction Check the method of a payment Actions Change the status of an invoice Trigger a fraud rule match Advanced Fraud Prevention: Check for specific situations using advanced fraud rules This expansion unlocks the full power of the MaxMind fraud feedback service and allows you to create advanced fraud rules which use the full range of available fraud data for every transaction. The following data is made available for you to use in rules: Documentation: http://dev.maxmind.com/minfraud/#Output Risk Score: The risk score of the transaction Proxy Score: The risk score of the users IP address Anonymous Proxy: Indicates if proxy is anonymous Corporate Proxy: Indicates if proxy is corporate Country Match: Indicates if IP country matches the billing address. City/Postal Match: Indicates if the city matches the postal code Phone Match: Indicates if phone number is in billing area High Risk Country: Indicates if IP country is high risk High Risk Shipping: Indicates if shipping address is high risk IP/Billing Distance: Distance in KM between IP and billing address IP Accuracy: Accuracy radius of the IP location IP City Name: The city associated with the IP address IP Region Name: The region associated with the IP address IP Country Name: The country associated with the IP address IP Region Code: The region code of the IP address IP Postal Code: The postal code of the IP address IP Metro Code: The metro code of the IP address IP Country Code: The country code of the IP address IP Continent Code: The continent code of the IP address IP Latitude: The latitude of the IP address IP Longitude: The longitude of the IP address IP Timezone: The timezone of the IP address IP Autonomous System Number IP User Type IP Connection Type IP Provider IP Organization Region Confidence Rating Postal Confidence Rating Country Confidence Rating MaxMind Error