-
Posts
288 -
Joined
-
Last visited
-
Days Won
10 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by Ayaka
-
-
Quote:
INSERT DELAYED works only with MyISAM, MEMORY, ARCHIVE, and (as of MySQL 5.1.19) BLACKHOLE tables. If you execute INSERT DELAYED with another storage engine, you will get this error.
as simple as it is. Change the storage engine.
- 1
-
Add some basic settings:
-
:main @echo OFF @echo ¯ Aemon, metin2dev.; @echo metin2dev.com. @echo --- :rename set OLD= set /P OLD=Choose the old extension : %=% if "%OLD%" == "" GOTO error set NEW= set /P NEW=Choose new extension : %=% if "%NEW%" == "" GOTO error @ren *.%OLD% *.%NEW% @echo .%OLD% files have been renamed to .%NEW% @echo --- GOTO fine :errore @echo Error! @echo Choose a valid extension! @echo Restart the program and try again. @echo --- GOTO Exit :fine @echo You change the extension, good job... :Exit @pause
Paste it in a notepad, and save it with .bat extension.is this realy a good solution? by just renaming a file you didnt change the image compression
-
-
My auction house has the following features:
- Detailed log of auctions for SAs
- SA options in the AP
- Auction display with real-time countdown
- Display of auctions
- Storage of Items
- Replacement of unsold items to IS stock
- Definition of ID section. Its a feature to prevent double entrys because of ingamedrop IDs (hope i understood this right):
-
There are many ways to realise a multi language system. I prefer an array like:
english.php:function lang($a){ static $lang = array( 'PLACEHOLDER_1' => 'This is a test', 'PLACEHOLDER_2' => 'Another test' ); return $lang[$a]; }
usage examples:
<?php // simple echo lang('PLACEHOLDER_1'); // or like this echo "<div class="text">".lang('PLACEHOLDER_2')."</div>"; ?>
-
i will release a first version when i have following features finish:
- user management (User rights, ban,...) (30% done)
- voting management (40% done)
- auctionshouse (50% done)
- itemshop (0% done)
Funny is that the whole code of this cms is by me atm.. i didnt use any code form hen! yet.
- 4
-
You mean to change the time until a item disappear?
-
Add register:
Now the register is finish
Passwort strength live check. You cant create an account if your passwort is too weak:
var t = 0; if (e.length < 6)
if (e.length > 7) t += 1;
>>>
if (e.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) t += 1; if (e.match(/([a-zA-Z])/) && e.match(/([0-9])/)) t += 1;
>>>
if (e.match(/([!,%,&,@,#,$,^,*,?,_,~])/)) t += 1; if (e.match(/(.*[!,%,&,@,#,$,^,*,?,_,~].*[!,%,&,@,#,$,^,*,?,_,~])/)) t += 1;
>>>
Example for wrong input (the script check all parameters and inputs for sure ):
When all is right:
- 2
-
What about payment methods? PSC, Paymentwall? Others?
PayPal Psc
Should i work with with the Paypal API to check automatically when a payment was successfull to pay out coins directly?
// Edit:
Im coding a feature for team meetings atm:
SA, SGM can view and add team meetings with adding regular attendance of GMs. So you can check and have alist if a Teammember is reliable or not.
-
Im not realy sure but open your VIP .mse file and search for
List TimeEventPosition { 0.000000 "MOVING_TYPE_DIRECT" 0.000000 0.000000 110.150993 }
Change the last value (110.150993) to a lower number. 50.000000 for example.
- 1
-
Have another idea for this cms:
SA's can control features for VIP users. For example (enable/disable):
- User with VIP status get +% for more Vote Coins.
- User with VIP status have a chance to get an item when successful voted.
- User with VIP get -% for remission of itemshop items
- User with VIP can change their charakter names
-----------------------------------------------------------------------------
edit://
Votefunction:
SAs can choose a toplist for voting support on "metin2pserver.info", "topliste.top-pserver.com", "pservertoplist.pw". ranksec.net is offline but I hope it will come back. I will support only toplists with an API because of getting coins correctly without cheating. SAs have only to enable a toplist and input necessary data in the ACP.
any other suggestions?
What about payment methods? PSC, Paymentwall? Others?
- 1
-
Update: Statistics
- Admins can view Statistics overview, monthly, annual.
- Admins can enable/disable general statistics for navigation.
- 4
-
What's the exact reason for storing the usersession in the database?
Doesn't open up for me if I only look at the login.
Regards
Good question. I would like to share a good answer with you: http://stackoverflow.com/a/6122308
The main reasons are:
- The session data is more secure as a potential hacker must be able to log into the database before he can access anything.
- The use of multiple servers would not create a problem as all session data now resides in a single central place and is accessible by all servers.
- It is much easier to query the database should the site administrator require information about current sessions or current users.
If you and other people like to share sessions in filesystem i can write an option in the ACP for choosing the session storage methode.I like to share usersessions in database but its just my personal handling.
-
I will recode the whole itemshop (Player unbug and other important features too) with better usability for users and admins.
Once again: The whole script will be save against SQL Injection! I am NOT coding with placeholders because hen!CMS users accustomed to use mysql_real_escape_string.
This will be released with the mysqli function: http://php.net/manual/en/mysqli.real-escape-string.php and i will check all query inputs to be safe so don't worry.
I am not just escape a string: I am checking additional all $_POST and $_GET before. here are some examples (also against XSS for a possible $_GET varaible output):$go = htmlentities($_GET['go']); if(!is_numeric($go)) { $go = 1; } else { $go = mysqli_real_escape_string($mysqli, $go); }
// Check Username if(!preg_match('/^[a-zA-Z0-9]+$/', $f_username)) { $error = "1"; $errormsg = lang('ERR_USER'); }
// Check email if(!filter_var($f_mail, FILTER_VALIDATE_EMAIL)) { $error = "1"; $errormsg = lang('ERR_MAIL'); }
another example for using mysqli in this CMS (login example):
This way is correct against SQLinjection but its not a good example of how to use mysqli. I know that but the consumer habits are more important for me. I will release a version with prepared statements If there is a reasonable demand.
- 1
- 2
-
very nice work my friend. I cant wait for this rlz ) i heave no to mutch experience in cms but if you will add linguage module and if you need translate i can help you
Best regards
language module is added When im finished i will release anything and you (including other people) can add a language. I will pack your changes into the official release download with your name. Everyone can be a part of this!
- 1
-
Add database backup system (for security reasons, you can disable this feature manually):
(sorry for mixing 2 languages, I have not translated all parameter in english atm.)
- 2
-
When this CMS is done I will code an alternative design to the current minimalstic style. Hope you like my new example design for it (isnt finished yet):
- 3
-
Admin CP implemented now. The overview page is for general settings. Any suggestions for other informations here?
- 4
-
First look - the ticketsystem works fine A few functions are missing but i will add them soon. The style is basic (as simple as possible):
more pictures:
sourcecode pics:
- 4
-
I don't realy get your problem. 5780 querys? What do you do exactly and where (website, phpmyadmin, console, client)?
-
4294967295 is the largest number 32 bits can hold, your ID is now larger than the numerical field your DB can hold . I think its a mySQL auto increment problem or another problem with your database. If you cant solve it change int() to bigint() in your database structure.
have a look:
- 1
-
Yes but i have to go to work now. I will add you later
// Update: I have rewritten the login again:
(login attempts and login faillogs not included yet)
edit:// please notice that im NOT coding with placeholders and the MySQLi object oriented style. I try to develop this most similar to mysql_* for beginners (procedural).
- 1
- 1
- 1
-
For developer
How to get Userinformations?function userinfo($var)
You can get every column from account.account with this function. Example:
echo userinfo(login); // will output the LOGIN Accountname (from the logged-in user) echo userinfo(email); // will output the EMAIL (from the logged-in user) echo userinfo(social_id); // will output the DELETE KEY (from the logged-in user) // ... you can get all account informations like this
How to check user rights?
You can do it like this:// Get userlevel $userlevel = userinfo(web_admin); // Check if user is logged-in if(logged_in()) { if($userlevel > 2) { echo "You are logged-in and you have a higher Userlevel than 2"; } } else { echo "You are not logged in!"; }
How to add a new page with my own code and features?
Just create a new .php file in the "/pages" folder. This is a template:<?php // Check if user is logged-in if(!logged_in()) { echo "<div class="error">".lang('ERR_NOTLOGIN')."</div>"; } else { // here we go! echo "<h2>New Page</h2>"; // you can do what ever you want here } ?>
you can access this page with the link: http://www.yourdomain.tld/index.php?page=<filename>
How to add a new admin page?
Just create a new "admin_<your file name>.php" file in the "/pages" folder. This is a template:<?php // Get userlevel $userlevel = userinfo(web_admin); // Check if logged-in if(logged_in()) { if($userlevel > 0) { // Administration Naviagtion echo "<div id="admin_box">"; echo "<div class="navleft">"; echo lang('ADMIN_CENTER'); echo "</div>"; echo "<div class="navright">"; echo "<a class="yellow" href="index.php?page=admin_file">Link 1</a> "; echo "<a class="yellow" href="index.php?page=admin_file">Link 2</a> "; echo "<a class="yellow" href="index.php?page=admin_file">Link 3</a> "; echo "</div>"; echo "</div>"; } } // Only access when admin if(!logged_in()) { echo "<div class="error">" . lang('ERR_ADMINACCESS1') . "</div>"; } elseif($userlevel !== "9") { echo "<div class="error">" . lang('ERR_ADMINACCESS2') . "</div>"; } else { // CONTENT // You can do what ever you want here } ?>
you can access this page with the link: http://www.yourdomain.tld/index.php?page=<filename>
Dont forget to put a link in the admin navigation. You can find it in the file navigation.php
In which file are used function?
All functions are in the functions.php file in the lib folder!
How to use SQL in this CMS?
Fucking simple!// SELECT EXAMPLE $mysqli = getConnected(account); $res = mysqli_query($mysqli, "SELECT id FROM table WHERE option1='text1'"); while($row = mysqli_fetch_array($res)) { echp $row["id"]; } mysqli_close($mysqli); // UPDATE EXAMPLE $mysqli = getConnected(account); mysqli_query($mysqli,"UPDATE table SET option1='text1'"); mysqli_close($mysqli); // INSERT EXAMPLE $mysqli = getConnected(account); mysqli_query($mysqli,"INSERT INTO table (option1, option2) VALUES ('text1', 'text2')"); mysqli_close($mysqli);
you can connect account or player database like this:
$mysqli = getConnected(account); // account database $mysqli = getConnected(player); // player database
If you want to escape a GET or POST variable use the following to write in database:
$var2 = $_GET['example']; $var2 = mysqli_real_escape_string($mysqli, $var2); // put this AFTER $mysqli = getConnected(account)! // $var2 is now escaped and can executed in a query!
How to use the Coins Log and transfer Coins in my own code?
Use the function "write_coinslog". It will add an entry in coins log and the user get or lose coins. Its very simple to use:
write_coinslog("$var1","$var2","$var3","$var4","$var5"); // $var1 = Amount of Coins // $var2 = +Coins = "get", -coins = "lose" // $var3 = Give here a short Reason about the transfer. If its an Itemshop transfer use "IS", Auctionhouse = "AH". // $var4 = If there is a item transfer use the vnum to get the name of item. Default is "0". This info will displayed in reason ($var3) when ist not "0". // $var5 = If there is a other User ID than the logged-in user give the Username to get the userid // Live Example 1 write_coinslog("200","get","A transfer example","0","0"); // The logged-in user get 200 Coins with the reason "A transfer example" // Live Example 2 write_coinslog("300","lose","IS","102380","0"); // The logged-in user lose 200 Coins with the reason "IS - Weaponname +3"
- 1
- 2
[ Dead Download Link ] MT2-CMS - FORK [ We Need You ]
in Temporary
Posted · Edited by Metin2 Dev
Core X - External 2 Internal
Add CMS Installer:
I did this simple and effective as fuck:
--------------------------------------------------------------------------------------------------------------------------
successful installation:
--------------------------------------------------------------------------------------------------------------------------
installation failed:
--------------------------------------------------------------------------------------------------------------------------
As you can see, i can extend the SQL every time. When im finished with the whole CMS i will write a little help doc for every Query Fail Number. So user can find a way without asking me or other people