Cakedc users plugin new table entry - cakephp

I am using Cakedc Users plugin and I want to add a small entry to the Users table which is "Balance" (integer)
I read the extending part in the documentation and I honestly got dizzy from all the modifications that I have to do
I don't want to rewrite the whole thing just for a small entry, Is there anyway I can add it to the table with minumum modification or rename another entry that I don't need, like "tos_date" or something

Well, let me try to help about how extending the model should be:
Modify the users table (via migrations or manually) and add the columns you want.
Copy the template files with the forms, from the plugin itself to your app under the folder src/Template/Plugin/CakeDC/Users/name_of_the_controller/name_of_the_action, then modify the forms to add a new control for your custom column
You're done
Thanks!

Related

How can the category and product fields in Shopizer be customized, if possible at all?

I am currently using Shopizer as a sort of headless CMS, leveraging its out of the box admin pages and REST API for the content. There is a page for editing products in the admin system but I would like to add and/or remove specific fields. Making changes to the base code seems to be the most obvious solution but it is taking me a significant amount of time to implement it successfully.
Is there some sort of a config file or an initialization process to customize the fields for creating categories and products using Shopizer's admin page? What is the best practice for this scenario if the former approach is not possible?
If you need to add fields the easiest way is to add them in model objects
com.salesmanager.core.model.*
Example of an annotated field
#Column (name ="IP_ADDRESS")
private String ipAddress;
Once you restart your instance the new field will be available.

How to add extra fields in CakeDc Users plugin

I am trying to add some extra fields in the Cakedc Users plugin default Users table
But I can't figure it out how to do it, I didn't find anything in the documentation about this problem, I found a similar question here
But that person asked for a lot so he didn't get a lot of help, I also tried adding the extra field in the Mysql users table and in the register.ctp template , But I find it's value is empty
the question you mention is related to the previous version of the Plugin (for CakePHP 2).
You are doing right now, but the problem is the User Entity being too strict and blocking mass-assignment https://github.com/CakeDC/users/blob/3.1.5/src/Model/Entity/User.php#L30 (which is possibly a good thing to change in the Plugin itself to allow an even easier override). I'll add a ticket for this in a bit :)
In the current version it's very easy to extend the users table and add your own columns.
For example, let's say you want to add a new column to your users table "phone".
Add a new column in users table (usually involving a migration, you can "bake" this migration using
bin/cake bake migration AddPhoneToUsers phone:index
Run the migration to apply the changes
bin/cake bake migration migrate
Now follow instructions here https://github.com/CakeDC/users/blob/master/Docs/Documentation/Extending-the-Plugin.md#extending-the-model-tableentity to:
Create empty Model and Entity classes extending the plugin classes
Override $accessible property in your new Entity to something like
protected $_accessible = [
'*' => true,
'id' => false,
'role' => false,
];
Lastly, add this override to your bootstrap.php file after loading the Plugin
Configure::write('Users.table', 'MyUsers');
The plugin will pick your customized Table and use the new fields coming from your custom register.ctp page.
We've created an improvement ticket here > https://github.com/CakeDC/users/issues/311 to relax $_accessible fields.
Thank you,

How to add extra attributes to UserProfile table in asp.net MVC 4

I made a search for this for about 4 days and I couldn't find anything by any means that describe this step by step. I had found this article which describe how to add Email field to UserProfile table, the first step in this tutorial requires you to open DefaultConnection Database but I don't know how to do that.
So my question is:
1- how to add extra attributes in UserProfile database (using WebSecurity.InitializeDatabaseConnection method).
2- What If I want to make my own database and let MVC to create UserProfile table with the extra attributes ?
If you have any questions let me know in the comments below.
EDIT:
I tried to add these extra attributes to UserProfile Class which I believe that it follows code first technique, after that I had changed the connection string to my own database then after building the project Tables (UserProfile, webpages_Membership, webpages_OAuthMembership, etc..) created successfully but with no extra attribute that I already added to UserProfile class before building.
If you use Entity Framework do that:
First you must enable migrations if you didn't did it.
After that look for 'ApplicatinUser' class and add property that you want(e.g FullName).

CakePHP re-baking concerns

I'm new to CakePHP. I added some columns to my table abc. Is it possible not to re-bake my model Abc and its corresponding contoller and views? I already made a lot of changes and I think baking it again will overwrite my existing files. Thanks.
Baking is only needed when you want to generate automatic code. If you have already modified your Models/Controllers/Views and have added new columns in your database, then you will have to edit manually your Models/Controllers/Views to make relevant modifications.
You will probably want to edit Models to add validation rules for the new columns, to edit Views to add new inputs for these columuns. Controllers will probably remain unchanged.

Can not Bake table model, controller and view

I developed small CakePHP application, and now I want to add one more table (in fact, model/controller/view) into system, named notes. I had already created a table of course.
But when I run command cake bake model, I do not get table Notes on the list. I can add it manually, but after that I get some errors when running cake bake controller and cake bake view.
Can you give me some clue why I have those problems, and how to add that new model?
I would also check your app/config/database.php to ensure that you are using the correct database configuration. You may well have added the table to a different database perhaps and the bake is picking up the other database. Also, and this may be obvious, but check you are in the right project, it's easy to be in a different folder and not realise, especially if you have lots of projects.
I'm not aware of a limit on the bake listing. I would check your database to make sure the table exists and has some columns. You can always open up the console bake script and check for a limit and increase it if needs be.
I found solution!
I had to delete all from cache directory, /app/tmp/cache/models
Now it works!
:-)
When you say added it manually, do you mean added the note.php model? If not, you may want to try that. Verify that the model name is correct for the following:
file name: note.php
class name: class Note extends AppModel
table name: notes
Also, be sure the notes table has the id column and it is set to primary key.
If this does not push you in the right direction, please post your notes table schema here. Also, have you had success in baking other things in your app? Have you upgraded anything?
Please change the following farameters to bake:
For Controller:
/cake/console/libs/tasks/controller.php
function listAll($useDbConfig = 'default') {
change to :
function listAll($useDbConfig = 'YOUR DB CONFIG NAME') {
NOW DO CAKE BAKE for CONTROLLER! ENJOY!

Resources