We're developing an Yii2 php appliction, which can be seen as a AirBNB clone for sake of simplicity. I'm trying to devide the application into modules, but keep getting ugly dependencies no matter how I twist or try. Couple of examples:
There is a booking and an item module, when displaying an item, the booking module is also to be used to disable dates when an item is already booked.
On the confirm booking page, a credit card form is implemented which belongs to the payment module, which couples the modules really tightly.
The homepage should display items, which depend on the item module for generating the right image url's etc.
How can we keep this kind of things decoupled?
For anybody looking at the same problem, I currently solved it by keeping every strictly decoupled. Modules can either make a call to a custom made WidgetRequester, which sees is a requested widget exists in another module, and returns it if it does, which solves the problem of pages with multiple module dependencies (an item page with a booking form i.e.).
Modules can also trigger normal Yii events, which can be picked up by other modules in their Bootstrap file, and process the events to their own liking.
Related
I'm new in using Joomla and i need your help please.
I'm newly working in a company. The company bought a web shop from other company and the web shop is live now.
One button in one of the pages is responsible to place an order and the action for this button is to send an email with all the data about the orders to my company.
Now my task is to develop an API which does the following:
when clicking on that button the information should be handles in certain way and sent to other system which our company have and this system is used by my company to handle the different orders.
My problem is that i can't find the php page that contains the code which is creating these orders email in order to change it.
Is there is any tool or plugin which might help or do you have any idea how to handle this situation?
Hint: I'm not able to get any support from the company who programmed the web shop
It is very hard to tell you what to do when we don't even know which Joomla e-commerce extension you are using. Nevertheless, there are things that you can do to find out which file is doing the actual processing of the order.
However, before even doing that, you will need to define what "order processing" means. Is it when the order is saved to the database? Is it when the order is approved by the payment gateway?
In the first case, you will need to look up for code saving the data to the database (which is likely in the models folder of the extension - it might also be in the controllers), in the latter case, you will need to look up for the code processing the payment (which is likely in the controllers folder or the helpers folder).
Note that some "advanced" e-commerce extensions trigger events when an order is processed that you can use in a plugin in order to do what you want.
Just started developing with Joomla! (2.5), completely newb, read through the docs talking about Plugins, Components and Modules. Having a hard time figuring out which to choose and how to implement. I'd like to have a table similar to the one used in the Plugin Manager in the Joomla! administrator backend where the the results can be searched, filtered and even individual entries can be toggled (Enable/Disable by clicking on Status circle). Can someone point me to a tutorial or even some example code I can in developing this?
I’ve already read a few sites including this (http://www.inmotionhosting.com/support/website/joomla-25/plugin-vs-module-vs-component).
If you want to create page in administrator panel with tables, that display some items, you should develop joomla component.
Look for this: http://docs.joomla.org/Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5
Note, that only components can provide extended administrator interface for managing some entries, create pages on font-end. Plugins intended only for processing output of components and modules. And modules intended only for display some html on specific positions in front-end template.
Heyhey,
I made a pretty kickass Magento 1.6 module to select a store and time to come pick stuff up at the shop, and it works fine in the front end. It doesn´t however appear in the backend, and the backend order creation system needs to have the same functionality.
How do I enable my module for backend order creation?
I'll supply any details needed!
Kind regards,
Alex
in the file:
/app/design/adminhtml/default/default/layout/sales.xml
around line 497 (on my version, which is Enterprise 1.10.0.1)
you should find
<adminhmtl_sales_order_create_index>
I strongly believe that has the information on what you want. Your module will need it's own layout xml file that references these areas to insert its own content. Then, you will need to hook into the order create event with an observer to run your own code to deal with the data. This may already be happening, as I'm not sure if the backend code creating the order is any different from the front end.
Hope this helps as a jumping off point.
I have a website which is up and running on drupal. Its product based website. I developed by creating my own tables and writing php code using php filters. I never used module concepts. Since the site is running well, so i am thinking to move to module concept. so wanted some help here, like how to do it.. i have gone through module development concepts also.
requirement.
1. Admin should be able to create new products like Mobile, Camera.
2. He should be able to define product properties and properties for which user will rate on.
3. Admin/ second admin should be able to create new sub products under products like mobile - nokia 8850 , nokia 9980 where he enters details of product properties also.
4. A listing page for all the sun products under main product. and from listing page we go to to main sub product page where user rates the product.
My confusion : should i create a new table or drupal takes care of all the requirements. and how do i start with it.
update : clear picture of requirement
ex :
1. 1st i add a product "MOBILES"
2. Then i add properties for this main product.
3. Then i start adding sub products under MOBILES i.e nokia 1100, samsumg 2200 and etc.
while adding sub products, in this page it gives me a text box for all the propeties i defined while creating the main product MOBILES . So is this possible using CCK.
You're right to consider using modules and following the "Drupal way". Use CCK + Views and Drupal will take care of the table maintenance and querying for you.
As already mentioned, you will need to get familiar with the CCK module. This module will allow you to create new "content types", which in your example would be the different product types and their attributes. Here is a good overview video on CCK. With CCK you can define new content types and Drupal will create the basic content creation forms for you and hide spare you from all the database details when you're working with it.
The Views module is essentially a query builder and will allow you to create views of your content. There are all sorts of related modules that can help you render your data as charts, grids, lists, slideshows, tables, etc.
There is a slight learning curve but once you get past it you'll be able to build new things pretty quick.
Update: Just another thought, if you are really needing to create some kind of classification system you should look at Taxonomies.
It sounds like you could do all of this with modules, without needing to do any php coding at all. Check out (if you haven't already) cck, views, and fivestar.
In response to your update, sounds like CCK and Node Hierarchy should do everything you need.
Is this a common task in your Drupal work when you're asked to create a custom admin section in Drupal for your content?
For instance, you have a few content types and user wants not only to view them, but to search using different filters, to add new items - all inside the same admin subsection.
In essence, this is classic search/grid/record screen/pages and while in typical Drupal distribution content management screents are kind of scattered around, I am talking about more organized spage, e.g. in which Grid (View) also has "Add new" link and you don't have to scroll to "Create content" menu which relates to a different section.
What is your experience and opinion in this relation?
I'm actually working on something like this right now where I work. We've built a custom module to solve Drupal's biggest problem of having unorganized content by organizing it in a nice tree structure. What we've decided to do is go ahead and create a whole new section within the admin just for managing content through this module (it contains a lot more functionality than just a tree structure). There were two big deciding factors when deciding to do this.
We knew we weren't going to be releasing this module so we didn't need to worry about integration with other modules because any such integration would be done by us.
The non-technical staff that this was presented to preferred this method over having several different admin pages with different pieces of functionality on each one, despite all the functionality being related. They viewed at as simply being easier to use.
The point behind my explanation is this: if it makes sense in your situation, then I'd say make either a new section or a new page with several tabs on it. There's a lot of deciding factors to consider:
Do I (or my) clients like the Drupal admin as is?
Do I need to worry about integration with third party modules?
Is time of the essence (this one is a big one)?
How extensible do I need the new admin page(s) to be?
Is upgrading to the newest version of Drupal of big importance (from 5 to 6 and later from 6 to 7 and so on)?
Many non-developers I've talked to abhor the Drupal admin and most content editors I've talked to or worked with prefer having a single admin page they can go to to manage all of their content. As a result, our setup is well received by our clients even though some within the Drupal community may not agree with it.
you can use views_bulk_operation module to show content (or users) to execute (batch) operations on them. in this way you get a sortable grid with search capabilities (exposed filters), pagination and the possibility to execute custom bulk actions. from here it's easy to add a link "create new" in the view footer. furthermore, you can use link as "local tasks" to organize views in tabs.
usually i use simplemenu for the admin backend and i hide the navigation menu in the sidebar for all but administrators.
Another option - much easier to deliver - would be to create a new menu only visible to the administrators - and dependent on the content displayed - with links to the pages for common tasks. Particular views, for example, or to add new content of the currently displayed type, etc.