Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic scoring and increased integration for plugins #56

Open
wants to merge 52 commits into
base: master
Choose a base branch
from

Conversation

CreaoticX
Copy link

@CreaoticX CreaoticX commented Aug 10, 2016

This borrows heavily from Wordpress in order to increase the ability for plugins to integrate with SEO Panel. It does this primarily by adding the ability to incorporate action and filter hooks into the SEO Panel operations and by adding the ability save meta data associated with any data type, but specifically websites, projects, and reports.

Functions to simplify managing settings were also added. Settings can now include arrays and can be excluded from being made constants by adding the prefix 'ign_' to the category.

In the process of adding this functionality, an html parser and a MySQLI database handler were also added to simplify operations, increase readability, and increase security. A mysqli helper file was also added to maintain backwards compatibility until the existing code can be updated.

An Abstract Score class was added that can be extended to add additional scoring factors and to allow factor weighting and settings to be edited by the user. The existing scoring functions were separated into separate classes to allow for them to managed by the user as well.

A plugin to manage the scoring factors was created at https://github.com/CreaoticX/SeoPanelScoreManager. This functionality can be integrated into the core program at a later date.

sendtogeo and others added 30 commits June 6, 2015 01:03
Added a hooks class that was ported from Wordpress.  This allows hooks and filters to be added to the main code so that plugins can tie into the main code.
Creating the common functions for the hooks removes the need to call the hook global every time.
Adds the ability to include a load.php file in a plugin folder that will be loaded on start up each time.  This will allow plugins to add functionality to the core system.
Added the full path instead of just the directory to the plugin load function.
Put the bar menu into a for loop and added a filter so that menus could be added or removed.
Mysqli handler allows for prepared statements for security.  A wrapper was added for backwards compatibility until all queries can be updated.
Added common setting functions for adding, updating, and getting settings
Changed get_setting_value to check for defined variable first
Adding a more robut HTML parser to allow for greater analysis of crawled pages.
Created tables for meta data and ported functions from Wordpress to use in handling meta data
formatUrl now removes whitespace and only removes protocols at the very beginning of the url
Updated the getPageInfo function to utilize the PHPHtmlParser and added new filters to allow for customized page info
str_replace was throwing an error a number 1 set as the limit so a $limit variable was created and inserted
Fixed the URL removing the domain name.  Added a boolean $internal variable to the link_info filters.
Fixed two more errors in formatting the link url
Eliminated duplicate home page issue for domain ending in / and changed the broken link checker to check the database before pinging the website.
Added update setting function to simplify updating settings without having to enter all the setting data.
Updated the database calls to use the new MySQLi database handler and added filters and action hooks to the scoring functions
# Conflicts:
#	controllers/components/auditorcomponent.php
#	includes/sp-common.php
#	includes/sp-load.php
#	libs/seopanel.class.php
#	libs/spider.class.php
#	themes/classic/views/menu/adminmenu.ctp.php
#	themes/classic/views/menu/usermenu.ctp.php
Separated scoring functions into separate classes to allow for additional scoring factors to be added dynamically and factor weighting and settings to be editted by the user.

TODO:
Create score weight and setting editting pages
Create domain scoring factors
Divided the total score by the total of all weights and multiplied by 10 to give a total score between -10 and 10
Reverted the classic theme to it's original form.  Creating a new theme to make changes in instead
Added include to load the the default score classes
This makes them accessible by the Score Class children
A label is required to save a setting.
Scores can now be activated and deactivated
Active check was after default return and wasn't being called.
If runkit_constant_redefine function does not exist don't try to reset constants
Fixed bug causing updated score settings not to save properly
Added a score to handle the average page score for websites.

TODO:
Implement website scores
… dynamic scoring for projects

The countScore and weightedScore functions can now be used for any score type.  These are now used to calculate the score for projects as well.
@szepeviktor
Copy link

@sendtogeo These type of PR-s would skyrocket your project.

@sendtogeo
Copy link

@CreaoticX
Sorry for late reply. i am planning to add most of these changes in seo panel 3.10.0 Currently I am reviewing the changes. Thanks again for your great support to the project. Keep supporting us with great features :)

@szepeviktor Thanks for suggestions.

@sendtogeo sendtogeo added this to the Seo panel 3.10.0 milestone Oct 27, 2016
@sendtogeo sendtogeo self-assigned this Oct 27, 2016
@sendtogeo
Copy link

@CreaoticX I was planning to add your changes to the new seo panel version 3.10.0 and found there is lots of features in single pull request. Can you please able to provide it as individual feature pull requests, so that it will be easy to verify and apply. Thanks again for your hard work for implementing this feature.

@HumanG33k
Copy link

Some news for this integration ?

@sendtogeo
Copy link

Thanks for this much feature.

But currently, its difficult us for to merge this due to conflicts and lots of code.

Can you please help us by creating different merge requests for each features.

Thanks again for you hard work to add this feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants