Jump to content

Luke

Clients
  • Posts

    6,954
  • Joined

  • Last visited

 Content Type 

Downloads

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog

Development Blog

Deprecation Tracker

Providers Directory

Forums

Events

Store

Gallery

Everything posted by Luke

  1. The theme stuff I believe is set by a few lines of javascript before the reCaptcha is initiated. You could, technically, but this javascript in the wrapper. That way any page with a reCaptcha would have the new theme settings.
  2. I think vBulletin simply uses a forum category for reports, or maybe that was another forum software? At any rate, a forum doesn't cut it. Why? Because the Report Center has a variety of status's that weights the reports by how many reports a particular post has got, and how old the report is (all customizable). It also separates the actual reports from the comments. I've done the research and field testing to prove it. To be quite honest, all moderator discussions should either be comments in a report, or comments under the user account through the warning panel. If an extensive discussion needs to take place regarding a particular member, then a topic could be created in the moderator forum (although I would suggest linking that topic to the user in the warning panel). The idea behind the report center is to allow moderators to work together more efficiently. Downgrading to a forum would be going backwards. I do agree that improvements should be made. For instance a search would be very useful. Keeping track of read/unread reports would be nice as well, although the status are really what's important - if something isn't marked completed, it should be. But for comments or new reports, I see how that can be needed. You can already customize what status's are considered "new" to be in the number. Adding the ability to rep moderators... Don't see the use in it myself. One thing I think would be useful: Show reports in line with the comments in the warning center. That way you could see what comments were made by a moderator about a particular member, and see topics/posts of theirs that was reported with the current status. Would give a moderator a more clearer "history" of a member. Perhaps when a moderator creates a topic regarding a particular member there could be a box to type in a member name to link that topic of discussion to the warning panel. I *think* you can also make comments in the warning panel without adjusting the warning level as well, but I'm not sure.
  3. Currently you have the ability to ignore someone's posts and ignore someone's personal conversations. I believe if you ignore someone in personal conversations, they can't send you one. What I would like to see is a couple options to expand the ignore posting part. 1) An option to forbid a user from posting in your topics. 2) An option to either completely hide a post from view (as in no "This user has posted. Do you want to see it anyway?"), or make it much more condensed. The purpose of ignoring a particular user is that you get annoyed by their posts. But that annoyance still remains even if you can't see what they posted but know they posted in line with the rest of the posts. I know there has been some comments about this like "What if someone else was replying to this person and it caused confusion". Well in this case how about something near the top of the topic out of the line of posts that says "X posts hidden". I can see it, skip past it, and half-way forget about it when I start reading. Essentially don't give me a reason to click on "read it anyway" because if it's in line with the posts, I'm more likely to do so, thus making the ignore feature useless.The whole point of this is -- please make this not inline. It defeats the purpose of ignoring posts.
  4. *cough* do it for 3.1 *cough*
  5. What happens when the customer replies to the ticket? Does the weight of sorting change at all?
  6. Given that there is an option to prevent tags from being parsed within a set of tags, wouldn't that mean that tags are processed in the order of nesting, meaning that they wouldn't be parsed yet?
  7. Fair enough. I do believe the "MEMORY" engine is different than the "HEAP" engine which is what you would have used back then. The "MEMORY" table is supposed to have everything loaded in ram, so I don't know why there would be any table locks as nothing is actually written to disk. The only thing I can think of is perhaps there were too many rows that were inactive and it wrote to disk temporarily... but fixing that may be a simple matter of configuring the table differently than the engine defaults (I think that's correct?).
  8. Isn't the quote tag run through a plugin? I'm pretty sure that it is given that there is an option to strip out sub-quoted items. Assuming that it is, couldn't you do something along the lines of this to the content inside the quote tag that's passed to the plugin: $content = str_ireplace(array('[media]', '[/media]', '[img]', '[/img]'), '', $content); That way when the quote plugin returns the contents there are no media and img tags to parse further. And the only thing left behind are the links between media and img.
  9. You know what else would be neat: 1) Have the media tag show a link within a quote. 2) Have img tags and uploaded images show a link or icon that you click to show the image (image doesn't load by default, but loads when clicked). That way images that get quoted don't get in the way.
  10. After you choose which PHP version you want to compile you need to scroll to the bottom and click "Exhaustive Options List". From there un-check suPHP and then check "Mod FCGID" and "Fastcgi" (first is under Apache, second is under PHP). Then at the end of the build choose fasgcgi as the way PHP connects to Apache. cPanel automatically uses suExec to set each account to use their user, so there is no need for suPHP. If you do not have it make sure that cPanel is up to date. I'm using v11.24.5. There are several options like "Update Server Software", "Update System Software", and "Upgrade to Latest Version" (you'd run the latest version update last).
  11. Wouldn't you want your sessions table to be using the MEMORY instead? InnoDB may be a better option in some regard, but for all of the above MEMORY is the way to go when the information is temporary (info stored doesn't survive a reboot). I would also recommend FastCGI + suExec vs. mod_php + suPHP as I believe suExec is more secure, and FastCGI is more resource friendly. On shared enviroments you have to use a wrapper script for PHP because of the tight restrictions with suExec.... but if you're running a single site it's not that big of a deal. I've also heard great things about lightHTTP (also supports fastcgi) vs Apache, although I've had no experience with it. I've seen some benchmarks where lightHTTP outperformed Apache at a fairly high margin. But because of the experience I have with Apache, I'm sticking with it unless I really have the need or there is a feature that trumps Apache in a huge way.
  12. The year on the date of birth became optional in IPB 3. So it'll show someone's birthday without showing their age now (finally).
  13. How are you importing the database? Sounds like a timeout.
  14. I compile everything from source. The only thing I don't compile is MySQL only because the repositories are close enough to what everyone else uses, and it's easy to update when I need to. But Apache, PHP, etc.... Easy enough for me to download the latest sources and compile. I do like cPanel and EasyApache as I can grab the latest of what I need (usually) and compile it all with a few clicks. But sometimes having the raw power of compiling your own stuff is just very helpful.
  15. As in the other topic I would recommend fcgi over mod_php, which uses Apache's suExec, which does pretty much the same job as suPHP.
  16. Alright... First I would check the memory allotment for MySQL. You may need to increase the available memory for MySQL. Given the top you gave (although `top -c` I find is more helpful), I only see MySQL at the top. This, however, does not mean that MySQL is to blame because most of the processes you have running are Apache processes. What I would highly recommend doing is switching from mod_php to FastCGI (specifically mod_fcgid). The difference between mod_php, and fcgi is this: mod_php: Loads PHP as an Apache DSO (apache module) which means that for every HTTP request to your server, PHP and all of it's plugins is loaded into memory. If you have 500 users on the server every request loads PHP and it's plugins into memory that many times. And it's not just for .php requests either: This includes requests for .html, .jpg, .png (anything), etc... So for every page request multiply it by how many images you have. When the request is finished, the memory is recycled. However, the more users you have the more likely it is that your request pool is filled (Apache has a certain number of processes it can spawn, and once filled the request is "queued" until a slot is avaiable. This is how you start getting timeouts). fast cgi: It uses the cgi version of PHP. The difference between fcgi and mod_php, however, is that fcgi has it's own service and request pool separate from Apache. What this means for you is this: When Apache gets a request if it's anything but a .php file it handles the request and doesn't have to load anything else into memory (php and plugins are not loaded). If it is a .php request Apache hands the request off to the fcgi service to handle the request. The benefit in this is that fcgi only loads php and it's plugins into memory once, and non-php requests do not load php into memory. The draw back to this is you don't have as tight integration with Apache because PHP is external, but unless your doing HTTP authentication (Basic or Digest) in PHP, you shouldn't really notice much of a difference. (There is also cgi - essentially Apache loads PHP for every request externally. Very slow, much like mod_php in that it loads PHP for every request). Some other things to consider: - If you're using mod_php, which has been standard for a long time (fcgi is realitvely new), PHP is running as the user "nobody" (on Linux servers). What this means is if you upload files via FTP you're uploading them as the Linux user that was assigned to you by WHM/Cpanel. PHP cannot write to these files or directories unless they are chmoded to 0666 or 0777 (CHMOD is a common request among PHP apps like IPB). Likewise files written by PHP with the user nobody cannot be deleted via FTP unless the application CHMODs the files as 0666 or 0777 (these are usually user uploaded files). When a file is CHMODd as 0666 or 0777 it is writable by ANYONE on the server. So if you're on shared hosting another user could write to or delete that file. (Usually for this reason PHP has open_basedir enabled which prevents PHP from accessing files outside it's home directory). You *can* use SuPHP to make PHP use the same user, but I've heard bad things about it security wise (you don't want to get root hacked). - If you're using fcgi it takes advantage of Apache's SuEXEC which, like SuPHP, allows you to run PHP under each user's account. This means that you no longer have to CHMOD anything as PHP runs as the same user as your FTP. The issue is, however, that PHP can write to ANY file within your account, including source files. Some see this in itself as a security issue. The benefit, however, is that each user can only write to his/her files (unless they CHMOD'd them). For me personally I'd rather the user shoot their own feet rather than expose everyone elses content to risk (usually the uploaded files in PHP are more important than the source files, which are generally replaceable). - If you are using mod_php you usually can't take advantage of Apache's "MPM Worker" which takes advantage of multi-threading. There is some issue with PHP when loaded as a DSO module and multi-threading. To handle requests Apache opens up multiple processes to handle requests. If you use fcgi you are capable of using "MPM Worker", which has some benefits. I would recommend trying it out. Another thing to consider is a cache engine like eAccelerator. This tremedosly speeds up PHP requests. PHP is a scripting language and does not compile scripts. Each script is loaded from disk and converted into byte-code. What PHP cache engines do (generally) is convert PHP scripts into byte-code and cache it so that the next request doesn't have to do it (eliminates some steps). The result is the PHP scripts are loaded faster so they can be executed. There are some other engines out there (some better than others). If you have cPanel/WHM all this is extreemly easy to setup through EasyApache (literally checking boxes and telling it to compile). Another thing to consider is increasing how much RAM you have. 4GB is a nice amount, but you may consider increasing it. If you run out of physical memory, you're just going to start using SWAP, which will just shoot the server load up exponentially. If at all possible, the 64-bit version of CentOS 5 would help out as well. This would mean having to reformat the OS, however, so it may be a tad late to change that.
  17. Could always do an edit to disable the feature for logged in users but not for guests. Not exactly sure how to do this though.
  18. This may take a modification, but since each bbcode is in a plugin couldn't you do something like this on the text inside the quote tags: $content = str_ireplace(array('[media]', '[/media]'), '', $content); This would effectively remove the media tags and leave the link to the media. If you have the ability for the contents of a bbcode tag to be not parsed further, a file modification like this should be possible.
  19. Brandon, I also think you're making this harder than it needs to be. I'm going to make some assumptions here, so please bear with me. When a new attachment is made within the topic a single record is made in the attachments table linking to the topic in question. When the topic is loaded it loads all the attachments linked to it into memory. Then when the attachment bbcode is crossed it replaces valid attachments. Does this sound about right? So the problem I see with this is if you put an attachment bbcode in that was not loaded when the topic record was got, then you have to verify that the user has the permissions to view each attatchment. This, as you said, would be resource intensive because you'd have to load the attatchments individually and verify their permissions individually. The current system, as I understand, simply loads the attatchments that are linked to the currently viewed topic. What KT is getting at is if you put in an attatchment bbcode into a post that is not in the topic you can, at posting time, verify that the attatchment belongs to the poster and add a new record (new attatchment id) to the attatchments table. What you'd have to do, however, is physically change the attatchment bbcode to the new id (although if the file name is based on id, you'd need to duplicate the file too, which is not very good). I don't really know exactly how it works right now, but it seems to me that it can still work exactly the way it is now... You just need another record pointing to the same file and make sure that if one link is deleted the file isn't until all attatchment links (records) are deleted. It would take a few changes, but I don't believe it's that hard to do. The whole idea is to have an attatchment record for every topic the file is posted in (origonally by the owner of the attatchment), and have it link to the same file. (Keep in mind that I understand that it would be nice to have every xyz feature and these things take time. I'm just reiterating a hopefully simpler approach)
  20. Well they do have a sort of framework called IP.Nexus that was supposed to do something very similar. Unfortunately the plan was to keep IP.Board separate from this. I would have suggested that IP.Board just be an "application" of IP.Nexus :P (IP.Nexus was put on hold - it does a lot of business releated things). Issue is right now IPB is to much the framework, and that is too difficult to change at this point. And even if they were to make IPB an application in a generic framework made by IPS, that still doesn't solve the problem of your site uses XYZ framework. The best you can really do is IP.Converge which links login systems (basically). IPB might have it's users table, but all the authentication can be based on something else by using IP.Converge. I do agree that linking the design from any forum to an existing site using a third party content management system is rather difficult. But that really can't be helped. To help with this, there's IP.Content to create your site within IPB. Also agree that the tabs on the skin could be more easily managed. Again you could hack it out of the templates and create an app to manage this. Perhaps just make a hook to override it without changing the templates.
  21. Also on many browsers (don't know about IE, don't use it) you can hold down Ctrl (or Command on Mac) while clicking to open any link in a new window (or more accurately tab).
  22. Have you tried reporting it in the tracker?
  23. So what you're saying is a feature that allows you to size the original image to a max size? I would agree, and the default should be 800 x 600. Almost every image I click on this forum goes over my monitor size, and I'm at the highest my monitor can reach. That may be, however, the limitation of the lightbox and it not auto-sizing to the dimensions of my screen like some of the other lightboxes I've seen does.
  24. I get a bit crazy when query counts get >= 15 for page loads :blink:. Some advanced pages usually reach no more than 20 (although it's rare).
×
×
  • Create New...