Starbox – the Author Box for Humans - Version 3.0.2

Version Description

  • Compatible with WP 4.1.1
  • Fix link tag close duplicates
  • Added some theme compatibilities
  • Social Networks removed in the free version. Only Facebook add Twitter remained.
Download this release

Release Info

Developer cifi
Plugin Icon 128x128 Starbox – the Author Box for Humans
Version 3.0.2
Comparing to
See all releases

Version 3.0.2

Files changed (68) hide show
  1. classes/Action.php +108 -0
  2. classes/BlockController.php +91 -0
  3. classes/DisplayController.php +108 -0
  4. classes/Error.php +94 -0
  5. classes/FrontController.php +125 -0
  6. classes/HookController.php +170 -0
  7. classes/ObjController.php +209 -0
  8. classes/Tools.php +434 -0
  9. config/config.php +29 -0
  10. config/paths.php +29 -0
  11. controllers/Frontend.php +495 -0
  12. controllers/Menu.php +101 -0
  13. core/UserSettings.php +135 -0
  14. core/config.xml +30 -0
  15. languages/starbox-de_DE.mo +0 -0
  16. languages/starbox-de_DE.po +463 -0
  17. languages/starbox-fr_FR.mo +0 -0
  18. languages/starbox-fr_FR.po +418 -0
  19. languages/starbox-ro_RO.mo +0 -0
  20. languages/starbox-ro_RO.po +400 -0
  21. models/Frontend.php +340 -0
  22. models/Menu.php +144 -0
  23. models/UserSettings.php +192 -0
  24. readme.txt +189 -0
  25. screenshot-1.jpg +0 -0
  26. screenshot-10.jpg +0 -0
  27. screenshot-11.jpg +0 -0
  28. screenshot-12.jpg +0 -0
  29. screenshot-13.jpg +0 -0
  30. screenshot-14.jpg +0 -0
  31. screenshot-15.jpg +0 -0
  32. screenshot-16.jpg +0 -0
  33. screenshot-2.jpg +0 -0
  34. screenshot-3.jpg +0 -0
  35. screenshot-4.jpg +0 -0
  36. screenshot-5.jpg +0 -0
  37. screenshot-6.jpg +0 -0
  38. screenshot-7.jpg +0 -0
  39. screenshot-8.jpg +0 -0
  40. screenshot-9.jpg +0 -0
  41. starbox.php +41 -0
  42. themes/admin/Menu.php +159 -0
  43. themes/admin/Notices.php +16 -0
  44. themes/admin/UserSettings.php +167 -0
  45. themes/admin/css/hidedefault.css +1 -0
  46. themes/admin/css/menu.css +1 -0
  47. themes/admin/img/loading.gif +0 -0
  48. themes/admin/img/minloading.gif +0 -0
  49. themes/admin/img/sprite.png +0 -0
  50. themes/admin/js/menu.js +6 -0
  51. themes/business/css/frontend.css +1 -0
  52. themes/business/img/sprite.png +0 -0
  53. themes/business/js/frontend.js +12 -0
  54. themes/drop-down/css/frontend.css +1 -0
  55. themes/drop-down/img/sprite.png +0 -0
  56. themes/drop-down/js/frontend.js +12 -0
  57. themes/fancy/css/frontend.css +1 -0
  58. themes/fancy/img/sprite.png +0 -0
  59. themes/fancy/js/frontend.js +12 -0
  60. themes/minimal/css/frontend.css +1 -0
  61. themes/minimal/img/sprite.png +0 -0
  62. themes/topstar-round/css/frontend.css +1 -0
  63. themes/topstar-round/img/sprite.png +0 -0
  64. themes/topstar-round/js/frontend.js +6 -0
  65. themes/topstar/css/frontend.css +1 -0
  66. themes/topstar/img/sprite.png +0 -0
  67. themes/topstar/js/frontend.js +6 -0
  68. uninstall.php +14 -0
classes/Action.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Set the ajax action and call for wordpress
5
+ */
6
+ class ABH_Classes_Action extends ABH_Classes_FrontController {
7
+
8
+ /** @var array with all form and ajax actions */
9
+ var $actions = array();
10
+
11
+ /** @var array from core config */
12
+ private static $config;
13
+
14
+ /**
15
+ * The hookAjax is loaded as custom hook in hookController class
16
+ *
17
+ * @return void
18
+ */
19
+ function hookInit() {
20
+ /* Only if ajax */
21
+ if (isset($_SERVER['PHP_SELF']) && strpos($_SERVER['PHP_SELF'], '/admin-ajax.php') !== false) {
22
+ $this->actions = array();
23
+ $this->getActions(((isset($_GET['action']) ? $_GET['action'] : (isset($_POST['action']) ? $_POST['action'] : ''))));
24
+ }
25
+ }
26
+
27
+ /**
28
+ * The hookSubmit is loaded when action si posted
29
+ *
30
+ * @return void
31
+ */
32
+ function hookMenu() {
33
+ /* Only if post */
34
+ if (isset($_SERVER['PHP_SELF']) && strpos($_SERVER['PHP_SELF'], '/admin-ajax.php') !== false) {
35
+ return;
36
+ }
37
+
38
+ $this->actions = array();
39
+ $this->getActions(((isset($_GET['action']) ? $_GET['action'] : (isset($_POST['action']) ? $_POST['action'] : ''))));
40
+ }
41
+
42
+ /**
43
+ * The hookHead is loaded as admin hook in hookController class for script load
44
+ * Is needed for security check as nonce
45
+ *
46
+ * @return void
47
+ */
48
+ function hookHead() {
49
+
50
+ echo '<script type="text/javascript">
51
+ var abh_Query = {
52
+ "ajaxurl": "' . admin_url('admin-ajax.php') . '",
53
+ "adminposturl": "' . admin_url('post.php') . '",
54
+ "adminlisturl": "' . admin_url('edit.php') . '",
55
+ "nonce": "' . wp_create_nonce(_ABH_NONCE_ID_) . '"
56
+ }
57
+ </script>';
58
+ }
59
+
60
+ /**
61
+ * Get all actions from config.xml in core directory and add them in the WP
62
+ *
63
+ * @return void
64
+ */
65
+ public function getActions($cur_action) {
66
+
67
+ /* if config allready in cache */
68
+ if (!isset(self::$config)) {
69
+ $config_file = _ABH_CORE_DIR_ . 'config.xml';
70
+ if (!file_exists($config_file))
71
+ return;
72
+
73
+ /* load configuration blocks data from core config files */
74
+ $data = file_get_contents($config_file);
75
+ self::$config = json_decode(json_encode((array) simplexml_load_string($data)), 1);
76
+ }
77
+
78
+ if (is_array(self::$config))
79
+ foreach (self::$config['block'] as $block) {
80
+ if (isset($block['active']) && $block['active'] == 1) {
81
+ /* if there is a single action */
82
+ if (isset($block['actions']['action']))
83
+
84
+ /* if there are more actions for the current block */
85
+ if (!is_array($block['actions']['action'])) {
86
+ /* add the action in the actions array */
87
+ if ($block['actions']['action'] == $cur_action)
88
+ $this->actions[] = array('class' => $block['name']);
89
+ }else {
90
+ /* if there are more actions for the current block */
91
+ foreach ($block['actions']['action'] as $action) {
92
+ /* add the actions in the actions array */
93
+ if ($action == $cur_action)
94
+ $this->actions[] = array('class' => $block['name']);
95
+ }
96
+ }
97
+ }
98
+ }
99
+
100
+ /* add the actions in WP */
101
+ foreach ($this->actions as $actions) {
102
+ ABH_Classes_ObjController::getController($actions['class'])->action();
103
+ }
104
+ }
105
+
106
+ }
107
+
108
+ ?>
classes/BlockController.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * The main class for core blocks
5
+ *
6
+ */
7
+ class ABH_Classes_BlockController {
8
+
9
+ /** @var object of the model class */
10
+ protected $model;
11
+
12
+ /** @var boolean */
13
+ public $flush = true;
14
+
15
+ /** @var object of the view class */
16
+ protected $view;
17
+
18
+ /** @var name of the class */
19
+ private $name;
20
+
21
+ public function __construct() {
22
+ /** check the admin condition */
23
+ if (!is_admin())
24
+ return;
25
+
26
+ /* get the name of the current class */
27
+ $this->name = get_class($this);
28
+
29
+ /* create the model and view instances */
30
+ $this->model = ABH_Classes_ObjController::getModel($this->name);
31
+ }
32
+
33
+ /**
34
+ * load sequence of classes
35
+ *
36
+ * @return void
37
+ */
38
+ public function init() {
39
+
40
+ $this->view = ABH_Classes_ObjController::getController('ABH_Classes_DisplayController');
41
+
42
+ if ($this->flush)
43
+ $this->hookHead();
44
+
45
+ /* check if there is a hook defined in the block class */
46
+ ABH_Classes_ObjController::getController('ABH_Classes_HookController')
47
+ ->setBlockHooks($this);
48
+
49
+ if ($this->flush)
50
+ $this->output();
51
+
52
+ $this->hookHead();
53
+ }
54
+
55
+ protected function output() {
56
+ /* view is called from theme directory with the class name by default */
57
+ if ($class = ABH_Classes_ObjController::getClassPath($this->name))
58
+ $this->view->output($class['name'], $this);
59
+ }
60
+
61
+ /**
62
+ * This function is called from Ajax class as a wp_ajax_action
63
+ *
64
+ */
65
+ protected function action() {
66
+ // check to see if the submitted nonce matches with the
67
+ // generated nonce we created
68
+ if (class_exists('wp_verify_nonce'))
69
+ if (!wp_verify_nonce(ABH_Classes_Tools::getValue(_ABH_NONCE_ID_), _ABH_NONCE_ID_))
70
+ die('Invalid request!');
71
+ }
72
+
73
+ /**
74
+ * This function will load the media in the header for each class
75
+ *
76
+ * @return void
77
+ */
78
+ protected function hookHead() {
79
+ if (!is_admin()) //this hook is for admin panel only
80
+ return;
81
+
82
+ if ($class = ABH_Classes_ObjController::getClassPath($this->name)) {
83
+ ABH_Classes_ObjController::getController('ABH_Classes_DisplayController')
84
+ ->loadMedia($class['name']);
85
+ }
86
+ }
87
+
88
+ /** @todo _ GASESTE O CALE SA INCARC CSS PENTRU BLOCURI */
89
+ }
90
+
91
+ ?>
classes/DisplayController.php ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * The class handles the theme part in WP
5
+ */
6
+ class ABH_Classes_DisplayController {
7
+
8
+ private static $name;
9
+ private static $cache;
10
+
11
+ /**
12
+ * echo the css link from theme css directory
13
+ *
14
+ * @param string $uri The name of the css file or the entire uri path of the css file
15
+ * @param string $media
16
+ *
17
+ * @return string
18
+ */
19
+ public static function loadMedia($uri = '', $params = array('trigger' => true), $media = 'all') {
20
+ $css_uri = '';
21
+ $js_uri = '';
22
+
23
+ if (isset($_SERVER['PHP_SELF']) && strpos($_SERVER['PHP_SELF'], '/admin-ajax.php') !== false)
24
+ return;
25
+
26
+ if (isset(self::$cache[$uri]))
27
+ return;
28
+
29
+ self::$cache[$uri] = true;
30
+
31
+ /* if is a custom css file */
32
+ if (strpos($uri, '/') === false) {
33
+ $name = strtolower($uri);
34
+ if (file_exists(_ABH_THEME_DIR_ . 'css/' . $name . '.css')) {
35
+ $css_uri = _ABH_THEME_URL_ . 'css/' . $name . '.css?ver=' . ABH_VERSION_ID;
36
+ }
37
+ if (file_exists(_ABH_THEME_DIR_ . 'js/' . $name . '.js')) {
38
+ $js_uri = _ABH_THEME_URL_ . 'js/' . $name . '.js?ver=' . ABH_VERSION_ID;
39
+ }
40
+ } else {
41
+ $name = strtolower(basename($uri));
42
+ if (strpos($uri, '.css') !== FALSE)
43
+ $css_uri = $uri;
44
+ elseif (strpos($uri, '.js') !== FALSE) {
45
+ $js_uri = $uri;
46
+ }
47
+ }
48
+
49
+ if ($css_uri <> '') {
50
+
51
+ if (!wp_style_is($name)) {
52
+ wp_enqueue_style($name, $css_uri, null, ABH_VERSION, $media);
53
+ }
54
+
55
+ if (isset($params['trigger']) && $params['trigger'] === true) {
56
+ wp_print_styles(array($name));
57
+ }
58
+ }
59
+
60
+ if ($js_uri <> '') {
61
+
62
+ if (!wp_style_is('jquery')) {
63
+ wp_enqueue_script('jquery', "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js", null, ABH_VERSION);
64
+ }
65
+
66
+ if (!wp_script_is($name)) {
67
+ wp_enqueue_script($name, $js_uri, array('jquery'), ABH_VERSION, true);
68
+ }
69
+
70
+ if (isset($params['trigger']) && $params['trigger'] === true) {
71
+ wp_print_scripts(array($name));
72
+ }
73
+ }
74
+ }
75
+
76
+ /**
77
+ * Called for any class to show the block content
78
+ *
79
+ * @param string $block the name of the block file in theme directory (class name by default)
80
+ *
81
+ * @return string of the current class view
82
+ */
83
+ public function output($block, $obj) {
84
+ self::$name = $block;
85
+ echo $this->echoBlock($obj);
86
+ }
87
+
88
+ /**
89
+ * echo the block content from theme directory
90
+ *
91
+ * @return string
92
+ */
93
+ public static function echoBlock($view) {
94
+ global $post_ID;
95
+ if (file_exists(_ABH_THEME_DIR_ . self::$name . '.php')) {
96
+ ob_start();
97
+ /* includes the block from theme directory */
98
+ include(_ABH_THEME_DIR_ . self::$name . '.php');
99
+ $block_content = ob_get_contents();
100
+ ob_end_clean();
101
+
102
+ return $block_content;
103
+ }
104
+ }
105
+
106
+ }
107
+
108
+ ?>
classes/Error.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ABH_Classes_Error extends ABH_Classes_FrontController {
4
+
5
+ /** @var array */
6
+ private static $errors, $switch_off;
7
+
8
+ /**
9
+ * The error controller for StarBox
10
+ */
11
+ function __construct() {
12
+ parent::__construct();
13
+
14
+ /* Verify dependences */
15
+ if (!function_exists('get_class')) {
16
+ self::setError(__('Function get_class does not exists! Is required for StarBox to work properly.', _ABH_PLUGIN_NAME_));
17
+ }
18
+ if (!function_exists('file_exists')) {
19
+ self::setError(__('Function file_exists does not exists! Is required for StarBox to work properly.', _ABH_PLUGIN_NAME_));
20
+ }
21
+
22
+ if (!defined('ABSPATH'))
23
+ self::setError(__('The home directory is not set!', _ABH_PLUGIN_NAME_), 'fatal');
24
+
25
+ /* Check the PHP version */
26
+ if (PHP_VERSION_ID < 5100) {
27
+ self::setError(__('The PHP version has to be greater then 5.1', _ABH_PLUGIN_NAME_), 'fatal');
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Show version error
33
+ */
34
+ public function phpVersionError() {
35
+ echo '<div class="update-nag"><span style="color:red; font-weight:bold;">' . __('For StarBox to work, the PHP version has to be equal or greater then 5.1', _ABH_PLUGIN_NAME_) . '</span></div>';
36
+ }
37
+
38
+ /**
39
+ * Show the error in wrodpress
40
+ *
41
+ * @param string $error
42
+ * @param boolean $stop
43
+ *
44
+ * @return void;
45
+ */
46
+ public static function setError($error = '', $type = 'notice', $id = '') {
47
+ self::$errors[] = array('id' => $id,
48
+ 'type' => $type,
49
+ 'text' => $error);
50
+ }
51
+
52
+ /**
53
+ * This hook will show the error in WP header
54
+ */
55
+ function hookNotices() {
56
+ if (is_array(self::$errors))
57
+ foreach (self::$errors as $error) {
58
+
59
+ switch ($error['type']) {
60
+ case 'fatal':
61
+ self::showError(ucfirst(_ABH_PLUGIN_NAME_ . " " . $error['type']) . ': ' . $error['text'], $error['id']);
62
+ die();
63
+ break;
64
+ case 'settings':
65
+ /* switch off option for notifications */
66
+ self::$switch_off = "<a href=\"javascript:void(0);\" onclick=\"jQuery.post( ajaxurl, {action: 'abh_warnings_off', nonce: '" . wp_create_nonce('abh_none') . "'}, function(data) { if (data) { jQuery('#abh_ignore_warn').attr('checked', true); jQuery('.abh_message').hide(); jQuery('#toplevel_page_abh .awaiting-mod').fadeOut('slow'); } });\" >" . __("Turn off warnings!", _ABH_PLUGIN_NAME_) . "</a>";
67
+ self::showError(ucfirst(_ABH_PLUGIN_NAME_) . " " . __('Notice: ', _ABH_PLUGIN_NAME_) . $error['text'] . " " . self::$switch_off, $error['id']);
68
+ break;
69
+ default:
70
+
71
+ self::showError(ucfirst(_ABH_PLUGIN_NAME_) . " " . __('Note: ', _ABH_PLUGIN_NAME_) . $error['text'], $error['id']);
72
+ }
73
+ }
74
+ self::$errors = array();
75
+ }
76
+
77
+ /**
78
+ * Show the notices to WP
79
+ *
80
+ * @return void
81
+ */
82
+ public static function showError($message, $id = '') {
83
+ $type = 'abh_error';
84
+
85
+ if (file_exists(_ABH_THEME_DIR_ . 'Notices.php')) {
86
+ include (_ABH_THEME_DIR_ . 'Notices.php');
87
+ } else {
88
+ echo $message;
89
+ }
90
+ }
91
+
92
+ }
93
+
94
+ ?>
classes/FrontController.php ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * The main class for controllers
5
+ *
6
+ */
7
+ class ABH_Classes_FrontController {
8
+
9
+ /** @var object of the model class */
10
+ public $model;
11
+
12
+ /** @var boolean */
13
+ public $flush = true;
14
+
15
+ /** @var object of the view class */
16
+ public $view;
17
+
18
+ /** @var name of the class */
19
+ private $name;
20
+
21
+ public function __construct() {
22
+
23
+ /* Load error class */
24
+ ABH_Classes_ObjController::getController('ABH_Classes_Error');
25
+
26
+ /* Load Tools */
27
+ ABH_Classes_ObjController::getController('ABH_Classes_Tools');
28
+
29
+ /* get the name of the current class */
30
+ $this->name = get_class($this);
31
+
32
+ /* load the model and hooks here for wordpress actions to take efect */
33
+ /* create the model and view instances */
34
+ $this->model = ABH_Classes_ObjController::getModel($this->name);
35
+ //IMPORTANT TO LOAD HOOKS HERE
36
+ /* check if there is a hook defined in the controller clients class */
37
+
38
+ ABH_Classes_ObjController::getController('ABH_Classes_HookController')->setHooks($this);
39
+ ABH_Classes_ObjController::getController('ABH_Classes_HookController')->getShortcodes($this);
40
+ }
41
+
42
+ /**
43
+ * load sequence of classes
44
+ * Function called usualy when the controller is loaded in WP
45
+ *
46
+ * @return void
47
+ */
48
+ public function init() {
49
+
50
+ $this->view = ABH_Classes_ObjController::getController('ABH_Classes_DisplayController');
51
+
52
+ if ($this->flush)
53
+ $this->output();
54
+
55
+
56
+ /* load the blocks for this controller */
57
+ ABH_Classes_ObjController::getController('ABH_Classes_ObjController')->getBlocks($this->name);
58
+ }
59
+
60
+ protected function output() {
61
+ /* view is called from theme directory with the class name by defauls */
62
+ if ($class = ABH_Classes_ObjController::getClassPath($this->name))
63
+ $this->view->output($class['name'], $this);
64
+ }
65
+
66
+ /**
67
+ * initialize settings
68
+ * Called from index
69
+ *
70
+ * @return void
71
+ */
72
+ public function run() {
73
+
74
+ /** check the admin condition */
75
+ if (!is_admin())
76
+ return;
77
+ /* Load the Submit Actions Handler */
78
+ ABH_Classes_ObjController::getController('ABH_Classes_Action');
79
+ ABH_Classes_ObjController::getController('ABH_Classes_DisplayController');
80
+
81
+ /* show the admin menu and post actions */
82
+ $this->loadMenu();
83
+ }
84
+
85
+ /**
86
+ * initialize menu
87
+ *
88
+ * @return void
89
+ */
90
+ private function loadMenu() {
91
+ /* get the menu from controller */
92
+ ABH_Classes_ObjController::getController('ABH_Controllers_Menu');
93
+ }
94
+
95
+ /**
96
+ * first function call for any class
97
+ *
98
+ */
99
+ protected function action() {
100
+ // check to see if the submitted nonce matches with the
101
+ // generated nonce we created
102
+ if (class_exists('wp_verify_nonce'))
103
+ if (!wp_verify_nonce(ABH_Classes_Tools::getValue(_ABH_NONCE_ID_), _ABH_NONCE_ID_))
104
+ die('Invalid request!');
105
+ }
106
+
107
+ /**
108
+ * This function will load the media in the header for each class
109
+ *
110
+ * @return void
111
+ */
112
+ public function hookHead() {
113
+ if (!is_admin()) //this hook is for admin panel only
114
+ return;
115
+
116
+ //execute this only if admin
117
+ if ($class = ABH_Classes_ObjController::getClassPath($this->name)) {
118
+ ABH_Classes_ObjController::getController('ABH_Classes_DisplayController')
119
+ ->loadMedia($class['name']);
120
+ }
121
+ }
122
+
123
+ }
124
+
125
+ ?>
classes/HookController.php ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * The class handles the actions in WP
5
+ */
6
+ class ABH_Classes_HookController {
7
+
8
+ /** @var array the WP actions list from admin */
9
+ private $admin_hooks = array();
10
+ private $custom_hooks = array();
11
+ private $block_hooks = array();
12
+ private static $shortCodesSet = false;
13
+
14
+ public function __construct() {
15
+ $this->admin_hooks = array(
16
+ 'init' => 'admin_init',
17
+ 'head' => 'admin_head',
18
+ 'footer' => 'admin_footer',
19
+ // --
20
+ 'wmenu' => '_admin_menu',
21
+ 'menu' => 'admin_menu',
22
+ 'submenu' => 'add_submenu_page',
23
+ 'loaded' => 'plugins_loaded',
24
+ 'scripts' => 'admin_enqueue_scripts',
25
+ 'notices' => 'admin_notices',
26
+ );
27
+ $this->front_hooks = array(
28
+ // --
29
+ 'frontinit' => 'init',
30
+ 'fronthead' => 'wp_head',
31
+ 'frontcontent' => 'the_content',
32
+ 'frontwidget' => 'widget_text',
33
+ 'frontfooter' => 'wp_footer',
34
+ );
35
+ $this->block_hooks = array('getContent' => 'getContent');
36
+ }
37
+
38
+ /**
39
+ * Calls the specified action in WP
40
+ * @param oject $instance The parent class instance
41
+ *
42
+ * @return void
43
+ */
44
+ public function setHooks($instance) {
45
+ if (is_admin()) {
46
+ $this->setAdminHooks($instance);
47
+ } else {
48
+ $this->setFrontHooks($instance);
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Calls the specified action in WP
54
+ * @param oject $instance The parent class instance
55
+ *
56
+ * @return void
57
+ */
58
+ public function setAdminHooks($instance) {
59
+ if (!is_admin())
60
+ return;
61
+ /* for each admin action check if is defined in class and call it */
62
+ foreach ($this->admin_hooks as $hook => $value) {
63
+
64
+ if (is_callable(array($instance, 'hook' . ucfirst($hook)))) {
65
+ //call the WP add_action function
66
+ add_action($value, array($instance, 'hook' . ucfirst($hook)));
67
+ }
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Calls the specified action in WP
73
+ * @param oject $instance The parent class instance
74
+ *
75
+ * @return void
76
+ */
77
+ public function setFrontHooks($instance) {
78
+
79
+ /* for each admin action check if is defined in class and call it */
80
+ foreach ($this->front_hooks as $hook => $value) {
81
+
82
+ if (is_callable(array($instance, 'hook' . ucfirst($hook)))) {
83
+ //call the WP add_action function
84
+ add_action($value, array($instance, 'hook' . ucfirst($hook)));
85
+ }
86
+ }
87
+ }
88
+
89
+ /**
90
+ * Calls the specified action in WP
91
+ * @param string $action
92
+ * @param array $callback Contains the class name or object and the callback function
93
+ *
94
+ * @return void
95
+ */
96
+ public function setAction($action, $obj, $callback) {
97
+
98
+ /* calls the custom action function from WP */
99
+ add_action($action, array($obj, $callback), 10);
100
+ }
101
+
102
+ /**
103
+ * Calls the specified action in WP
104
+ * @param oject $instance The parent class instance
105
+ *
106
+ * @return void
107
+ */
108
+ public function setBlockHooks($instance) {
109
+ $param_arr = array();
110
+
111
+ /* for each admin action check if is defined in class and call it */
112
+ foreach ($this->block_hooks as $hook => $value)
113
+ if (is_callable(array($instance, 'hook' . ucfirst($hook))))
114
+ call_user_func_array(array($instance, 'hook' . ucfirst($hook)), $param_arr);
115
+ }
116
+
117
+ /**
118
+ * Get all core classes from config.xml in core directory
119
+ *
120
+ */
121
+ public function getShortcodes() {
122
+ if (self::$shortCodesSet == true)
123
+ return;
124
+
125
+ //If the user doesn't use shortcodes
126
+
127
+ if (ABH_Classes_Tools::getOption('abh_shortcode') == 0)
128
+ return;
129
+
130
+ self::$shortCodesSet = true;
131
+ /* if config allready in cache */
132
+ if (!isset(ABH_Classes_ObjController::$config)) {
133
+ $config_file = _ABH_CORE_DIR_ . 'config.xml';
134
+ if (!file_exists($config_file))
135
+ return;
136
+
137
+ /* load configuration blocks data from core config files */
138
+ $data = file_get_contents($config_file);
139
+ ABH_Classes_ObjController::$config = json_decode(json_encode((array) simplexml_load_string($data)), 1);
140
+ }
141
+ // echo '<pre>' . print_r(ABH_Classes_ObjController::$config['block'], true) . '</br>';
142
+ //print_r(ABH_Classes_ObjController::$config);
143
+ if (is_array(ABH_Classes_ObjController::$config))
144
+ foreach (ABH_Classes_ObjController::$config['block'] as $block) {
145
+ if (isset($block['name'])) {
146
+ if (isset($block['active']) && $block['active'] == 1)
147
+ if (isset($block['shortcodes']['shortcode'])) {
148
+ $instance = ABH_Classes_ObjController::getController($block['name']);
149
+ if (!is_array($block['shortcodes']['shortcode'])) {
150
+
151
+ if (is_callable(array($instance, 'hookShortWidget' . ucfirst($block['shortcodes']['shortcode'])))) {
152
+ add_action('widget_text', array($instance, 'hookShortWidget' . ucfirst($block['shortcodes']['shortcode'])), 10, 1);
153
+ }
154
+ add_shortcode($block['shortcodes']['shortcode'], array($instance, 'hookShort' . ucfirst($block['shortcodes']['shortcode'])));
155
+ } else {
156
+ foreach ($block['shortcodes']['shortcode'] as $shortcode) {
157
+ if (is_callable(array($instance, 'hookShortWidget' . ucfirst($shortcode)))) {
158
+ add_action('widget_text', array($instance, 'hookShortWidget' . ucfirst($shortcode)), 10, 1);
159
+ }
160
+ add_shortcode($shortcode, array($instance, 'hookShort' . ucfirst($shortcode)));
161
+ }
162
+ }
163
+ }
164
+ }
165
+ }
166
+ }
167
+
168
+ }
169
+
170
+ ?>
classes/ObjController.php ADDED
@@ -0,0 +1,209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * The class creates object for plugin classes
5
+ */
6
+ class ABH_Classes_ObjController {
7
+
8
+ /** @var array of instances */
9
+ public static $instances;
10
+
11
+ /** @var array from core config */
12
+ public static $config;
13
+
14
+ /**
15
+ * Get the instance of the specified class
16
+ *
17
+ * @param string $className
18
+ * @param bool $core TRUE is the class is a core class or FALSE if it is from classes directory
19
+ *
20
+ * @return object of the class|false
21
+ */
22
+ public static function getController($className) {
23
+ if ($class = self::getClassPath($className)) {
24
+ if (!isset(self::$instances[$className])) {
25
+ /* check if class is already defined */
26
+ if (!class_exists($className) || $className == get_class()) {
27
+ self::includeController($class['dir'], $class['name']);
28
+ self::$instances[$className] = new $className;
29
+ return self::$instances[$className];
30
+ }
31
+ }
32
+ else
33
+ return self::$instances[$className];
34
+ }
35
+ return false;
36
+ }
37
+
38
+ private static function includeController($classDir, $className) {
39
+
40
+ if (file_exists($classDir . $className . '.php'))
41
+ try {
42
+ include_once($classDir . $className . '.php');
43
+ } catch (Exception $e) {
44
+ echo 'Controller Error: ' . $e->getMessage();
45
+ }
46
+ }
47
+
48
+ /**
49
+ * Get the instance of the specified model class
50
+ *
51
+ * @param string $className
52
+ *
53
+ * @return object of the class
54
+ */
55
+ public static function getModel($className) {
56
+ if ($class = self::getClassPath($className)) {
57
+ //set the model name for this class
58
+ $className = _ABH_NAMESPACE_ . '_Models_' . $class['name'];
59
+
60
+ if (!isset(self::$instances[$className])) {
61
+ /* if $core == true then call the class from core directory */
62
+ self::includeModel(_ABH_MODEL_DIR_, $class['name']);
63
+
64
+ //echo $className . '<br />';
65
+ if (class_exists($className)) {
66
+ self::$instances[$className] = new $className;
67
+ return self::$instances[$className];
68
+ }
69
+ }
70
+ else
71
+ return self::$instances[$className];
72
+ }
73
+ return;
74
+ }
75
+
76
+ private static function includeModel($classDir, $className) {
77
+
78
+ /* check if class is already defined */
79
+ if (file_exists($classDir . $className . '.php'))
80
+ try {
81
+ include_once($classDir . $className . '.php');
82
+ } catch (Exception $e) {
83
+ echo 'Model Error: ' . $e->getMessage();
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Get the instance of the specified block from core directory
89
+ *
90
+ * @param string $className
91
+ *
92
+ * @return object of the class
93
+ */
94
+ public static function getBlock($className) {
95
+ if ($class = self::getClassPath($className)) {
96
+ $className = _ABH_NAMESPACE_ . '_Core_' . $class['name'];
97
+
98
+ //set the model name for this class
99
+ if (!isset(self::$instances[$className])) {
100
+
101
+ /* if $core == true then call the class from core directory */
102
+ self::includeBlock(_ABH_CORE_DIR_, $class['name']);
103
+
104
+ if (class_exists($className)) {
105
+ self::$instances[$className] = new $className;
106
+ return self::$instances[$className];
107
+ }
108
+ else
109
+ exit("Block error: Can't call $className class");
110
+ }
111
+ else
112
+ return self::$instances[$className];
113
+ }
114
+ return;
115
+ }
116
+
117
+ private static function includeBlock($classDir, $className) {
118
+
119
+ if (file_exists($classDir . $className . '.php'))
120
+ try {
121
+ require_once($classDir . $className . '.php');
122
+ } catch (Exception $e) {
123
+ echo 'Model Error: ' . $e->getMessage();
124
+ }
125
+ }
126
+
127
+ /**
128
+ * Get all core classes from config.xml in core directory
129
+ *
130
+ * @param string $for
131
+ */
132
+ public function getBlocks($for) {
133
+ /* if config allready in cache */
134
+ if (!isset(self::$config)) {
135
+ $config_file = _ABH_CORE_DIR_ . 'config.xml';
136
+ if (!file_exists($config_file))
137
+ return;
138
+
139
+ /* load configuration blocks data from core config files */
140
+ $data = file_get_contents($config_file);
141
+ self::$config = json_decode(json_encode((array) simplexml_load_string($data)), 1);
142
+ ;
143
+ }
144
+ //print_r(self::$config);
145
+ if (is_array(self::$config))
146
+ foreach (self::$config['block'] as $block) {
147
+ if (isset($block['active']) && $block['active'] == 1)
148
+ if (isset($block['controllers']['controller']))
149
+ if (!is_array($block['controllers']['controller'])) {
150
+ /* if the block should load for the current controller */
151
+ if ($for == $block['controllers']['controller']) {
152
+ ABH_Classes_ObjController::getBlock($block['name'])->init();
153
+ }
154
+ } else {
155
+ foreach ($block['controllers']['controller'] as $controller) {
156
+ /* if the block should load for the current controller */
157
+ if ($for == $controller) {
158
+ ABH_Classes_ObjController::getBlock($block['name'])->init();
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+
165
+ /**
166
+ * Check if the class is correctly set
167
+ *
168
+ * @param string $className
169
+ * @return boolean
170
+ */
171
+ private static function checkClassPath($className) {
172
+ $path = preg_split('/[_]+/', $className);
173
+ if (is_array($path) && count($path) > 1) {
174
+ if (in_array(_ABH_NAMESPACE_, $path)) {
175
+ return true;
176
+ }
177
+ }
178
+
179
+ return false;
180
+ }
181
+
182
+ /**
183
+ * Get the path of the class and name of the class
184
+ *
185
+ * @param string $className
186
+ * @return array | boolean
187
+ * array(
188
+ * dir - absolute path of the class
189
+ * name - the name of the file
190
+ * }
191
+ */
192
+ public static function getClassPath($className) {
193
+ $path = array();
194
+ $dir = '';
195
+
196
+ if (self::checkClassPath($className)) {
197
+ $path = preg_split('/[_]+/', $className);
198
+ for ($i = 1; $i < sizeof($path) - 1; $i++)
199
+ $dir .= strtolower($path[$i]) . '/';
200
+
201
+ return array('dir' => _ABH_ROOT_DIR_ . '/' . $dir,
202
+ 'name' => $path[sizeof($path) - 1]);
203
+ }
204
+ return false;
205
+ }
206
+
207
+ }
208
+
209
+ ?>
classes/Tools.php ADDED
@@ -0,0 +1,434 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Handles the parameters and url
5
+ *
6
+ * @author StarBox
7
+ */
8
+ class ABH_Classes_Tools extends ABH_Classes_FrontController {
9
+
10
+ /** @var array Saved options in database */
11
+ public static $options = array();
12
+
13
+ /** @var integer Count the errors in site */
14
+ static $errors_count = 0;
15
+
16
+ /** @var array */
17
+ private static $debug;
18
+
19
+ function __construct() {
20
+ parent::__construct();
21
+
22
+ self::$options = $this->getOptions();
23
+
24
+ $this->checkDebug(); //Check for debug
25
+ }
26
+
27
+ public static function getUserID() {
28
+ global $current_user;
29
+ return $current_user->ID;
30
+ }
31
+
32
+ /**
33
+ * This hook will save the current version in database
34
+ *
35
+ * @return void
36
+ */
37
+ function hookInit() {
38
+
39
+ //TinyMCE editor required
40
+ //set_user_setting('editor', 'tinymce');
41
+
42
+ $this->loadMultilanguage();
43
+
44
+ //add setting link in plugin
45
+ add_filter('plugin_action_links', array($this, 'hookActionlink'), 5, 2);
46
+ }
47
+
48
+ /**
49
+ * Hook the frontent event to load the translations
50
+ */
51
+ function hookFrontinit() {
52
+ $this->loadMultilanguage();
53
+ }
54
+
55
+ /**
56
+ * Add a link to settings in the plugin list
57
+ *
58
+ * @param array $links
59
+ * @param type $file
60
+ * @return array
61
+ */
62
+ public function hookActionlink($links, $file) {
63
+
64
+ if ($file == strtolower(_ABH_PLUGIN_NAME_) . '/' . strtolower(_ABH_PLUGIN_NAME_) . '.php') {
65
+ $link = '<a href="' . admin_url('admin.php?page=abh_settings') . '">' . __('Settings', _ABH_PLUGIN_NAME_) . '</a>';
66
+ array_unshift($links, $link);
67
+ }
68
+ return $links;
69
+ }
70
+
71
+ /**
72
+ * Load the Options from user option table in DB
73
+ *
74
+ * @return void
75
+ */
76
+ public static function getOptions() {
77
+ $default = array(
78
+ 'abh_version' => ABH_VERSION,
79
+ 'abh_use' => 1,
80
+ 'abh_subscribe' => 0,
81
+ 'abh_inposts' => 1,
82
+ 'abh_strictposts' => 0,
83
+ 'abh_inpages' => 0,
84
+ 'abh_ineachpost' => 0,
85
+ 'abh_showopengraph' => 1,
86
+ 'abh_shortcode' => 1,
87
+ 'abh_powered_by' => 1,
88
+ // --
89
+ 'abh_position' => 'down',
90
+ 'anh_crt_posts' => 3,
91
+ 'abh_author' => array(),
92
+ 'abh_theme' => 'business',
93
+ 'abh_achposttheme' => 'drop-down',
94
+ 'abh_titlefontsize' => 'default',
95
+ 'abh_descfontsize' => 'default',
96
+ );
97
+ $options = json_decode(get_option(ABH_OPTION), true);
98
+
99
+ if (is_array($options)) {
100
+ $options = @array_merge($default, $options);
101
+ } else {
102
+ $options = $default;
103
+ }
104
+
105
+ $options['abh_themes'] = array('business', 'fancy', 'minimal', 'drop-down', 'topstar', 'topstar-round');
106
+ $options['abh_achpostthemes'] = array('drop-down', 'topstar', 'topstar-round');
107
+ $options['abh_titlefontsizes'] = array('default', '10px', '12px', '14px', '16px', '18px', '20px', '24px', '26px', '30px');
108
+ $options['abh_descfontsizes'] = array('default', '10px', '12px', '14px', '16px', '18px', '20px', '24px', '26px', '30px');
109
+
110
+ return $options;
111
+ }
112
+
113
+ public static function setOption($value, $new) {
114
+ self::$options[$value] = $new;
115
+ return self::$options[$value];
116
+ }
117
+
118
+ public static function getOption($value) {
119
+ if (isset(self::$options[$value]))
120
+ return self::$options[$value];
121
+ else
122
+ return false;
123
+ }
124
+
125
+ /**
126
+ * Save the Options in user option table in DB
127
+ *
128
+ * @return void
129
+ */
130
+ public static function saveOptions($key, $value) {
131
+ self::$options[$key] = $value;
132
+ update_option(ABH_OPTION, json_encode(self::$options));
133
+ }
134
+
135
+ /**
136
+ * Set the header type
137
+ * @param type $type
138
+ */
139
+ public static function setHeader($type) {
140
+ if (ABH_Classes_Tools::getValue('abh_debug') == 'on')
141
+ return;
142
+
143
+ switch ($type) {
144
+ case 'json':
145
+ header('Content-Type: application/json');
146
+ }
147
+ }
148
+
149
+ /**
150
+ * Get a value from $_POST / $_GET
151
+ * if unavailable, take a default value
152
+ *
153
+ * @param string $key Value key
154
+ * @param mixed $defaultValue (optional)
155
+ * @return mixed Value
156
+ */
157
+ public static function getValue($key, $defaultValue = false) {
158
+ if (!isset($key) OR empty($key) OR ! is_string($key))
159
+ return false;
160
+ $ret = (isset($_POST[$key]) ? $_POST[$key] : (isset($_GET[$key]) ? $_GET[$key] : $defaultValue));
161
+
162
+ if (is_string($ret) === true)
163
+ $ret = urldecode(preg_replace('/((\%5C0+)|(\%00+))/i', '', urlencode($ret)));
164
+ return !is_string($ret) ? $ret : stripslashes($ret);
165
+ }
166
+
167
+ /**
168
+ * Check if the parameter is set
169
+ *
170
+ * @param string $key
171
+ * @return boolean
172
+ */
173
+ public static function getIsset($key) {
174
+ if (!isset($key) OR empty($key) OR ! is_string($key))
175
+ return false;
176
+ return isset($_POST[$key]) ? true : (isset($_GET[$key]) ? true : false);
177
+ }
178
+
179
+ /**
180
+ * Show the notices to WP
181
+ *
182
+ * @return void
183
+ */
184
+ public static function showNotices($message, $type = 'abh_notices') {
185
+ if (file_exists(_ABH_THEME_DIR_ . 'Notices.php')) {
186
+ ob_start();
187
+ include (_ABH_THEME_DIR_ . 'Notices.php');
188
+ $message = ob_get_contents();
189
+ ob_end_clean();
190
+ }
191
+
192
+ return $message;
193
+ }
194
+
195
+ /**
196
+ * Load the multilanguage support from .mo
197
+ */
198
+ private function loadMultilanguage() {
199
+ if (!defined('WP_PLUGIN_DIR')) {
200
+ load_plugin_textdomain(_ABH_PLUGIN_NAME_, _ABH_PLUGIN_NAME_ . '/languages/');
201
+ } else {
202
+ load_plugin_textdomain(_ABH_PLUGIN_NAME_, null, _ABH_PLUGIN_NAME_ . '/languages/');
203
+ }
204
+ }
205
+
206
+ /**
207
+ * Connect remote with CURL if exists
208
+ */
209
+ public static function abh_remote_get($url, $param = array()) {
210
+
211
+ $url_domain = parse_url($url);
212
+ $url_domain = $url_domain['host'];
213
+
214
+ if (isset($param['timeout']))
215
+ $timeout = $param['timeout'];
216
+ else
217
+ $timeout = 30;
218
+
219
+ if (function_exists('curl_init')) {
220
+ return self::abh_curl($url, array('timeout' => $timeout,));
221
+ } else {
222
+ return self::abh_wpcall($url, array('timeout' => $timeout));
223
+ }
224
+ }
225
+
226
+ /**
227
+ * Call remote UR with CURL
228
+ * @param string $url
229
+ * @param array $param
230
+ * @return string
231
+ */
232
+ private static function abh_curl($url, $param = array()) {
233
+ $ch = curl_init($url);
234
+ curl_setopt($ch, CURLOPT_URL, $url);
235
+ curl_setopt($ch, CURLOPT_HEADER, false);
236
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
237
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
238
+ curl_setopt($ch, CURLOPT_TIMEOUT, $param['timeout']);
239
+
240
+ $response = curl_exec($ch);
241
+ $response = self::cleanResponce($response);
242
+
243
+ if (curl_errno($ch) == 1) { //if protocol not supported
244
+ self::dump(curl_getinfo($ch), curl_errno($ch), curl_error($ch));
245
+ $response = self::abh_wpcall($url, $param); //use the wordpress call
246
+ }
247
+ self::dump('CURL', $url, $param, $response); //output debug
248
+
249
+ curl_close($ch);
250
+ return $response;
251
+ }
252
+
253
+ /**
254
+ * Use the WP remote call
255
+ * @param string $url
256
+ * @param array $param
257
+ * @return string
258
+ */
259
+ private static function abh_wpcall($url, $param = array()) {
260
+ $response = wp_remote_get($url, $param);
261
+ $response = self::cleanResponce(wp_remote_retrieve_body($response)); //clear and get the body
262
+ return $response;
263
+ }
264
+
265
+ /**
266
+ * Connect remote with CURL if exists
267
+ */
268
+ public static function abh_remote_head($url) {
269
+ $response = array();
270
+
271
+ if (isset($param['timeout']))
272
+ $timeout = $param['timeout'];
273
+ else
274
+ $timeout = 30;
275
+
276
+ if (function_exists('curl_exec')) {
277
+ $ch = curl_init($url);
278
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
279
+ curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
280
+ curl_exec($ch);
281
+
282
+ $response['headers']['content-type'] = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
283
+ $response['response']['code'] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
284
+ curl_close($ch);
285
+
286
+ return $response;
287
+ } else {
288
+ return wp_remote_head($url, array('timeout' => $timeout));
289
+ }
290
+
291
+ return false;
292
+ }
293
+
294
+ /**
295
+ * Get the Json from responce if any
296
+ * @param string $response
297
+ * @return string
298
+ */
299
+ private static function cleanResponce($response) {
300
+
301
+ if (function_exists('substr_count'))
302
+ if (substr_count($response, '(') > 1)
303
+ return $response;
304
+
305
+ if (strpos($response, '(') !== false && strpos($response, ')') !== false)
306
+ $response = substr($response, (strpos($response, '(') + 1), (strpos($response, ')') - 1));
307
+
308
+ return $response;
309
+ }
310
+
311
+ /**
312
+ * Check for SEO blog bad settings
313
+ */
314
+ public static function checkErrorSettings($count_only = false) {
315
+
316
+
317
+ if (function_exists('is_network_admin') && is_network_admin())
318
+ return;
319
+
320
+ if (false) {
321
+ if ($count_only)
322
+ self::$errors_count++;
323
+ else
324
+ ABH_Classes_Error::setError(__('Notice', _ABH_PLUGIN_NAME_) . " <br /> ", 'settings');
325
+ }
326
+ }
327
+
328
+ /**
329
+ * Support for i18n with wpml, polyglot or qtrans
330
+ *
331
+ * @param string $in
332
+ * @return string $in localized
333
+ */
334
+ public static function i18n($in) {
335
+ if (function_exists('langswitch_filter_langs_with_message')) {
336
+ $in = langswitch_filter_langs_with_message($in);
337
+ }
338
+ if (function_exists('polyglot_filter')) {
339
+ $in = polyglot_filter($in);
340
+ }
341
+ if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) {
342
+ $in = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($in);
343
+ }
344
+ $in = apply_filters('localization', $in);
345
+ return $in;
346
+ }
347
+
348
+ /**
349
+ * Convert integer on the locale format.
350
+ *
351
+ * @param int $number The number to convert based on locale.
352
+ * @param int $decimals Precision of the number of decimal places.
353
+ * @return string Converted number in string format.
354
+ */
355
+ public static function i18n_number_format($number, $decimals = 0) {
356
+ global $wp_locale;
357
+ $formatted = number_format($number, absint($decimals), $wp_locale->number_format['decimal_point'], $wp_locale->number_format['thousands_sep']);
358
+ return apply_filters('number_format_i18n', $formatted);
359
+ }
360
+
361
+ /**
362
+ * Check if debug is called
363
+ */
364
+ private function checkDebug() {
365
+ //if debug is called
366
+ if (self::getIsset('abh_debug')) {
367
+ if (self::getValue('abh_debug') === 'on') {
368
+ if (function_exists('register_shutdown_function'))
369
+ register_shutdown_function(array($this, 'showDebug'));
370
+ }
371
+ }
372
+ }
373
+
374
+ /**
375
+ * Store the debug for a later view
376
+ */
377
+ public static function dump() {
378
+ $output = '';
379
+ $callee = array('file' => '', 'line' => '');
380
+ if (function_exists('func_get_args')) {
381
+ $arguments = func_get_args();
382
+ $total_arguments = count($arguments);
383
+ } else
384
+ $arguments = array();
385
+
386
+
387
+
388
+ if (function_exists('debug_backtrace'))
389
+ list( $callee ) = debug_backtrace();
390
+
391
+ $output .= '<fieldset style="background: #FFFFFF; border: 1px #CCCCCC solid; padding: 5px; font-size: 9pt; margin: 0;">';
392
+ $output .= '<legend style="background: #EEEEEE; padding: 2px; font-size: 8pt;">' . $callee['file'] . ' @ line: ' . $callee['line']
393
+ . '</legend><pre style="margin: 0; font-size: 8pt; text-align: left;">';
394
+
395
+ $i = 0;
396
+ foreach ($arguments as $argument) {
397
+ if (count($arguments) > 1)
398
+ $output .= "\n" . '<strong>#' . ( ++$i ) . ' of ' . $total_arguments . '</strong>: ';
399
+
400
+ // if argument is boolean, false value does not display, so ...
401
+ if (is_bool($argument))
402
+ $argument = ( $argument ) ? 'TRUE' : 'FALSE';
403
+ else
404
+ if (is_object($argument) && function_exists('array_reverse') && function_exists('class_parents'))
405
+ $output .= implode("\n" . '|' . "\n", array_reverse(class_parents($argument))) . "\n" . '|' . "\n";
406
+
407
+ $output .= htmlspecialchars(print_r($argument, TRUE))
408
+ . ( ( is_object($argument) && function_exists('spl_object_hash') ) ? spl_object_hash($argument) : '' );
409
+ }
410
+ $output .= "</pre>";
411
+ $output .= "</fieldset>";
412
+
413
+ self::$debug[] = $output;
414
+ }
415
+
416
+ /**
417
+ * Show the debug dump
418
+ */
419
+ public static function showDebug() {
420
+ echo "Debug result: <br />" . @implode('<br />', self::$debug);
421
+ }
422
+
423
+ public static function emptyCache() {
424
+ if (function_exists('w3tc_pgcache_flush')) {
425
+ w3tc_pgcache_flush();
426
+ }
427
+ if (function_exists('wp_cache_clear_cache')) {
428
+ wp_cache_clear_cache();
429
+ }
430
+ }
431
+
432
+ }
433
+
434
+ ?>
config/config.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * The configuration file
5
+ */
6
+ define('_ABH_NONCE_ID_', 'abh_nonce');
7
+
8
+ if (!defined('PHP_VERSION_ID')) {
9
+ $version = explode('.', PHP_VERSION);
10
+ define('PHP_VERSION_ID', ((int) @$version[0] * 1000 + (int) @$version[1] * 100 + ((isset($version[2])) ? ((int) $version[2] * 10) : 0)));
11
+ }
12
+ if (!defined('WP_VERSION_ID') && isset($wp_version)) {
13
+ $version = explode('.', $wp_version);
14
+ define('WP_VERSION_ID', ((int) @$version[0] * 1000 + (int) @$version[1] * 100 + ((isset($version[2])) ? ((int) $version[2] * 10) : 0)));
15
+ }
16
+ if (!defined('WP_VERSION_ID'))
17
+ define('WP_VERSION_ID', '3000');
18
+
19
+ if (!defined('ABH_VERSION_ID')) {
20
+ $version = explode('.', ABH_VERSION);
21
+ define('ABH_VERSION_ID', ((int) @$version[0] * 1000 + (int) @$version[1] * 100 + ((isset($version[2])) ? ((int) $version[2] * 10) : 0)));
22
+ }
23
+
24
+ /* No path file? error ... */
25
+ require_once(dirname(__FILE__) . '/paths.php');
26
+
27
+ /* Define the record name in the Option and UserMeta tables */
28
+ define('ABH_OPTION', 'abh_options');
29
+ ?>
config/paths.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ define('_ABH_NAMESPACE_', 'ABH'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
4
+ define('_ABH_PLUGIN_NAME_', 'starbox'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
5
+ define('_ABH_THEME_NAME_', 'admin'); //THIS LINE WILL BE CHANGED WITH THE USER SETTINGS
6
+
7
+ /* Directories */
8
+ define('_ABH_ROOT_DIR_', plugin_dir_path(dirname(__FILE__)));
9
+
10
+ $upload_dir = wp_upload_dir();
11
+ define('_ABH_GRAVATAR_DIR_', (is_dir($upload_dir['basedir']) ? $upload_dir['basedir'] . '/gravatar/' : _ABH_ROOT_DIR_ . '/gravatar/'));
12
+ if (!is_dir(_ABH_GRAVATAR_DIR_))
13
+ if (!wp_mkdir_p(_ABH_GRAVATAR_DIR_)) {
14
+ echo sprintf(__('Unable to create directory %s. Is its parent directory writable by the server?'), _ABH_GRAVATAR_DIR_);
15
+ }
16
+ define('_ABH_CLASSES_DIR_', _ABH_ROOT_DIR_ . '/classes/');
17
+ define('_ABH_CONTROLLER_DIR_', _ABH_ROOT_DIR_ . '/controllers/');
18
+ define('_ABH_MODEL_DIR_', _ABH_ROOT_DIR_ . '/models/');
19
+ define('_ABH_TRANSLATIONS_DIR_', _ABH_ROOT_DIR_ . '/translations/');
20
+ define('_ABH_CORE_DIR_', _ABH_ROOT_DIR_ . '/core/');
21
+ define('_ABH_ALL_THEMES_DIR_', _ABH_ROOT_DIR_ . '/themes/');
22
+ define('_ABH_THEME_DIR_', _ABH_ROOT_DIR_ . '/themes/' . _ABH_THEME_NAME_ . '/');
23
+
24
+ /* URLS */
25
+ define('_ABH_URL_', plugins_url('/', dirname(__FILE__)));
26
+ define('_ABH_GRAVATAR_URL_', (is_dir($upload_dir['basedir'] . '/gravatar') ? $upload_dir['baseurl'] . '/gravatar/' : _ABH_URL_ . '/gravatar/'));
27
+ define('_ABH_ALL_THEMES_URL_', _ABH_URL_ . '/themes/');
28
+ define('_ABH_THEME_URL_', _ABH_URL_ . '/themes/' . _ABH_THEME_NAME_ . '/');
29
+ ?>
controllers/Frontend.php ADDED
@@ -0,0 +1,495 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ABH_Controllers_Frontend extends ABH_Classes_FrontController {
4
+
5
+ public static $options;
6
+ private $box = '';
7
+ private $show = false;
8
+ public $custom = array();
9
+ private $shortcode = '';
10
+
11
+ function __construct() {
12
+ parent::__construct();
13
+ $this->shortcode = '/\[starbox([\s+][^\]]+)*\]/i';
14
+ }
15
+
16
+ /**
17
+ * Get the author box
18
+ * Dependency: hookFronthead();
19
+ * @return string|false if the author is not found
20
+ */
21
+ public function getBox() {
22
+ $this->model->single = true;
23
+ return $this->model->getAuthorBox();
24
+ }
25
+
26
+ /**
27
+ * Called on shortcode+
28
+ * @param string $content
29
+ * @return string
30
+ */
31
+ public function hookShortStarboximg($param) {
32
+ global $post;
33
+ $id = 0;
34
+
35
+ if (isset($post->ID))
36
+ $this->custom[$post->ID] = true;
37
+
38
+ extract(shortcode_atts(array('id' => 0), $param));
39
+
40
+ if ((int) $id > 0) {
41
+ $this->model->author = get_userdata((int) $id);
42
+ //get the author details settings
43
+ $this->model->details = ABH_Classes_Tools::getOption('abh_author' . $this->model->author->ID);
44
+ }
45
+
46
+ if ($id === 'all') {
47
+ $args = array(
48
+ 'orderyby' => 'post_count',
49
+ 'order' => 'DESC'
50
+ );
51
+
52
+ $theme = ABH_Classes_Tools::getOption('abh_theme');
53
+ ABH_Classes_Tools::setOption('abh_powered_by', 0); //down show powered by for too many
54
+
55
+ $users = get_users($args);
56
+ foreach ($users as $user) {
57
+ $details = ABH_Classes_Tools::getOption('abh_author' . $user->ID);
58
+ if (!isset($details['abh_use']) || $details['abh_use'])
59
+ $str .= ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showStarboximg($user->ID);
60
+ if (!$force && (!is_single() && !is_singular()))
61
+ break; //don't show multiple authors in post list
62
+ }
63
+ } elseif (!is_numeric($id)) {
64
+ if (strpos($id, ',') !== false) {
65
+ $show_list = @preg_split("/,/", $id);
66
+ ABH_Classes_Tools::setOption('abh_powered_by', 0); //down show powered by for too many
67
+ } else {
68
+ $show_list = array($id);
69
+ $this->model->author = get_userdatabylogin($id);
70
+
71
+ //get the author details settings
72
+ $this->model->details = ABH_Classes_Tools::getOption('abh_author' . $this->model->author->ID);
73
+ }
74
+
75
+ $args = array(
76
+ 'orderyby' => 'post_count',
77
+ 'order' => 'DESC',
78
+ );
79
+
80
+ $users = get_users($args);
81
+ foreach ($users as $user) {
82
+ // show mutiple authors in one shortcode
83
+ if (in_array($user->user_login, $show_list) || in_array($user->ID, $show_list)) {
84
+
85
+ $details = ABH_Classes_Tools::getOption('abh_author' . $user->ID);
86
+ if (!isset($details['abh_use']) || $details['abh_use'])
87
+ $str .= ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showStarboximg($user->ID);
88
+ if (!$force && (!is_single() && !is_singular()))
89
+ break; //don't show multiple authors in post list
90
+ }
91
+ }
92
+ $str;
93
+ }
94
+ else {
95
+ $str = ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showStarboximg((int) $id);
96
+ }
97
+
98
+ return $str;
99
+ }
100
+
101
+ /**
102
+ * Called on shortcode+
103
+ * @param string $content
104
+ * @return string
105
+ */
106
+ public function hookShortStarbox($param, $force = false) {
107
+ global $post;
108
+ $id = 0;
109
+ $str = '';
110
+ $desc = '';
111
+ $lpc = null; //latest posts category
112
+ $theme = '';
113
+
114
+ if (isset($post->ID))
115
+ $this->custom[$post->ID] = true;
116
+
117
+ extract(shortcode_atts(array('id' => 0, 'desc' => '', 'lpc' => '', 'theme' => ''), $param));
118
+ if ($theme <> '') {
119
+ if (!in_array($theme, ABH_Classes_Tools::getOption('abh_themes')))
120
+ $theme = '';
121
+ }
122
+ if (isset($lpc)) {
123
+ $this->model->category = $lpc;
124
+ }
125
+
126
+ if ((int) $id > 0) {
127
+ $this->model->author = get_userdata((int) $id);
128
+
129
+ //get the author details settings
130
+ $this->model->details = ABH_Classes_Tools::getOption('abh_author' . $this->model->author->ID);
131
+ $theme = ($theme == '' || $this->model->details['abh_theme'] <> 'default') ? $this->model->details['abh_theme'] : $theme;
132
+ }
133
+
134
+ $theme = ($theme == '' || $theme == 'default' ) ? ABH_Classes_Tools::getOption('abh_theme') : $theme;
135
+
136
+
137
+ //remove the multiple new lines from custom description
138
+ if ($desc <> '') {
139
+ $desc = ABH_Classes_Tools::i18n($desc);
140
+ $desc = preg_replace('/(<br[^>]*>)+/i', "", $desc);
141
+ }
142
+
143
+ //
144
+ //show all the authors in the content
145
+
146
+ if ($id === 'all') {
147
+ $args = array(
148
+ 'orderyby' => 'post_count',
149
+ 'order' => 'DESC'
150
+ );
151
+
152
+ $theme = ABH_Classes_Tools::getOption('abh_theme');
153
+ ABH_Classes_Tools::setOption('abh_powered_by', 0); //down show powered by for too many
154
+
155
+ $users = get_users($args);
156
+ foreach ($users as $user) {
157
+ $details = ABH_Classes_Tools::getOption('abh_author' . $user->ID);
158
+ if (!isset($details['abh_use']) || $details['abh_use'])
159
+ $str .= ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showBox($user->ID, $desc);
160
+ if (!$force && (!is_single() && !is_singular()))
161
+ break; //don't show multiple authors in post list
162
+ }
163
+ } elseif (!is_numeric($id)) {
164
+ if (strpos($id, ',') !== false) {
165
+ $show_list = @preg_split("/,/", $id);
166
+ $theme = ABH_Classes_Tools::getOption('abh_theme');
167
+ ABH_Classes_Tools::setOption('abh_powered_by', 0); //down show powered by for too many
168
+ } else {
169
+ $show_list = array($id);
170
+ $this->model->author = get_userdatabylogin($id);
171
+
172
+ //get the author details settings
173
+ $this->model->details = ABH_Classes_Tools::getOption('abh_author' . $this->model->author->ID);
174
+ $theme = ($theme == '' || $this->model->details['abh_theme'] <> 'default') ? $this->model->details['abh_theme'] : $theme;
175
+ }
176
+
177
+ $args = array(
178
+ 'orderyby' => 'post_count',
179
+ 'order' => 'DESC',
180
+ );
181
+
182
+ $users = get_users($args);
183
+ foreach ($users as $user) {
184
+ // show mutiple authors in one shortcode
185
+ if (in_array($user->user_login, $show_list) || in_array($user->ID, $show_list)) {
186
+
187
+ $details = ABH_Classes_Tools::getOption('abh_author' . $user->ID);
188
+ if (!isset($details['abh_use']) || $details['abh_use'])
189
+ $str .= ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showBox($user->ID, $desc);
190
+ if (!$force && (!is_single() && !is_singular()))
191
+ break; //don't show multiple authors in post list
192
+ }
193
+ }
194
+ $str;
195
+ }
196
+ else {
197
+ $str = ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showBox((int) $id, $desc);
198
+ }
199
+
200
+ if ($theme <> '') {
201
+ if (file_exists(_ABH_ALL_THEMES_DIR_ . $theme . '/css/frontend.css'))
202
+ ABH_Classes_ObjController::getController('ABH_Classes_DisplayController')
203
+ ->loadMedia(_ABH_ALL_THEMES_URL_ . $theme . '/css/frontend.css'); //load the css and js for frontend
204
+ if (file_exists(_ABH_ALL_THEMES_DIR_ . $theme . '/js/frontend.js'))
205
+ ABH_Classes_ObjController::getController('ABH_Classes_DisplayController')
206
+ ->loadMedia(_ABH_ALL_THEMES_URL_ . $theme . '/js/frontend.js'); //load the css and js for frontend
207
+ }
208
+
209
+ return $str;
210
+ }
211
+
212
+ public function hookShortWidgetStarbox($content) {
213
+ $id = 0;
214
+ $desc = '';
215
+ $lpc = null; //latest posts category
216
+ $theme = '';
217
+
218
+ if (@preg_match($this->shortcode, $content, $out)) {
219
+ if (!empty($out) && isset($out[1])) {
220
+ if (trim($out[1]) <> '') {
221
+ $out[1] = str_replace(array('" ', '"'), array('"&', ''), $out[1]);
222
+ parse_str(trim($out[1]));
223
+ }
224
+ }
225
+
226
+
227
+ return str_replace($out[0], $this->hookShortStarbox(array('id' => $id, 'desc' => $desc, 'lpc' => $lpc, 'theme' => $theme), true), $content);
228
+ }
229
+ return $content;
230
+ }
231
+
232
+ /**
233
+ * Show the author box to the correct position
234
+ * @param string $content
235
+ * @return string
236
+ */
237
+ public function showAuthorBox($content = '') {
238
+ if (!isset($this->model->details['abh_google']) || $this->model->details['abh_google']) {
239
+ $content = preg_replace('/rel=[\"|\']([^\"\']*author[^\"\']*)[\"|\']/i', '', $content);
240
+ }
241
+
242
+ if (!isset($this->model->details['abh_use']) || $this->model->details['abh_use']) {
243
+ if ((is_single() && ABH_Classes_Tools::getOption('abh_inposts') == 1) ||
244
+ (is_page() && ABH_Classes_Tools::getOption('abh_inpages') == 1)) {
245
+ $this->model->single = true;
246
+ $this->box = $this->getBox();
247
+ }
248
+
249
+ switch ($this->model->position) {
250
+ case 'up':
251
+ $content = $this->box . $content;
252
+ break;
253
+ case 'down':
254
+ default:
255
+ $content .= $this->box;
256
+ break;
257
+ }
258
+ }
259
+ return $content;
260
+ }
261
+
262
+ /**
263
+ * If called it will return the box and will not show the author box in article
264
+ * @param int $author_id (optional) The author ID
265
+ * @param string $custom_desc (optional) The custom description for the author
266
+ * @return string
267
+ */
268
+ public function showBox($author_id = 0, $description = '') {
269
+ if ($author_id == 0) {
270
+ global $wp_query;
271
+ if (!empty($wp_query->posts))
272
+ foreach ($wp_query->posts as $post) {
273
+ if ($post->ID && get_post_status($post->ID) == 'publish') {
274
+ // Get the author data
275
+ $post = get_post($post->ID);
276
+ break;
277
+ }
278
+ }
279
+ // cancel on errors
280
+ if (!isset($post) || !isset($post->post_author))
281
+ return;
282
+
283
+ // get the author data
284
+ if (is_author())
285
+ $this->model->author = get_queried_object();
286
+ else
287
+ $this->model->author = get_userdata($post->post_author);
288
+ }else {
289
+ $this->model->author = get_userdata($author_id);
290
+ }
291
+
292
+
293
+
294
+ //get the author details settings
295
+ $this->model->details = ABH_Classes_Tools::getOption('abh_author' . $this->model->author->ID);
296
+
297
+
298
+ if ($description <> '')
299
+ $this->model->details['abh_extra_description'] = $description;
300
+
301
+ $this->model->position = 'custom';
302
+ return $this->getBox();
303
+ }
304
+
305
+ /**
306
+ * If called it will return the author image or the gravatar img
307
+ * @param int $author_id (optional) The author ID
308
+ * @return string
309
+ */
310
+ public function showStarboximg($author_id = 0) {
311
+ if ($author_id == 0) {
312
+ global $wp_query;
313
+ if (!empty($wp_query->posts))
314
+ foreach ($wp_query->posts as $post) {
315
+ if ($post->ID && get_post_status($post->ID) == 'publish') {
316
+ // Get the author data
317
+ $post = get_post($post->ID);
318
+ break;
319
+ }
320
+ }
321
+ // cancel on errors
322
+ if (!isset($post) || !isset($post->post_author))
323
+ return;
324
+
325
+ // get the author data
326
+ if (is_author())
327
+ $this->model->author = get_queried_object();
328
+ else
329
+ $this->model->author = get_userdata($post->post_author);
330
+ }else {
331
+ $this->model->author = get_userdata($author_id);
332
+ }
333
+
334
+ //get the author details settings
335
+ $this->model->details = ABH_Classes_Tools::getOption('abh_author' . $this->model->author->ID);
336
+
337
+ return $this->model->getProfileImage();
338
+ }
339
+
340
+ /**
341
+ * Hook the Init in Frontend
342
+ */
343
+ public function hookFrontinit() {
344
+ if (isset($this->model->details) && $this->model->details['abh_google'] <> '') {
345
+ remove_action('wp_head', 'author_rel_link');
346
+ }
347
+ }
348
+
349
+ /**
350
+ * Hook the Frontend Header load
351
+ */
352
+ public function hookFronthead() {
353
+ global $wp_query;
354
+ $post = null;
355
+ //echo '<pre>' . print_r($wp_query, true) . '</pre>';
356
+
357
+ if ((is_single() && (ABH_Classes_Tools::getOption('abh_strictposts') == 0 || (ABH_Classes_Tools::getOption('abh_strictposts') == 1 && get_post_type() == 'post')) && ABH_Classes_Tools::getOption('abh_inposts') == 1) ||
358
+ (is_singular() && get_post_type() == 'page' && ABH_Classes_Tools::getOption('abh_inpages') == 1) ||
359
+ (ABH_Classes_Tools::getOption('abh_ineachpost') == 1) && (is_category() || is_tag() || (!is_singular() && get_post_type() == 'page') || (ABH_Classes_Tools::getOption('abh_strictposts') == 0 && is_archive()) || (ABH_Classes_Tools::getOption('abh_strictposts') == 0 && is_search()))) {
360
+
361
+ $theme = ABH_Classes_Tools::getOption('abh_theme');
362
+
363
+ if (!empty($wp_query->posts))
364
+ foreach ($wp_query->posts as $post) {
365
+ if ($post->ID && get_post_status($post->ID) == 'publish') {
366
+ // Get the author data
367
+ $post = get_post($post->ID);
368
+ break;
369
+ }
370
+ }
371
+ // cancel on errors
372
+ if (!isset($post) || !isset($post->post_author))
373
+ return;
374
+
375
+ // get the author data
376
+ if (is_author())
377
+ $this->model->author = get_queried_object();
378
+ else
379
+ $this->model->author = get_userdata($post->post_author);
380
+
381
+ //get the author details settings
382
+ $this->model->details = ABH_Classes_Tools::getOption('abh_author' . $this->model->author->ID);
383
+
384
+ if (isset($this->model->details['abh_lpc'])) //if the latest post category is set
385
+ $this->model->category = $this->model->details['abh_lpc'];
386
+
387
+ //Se the author box position
388
+ if (isset($this->model->details['abh_position']) && $this->model->details['abh_position'] <> 'default')
389
+ $this->model->position = $this->model->details['abh_position'];
390
+ else
391
+ $this->model->position = ABH_Classes_Tools::getOption('abh_position');
392
+
393
+ // For some themes the position is important to be on top
394
+ if (strpos($this->model->details['abh_theme'], 'topstar') !== false || ($this->model->details['abh_theme'] == 'default' && strpos(ABH_Classes_Tools::getOption('abh_theme'), 'topstar') !== false))
395
+ $this->model->position = 'up'; //force position for this theme
396
+
397
+ if (isset($this->model->details) && !empty($this->model->details) && $this->model->details['abh_theme'] <> '' && $this->model->details['abh_theme'] <> 'default')
398
+ $theme = $this->model->details['abh_theme'];
399
+
400
+ // set theme for author box shown for each article
401
+ if (is_author()) {
402
+ //Add the header meta authors for single post
403
+ echo $this->model->showMeta();
404
+ } else {
405
+ if ((ABH_Classes_Tools::getOption('abh_ineachpost') == 1 && count($wp_query->posts) > 1)) {
406
+ $theme = ABH_Classes_Tools::getOption('abh_achposttheme');
407
+ $this->show = true;
408
+ //echo '<pre>' . print_R($wp_query, true) . '</pre>';
409
+ } elseif (!isset($this->model->details['abh_use']) || $this->model->details['abh_use']) {
410
+ $this->show = true;
411
+
412
+ //Add the header meta authors for single post
413
+ echo $this->model->showMeta();
414
+ }
415
+ }
416
+
417
+ if ($this->show) {
418
+ // load the theme css and js in header
419
+ if (file_exists(_ABH_ALL_THEMES_DIR_ . $theme . '/css/frontend.css'))
420
+ ABH_Classes_ObjController::getController('ABH_Classes_DisplayController')
421
+ ->loadMedia(_ABH_ALL_THEMES_URL_ . $theme . '/css/frontend.css'); //load the css and js for frontend
422
+ if (file_exists(_ABH_ALL_THEMES_DIR_ . $theme . '/js/frontend.js'))
423
+ ABH_Classes_ObjController::getController('ABH_Classes_DisplayController')
424
+ ->loadMedia(_ABH_ALL_THEMES_URL_ . $theme . '/js/frontend.js'); //load the css and js for frontend
425
+
426
+ if (!is_author())
427
+ ABH_Classes_ObjController::getController('ABH_Classes_DisplayController')
428
+ ->loadMedia(_ABH_ALL_THEMES_URL_ . 'admin/css/hidedefault.css'); //load the css and js for frontend
429
+ }
430
+ }
431
+ }
432
+
433
+ /**
434
+ * Hook the Article/Page Content
435
+ * @global object $post
436
+ * @param string $content
437
+ * @return string
438
+ */
439
+ public function hookFrontcontent($content) {
440
+ global $post;
441
+ if (!$this->show || (isset($this->custom[$post->ID]) && $this->custom[$post->ID] == true))
442
+ return $content;
443
+
444
+ if (ABH_Classes_Tools::getOption('abh_shortcode') == 1)
445
+ if (preg_match($this->shortcode, $content)) {
446
+ $this->custom[$post->ID] = true;
447
+ return $content;
448
+ }
449
+
450
+
451
+ $content = $this->showAuthorBox($content);
452
+
453
+ if (ABH_Classes_Tools::getOption('abh_ineachpost') == 1 && $this->box == '') {
454
+ $post = get_post($post->ID);
455
+ if (!isset($post->post_author))
456
+ return;
457
+
458
+ // get the author data
459
+ $this->model->author = get_userdata($post->post_author);
460
+ //get the author details settings
461
+ $this->model->details = ABH_Classes_Tools::getOption('abh_author' . $this->model->author->ID);
462
+
463
+ if (!isset($this->model->details['abh_use']) || $this->model->details['abh_use'] == 1) {
464
+ $this->model->single = false;
465
+ echo $this->model->getAuthorBox();
466
+ }
467
+ }
468
+
469
+ return $content;
470
+ }
471
+
472
+ /**
473
+ * Hook the Frontend Widgets Content
474
+ */
475
+ public function hookFrontwidget($content) {
476
+ if (!$this->show)
477
+ return $content;
478
+
479
+
480
+ if (!isset($this->model->details['abh_google']) || $this->model->details['abh_google']) {
481
+ $content = preg_replace('/rel=[\"|\']([^\"\']*author[^\"\']*)[\"|\']/i', '', $content);
482
+ }
483
+ return $content;
484
+ }
485
+
486
+ /**
487
+ * Hook the Frontend Footer
488
+ */
489
+ public function hookFrontfooter() {
490
+
491
+ }
492
+
493
+ }
494
+
495
+ ?>
controllers/Menu.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ABH_Controllers_Menu extends ABH_Classes_FrontController {
4
+ /** @var array themes */
5
+
6
+ /** @var array snippet */
7
+ var $options = array();
8
+
9
+ //
10
+ function init() {
11
+
12
+ }
13
+
14
+ function upgradeRedirect() {
15
+ // Bail if no activation redirect
16
+ if (!get_transient('abh_upgrade'))
17
+ return;
18
+
19
+ // Delete the redirect transient
20
+ delete_transient('abh_upgrade');
21
+ ABH_Classes_Tools::emptyCache();
22
+
23
+ wp_safe_redirect(admin_url('admin.php?page=abh_settings'));
24
+ exit();
25
+ }
26
+
27
+ /*
28
+ * Creates the Setting menu in Wordpress
29
+ */
30
+
31
+ public function hookMenu() {
32
+
33
+ $this->upgradeRedirect();
34
+ ABH_Classes_Tools::checkErrorSettings(true);
35
+
36
+ /* add the plugin menu in admin */
37
+ if (current_user_can('administrator')) {
38
+ $this->model->addSubmenu(array('options-general.php',
39
+ __('StarBox Settings', _ABH_PLUGIN_NAME_),
40
+ __('StarBox', _ABH_PLUGIN_NAME_) . ABH_Classes_Tools::showNotices(ABH_Classes_Tools::$errors_count, 'errors_count'),
41
+ 'edit_posts',
42
+ 'abh_settings',
43
+ array($this, 'showMenu')
44
+ ));
45
+ }
46
+ add_action('edit_user_profile', array(ABH_Classes_ObjController::getBlock('ABH_Core_UserSettings'), 'init'));
47
+ add_action('show_user_profile', array(ABH_Classes_ObjController::getBlock('ABH_Core_UserSettings'), 'init'));
48
+
49
+ add_action('personal_options_update', array(ABH_Classes_ObjController::getBlock('ABH_Core_UserSettings'), 'action'));
50
+ add_action('edit_user_profile_update', array(ABH_Classes_ObjController::getBlock('ABH_Core_UserSettings'), 'action'));
51
+ }
52
+
53
+ public function showMenu() {
54
+ ABH_Classes_Tools::checkErrorSettings();
55
+ /* Force call of error display */
56
+ ABH_Classes_ObjController::getController('ABH_Classes_Error')->hookNotices();
57
+
58
+ parent::init();
59
+ }
60
+
61
+ /**
62
+ * Called when Post action is triggered
63
+ *
64
+ * @return void
65
+ */
66
+ public function action() {
67
+
68
+ parent::action();
69
+ switch (ABH_Classes_Tools::getValue('action')) {
70
+
71
+ case 'abh_settings_update':
72
+
73
+ if (ABH_Classes_Tools::getValue('data') <> '') {
74
+ parse_str(ABH_Classes_Tools::getValue('data'), $params);
75
+ $this->saveValues($params);
76
+ exit();
77
+ } else {
78
+ $this->saveValues($_POST);
79
+ }
80
+
81
+ ABH_Classes_Tools::emptyCache();
82
+ break;
83
+ case 'abh_settings_subscribe':
84
+ ABH_Classes_Tools::saveOptions('abh_subscribe', 1);
85
+ break;
86
+ case 'abh_powered_by':
87
+ ABH_Classes_Tools::saveOptions('abh_powered_by', ABH_Classes_Tools::getValue('abh_powered_by'));
88
+ break;
89
+ }
90
+ }
91
+
92
+ private function saveValues($params) {
93
+ if (!empty($params))
94
+ foreach ($params as $key => $value)
95
+ if ($key <> 'action' && $key <> 'nonce')
96
+ ABH_Classes_Tools::saveOptions($key, $value);
97
+ }
98
+
99
+ }
100
+
101
+ ?>
core/UserSettings.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Affiliate settings
5
+ */
6
+ class ABH_Core_UserSettings extends ABH_Classes_BlockController {
7
+
8
+ public $user;
9
+ public $author = array();
10
+ public $themes = array();
11
+
12
+ public function init($user = null) {
13
+ $this->user = $user;
14
+
15
+ if (isset($this->user->ID))
16
+ $this->author = ABH_Classes_Tools::getOption('abh_author' . $this->user->ID);
17
+
18
+ $default = array(
19
+ 'abh_use' => 1,
20
+ 'abh_nofollow_social' => 1,
21
+ // --
22
+ 'abh_title' => "",
23
+ 'abh_company' => "",
24
+ 'abh_company_url' => "",
25
+ 'abh_extra_description' => "",
26
+ // --
27
+ 'abh_socialtext' => "",
28
+ 'abh_twitter' => "",
29
+ 'abh_facebook' => "",
30
+ 'abh_google' => "",
31
+ 'abh_linkedin' => "",
32
+ 'abh_instagram' => "",
33
+ 'abh_flickr' => "",
34
+ 'abh_pinterest' => "",
35
+ 'abh_tumblr' => "",
36
+ 'abh_youtube' => "",
37
+ 'abh_vimeo' => "",
38
+ 'abh_klout' => "",
39
+ 'abh_gravatar' => "",
40
+ 'abh_theme' => "default",
41
+ 'abh_position' => "default",
42
+ );
43
+
44
+ if (!isset($this->author) || empty($this->author))
45
+ $this->author = $default;
46
+
47
+ $this->themes = @array_merge(array('default'), ABH_Classes_Tools::getOption('abh_themes'));
48
+
49
+ parent::init();
50
+ }
51
+
52
+ public function action() {
53
+ switch (ABH_CLasses_Tools::getValue('action')) {
54
+ //login action
55
+ case 'update':
56
+ case 'createuser':
57
+ $user_id = ABH_CLasses_Tools::getValue('user_id');
58
+
59
+ //Get the default settings
60
+ $settings = ABH_Classes_Tools::getOption('abh_author' . $user_id);
61
+
62
+ $settings['abh_use'] = (bool) ABH_CLasses_Tools::getValue('abh_use');
63
+ $settings['abh_nofollow_social'] = (int) ABH_CLasses_Tools::getValue('abh_nofollow_social');
64
+
65
+ $settings['abh_title'] = ABH_CLasses_Tools::getValue('abh_title');
66
+ $settings['abh_company'] = ABH_CLasses_Tools::getValue('abh_company');
67
+ $settings['abh_company_url'] = ABH_CLasses_Tools::getValue('abh_company_url');
68
+ $settings['abh_extra_description'] = ABH_CLasses_Tools::getValue('abh_extra_description');
69
+
70
+ // --
71
+
72
+ $settings['abh_socialtext'] = ABH_CLasses_Tools::getValue('abh_socialtext');
73
+ $settings['abh_twitter'] = ABH_CLasses_Tools::getValue('abh_twitter');
74
+ $settings['abh_facebook'] = ABH_CLasses_Tools::getValue('abh_facebook');
75
+ $settings['abh_google'] = ABH_CLasses_Tools::getValue('abh_google');
76
+ $settings['abh_linkedin'] = ABH_CLasses_Tools::getValue('abh_linkedin');
77
+ $settings['abh_klout'] = ABH_CLasses_Tools::getValue('abh_klout');
78
+ $settings['abh_instagram'] = ABH_CLasses_Tools::getValue('abh_instagram');
79
+ $settings['abh_flickr'] = ABH_CLasses_Tools::getValue('abh_flickr');
80
+ $settings['abh_pinterest'] = ABH_CLasses_Tools::getValue('abh_pinterest');
81
+ $settings['abh_tumblr'] = ABH_CLasses_Tools::getValue('abh_tumblr');
82
+ $settings['abh_youtube'] = ABH_CLasses_Tools::getValue('abh_youtube');
83
+ $settings['abh_vimeo'] = ABH_CLasses_Tools::getValue('abh_vimeo');
84
+
85
+ // --
86
+ $settings['abh_theme'] = ABH_CLasses_Tools::getValue('abh_theme');
87
+ $settings['abh_position'] = ABH_CLasses_Tools::getValue('abh_position');
88
+ /* if there is an icon to upload */
89
+ if (isset($_FILES['abh_gravatar']) && !empty($_FILES['abh_gravatar'])) {
90
+
91
+ $return = $this->model->addImage($_FILES['abh_gravatar']);
92
+ if ($return['name'] <> '')
93
+ $settings['abh_gravatar'] = $return['name'];
94
+ if ($return['message'] <> '')
95
+ define('ABH_MESSAGE_FAVICON', $return['message']);
96
+ }
97
+
98
+ if (ABH_CLasses_Tools::getValue('abh_resetgravatar') == 1)
99
+ $settings['abh_gravatar'] = '';
100
+
101
+ ABH_Classes_Tools::saveOptions('abh_author' . $user_id, $settings);
102
+
103
+ ABH_Classes_Tools::emptyCache();
104
+
105
+ ABH_Classes_Tools::checkErrorSettings();
106
+ /* Force call of error display */
107
+ ABH_Classes_ObjController::getController('ABH_Classes_Error')->hookNotices();
108
+
109
+ break;
110
+
111
+ case 'abh_get_box':
112
+ $user_id = ABH_CLasses_Tools::getValue('user_id');
113
+ $theme = ABH_CLasses_Tools::getValue('abh_theme');
114
+
115
+
116
+ ABH_CLasses_Tools::setOption('abh_titlefontsize', ABH_CLasses_Tools::getValue('abh_titlefontsize', 'default'));
117
+ ABH_CLasses_Tools::setOption('abh_descfontsize', ABH_CLasses_Tools::getValue('abh_descfontsize', 'default'));
118
+
119
+ if ($theme == 'default')
120
+ $theme = ABH_Classes_Tools::getOption('abh_theme');
121
+
122
+ $str = '';
123
+ $str .= '<script type="text/javascript" src="' . _ABH_ALL_THEMES_URL_ . $theme . '/js/frontend.js?ver=' . ABH_VERSION . '"></script>';
124
+ $str .= '<link rel="stylesheet" href="' . _ABH_ALL_THEMES_URL_ . $theme . '/css/frontend.css?ver=' . ABH_VERSION . '" type="text/css" media="all" />';
125
+ $str .= ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showBox($user_id);
126
+ ABH_Classes_Tools::setHeader('json');
127
+ echo json_encode(array('box' => $str));
128
+ exit();
129
+ break;
130
+ }
131
+ }
132
+
133
+ }
134
+
135
+ ?>
core/config.xml ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <blocks>
3
+ <block>
4
+ <name>ABH_Controllers_Menu</name>
5
+ <actions>
6
+ <action>abh_settings_update</action>
7
+ <action>abh_settings_subscribe</action>
8
+ <action>abh_powered_by</action>
9
+ </actions>
10
+ <active>1</active>
11
+ </block>
12
+
13
+ <block>
14
+ <name>ABH_Core_UserSettings</name>
15
+ <actions>
16
+ <action>abh_get_box</action>
17
+ </actions>
18
+ <active>1</active>
19
+ </block>
20
+
21
+ <block>
22
+ <name>ABH_Controllers_Frontend</name>
23
+ <shortcodes>
24
+ <shortcode>starbox</shortcode>
25
+ <shortcode>starboximg</shortcode>
26
+ </shortcodes>
27
+ <active>1</active>
28
+ </block>
29
+
30
+ </blocks>
languages/starbox-de_DE.mo ADDED
Binary file
languages/starbox-de_DE.po ADDED
@@ -0,0 +1,463 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: StarBox v1.0.4\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2013-10-08 07:44:51+0000\n"
7
+ "Last-Translator: Joerg Gebauer <gebauer@newshore.de>\n"
8
+ "Language-Team: \n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Generator: CSL v1.x\n"
14
+ "X-Poedit-Language: German\n"
15
+ "X-Poedit-Country: GERMANY\n"
16
+ "X-Poedit-SourceCharset: utf-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
18
+ "X-Poedit-Basepath: \n"
19
+ "X-Poedit-Bookmarks: \n"
20
+ "X-Poedit-SearchPath-0: .\n"
21
+ "X-Textdomain-Support: yes"
22
+
23
+ #: classes/Error.php:16
24
+ #@ starbox
25
+ msgid "Function get_class does not exists! Is required for StarBox to work properly."
26
+ msgstr "Die Funktion get_class exisitiert nicht, ist aber erforderlich, damit StarBox korrekt funktioniert."
27
+
28
+ #: classes/Error.php:19
29
+ #@ starbox
30
+ msgid "Function file_exists does not exists! Is required for StarBox to work properly."
31
+ msgstr "Die Funktion file_exists existiert nicht, ist aber erforderlich, damit StarBox korrekt funktioniert."
32
+
33
+ #: classes/Error.php:23
34
+ #@ starbox
35
+ msgid "The home directory is not set!"
36
+ msgstr "Das Stammverzeichnis ist nicht konfiguriert!"
37
+
38
+ #: classes/Error.php:27
39
+ #@ starbox
40
+ msgid "The PHP version has to be greater then 4.0"
41
+ msgstr "PHP in Versionen größer als 4.0 ist erforderlich."
42
+
43
+ #: classes/Error.php:35
44
+ #@ starbox
45
+ msgid "For StarBox to work, the PHP version has to be equal or greater then 5.1"
46
+ msgstr "Damit StarBox funktioniert, ist eine PHP Version ab 5.1 erforderlich."
47
+
48
+ #: classes/Error.php:69
49
+ #@ starbox
50
+ msgid "Turn off warnings!"
51
+ msgstr "Warnungen abschalten!"
52
+
53
+ #: classes/Error.php:70
54
+ #@ starbox
55
+ msgid "Notice: "
56
+ msgstr "Hinweis:"
57
+
58
+ #: classes/Error.php:74
59
+ #@ starbox
60
+ msgid "Note: "
61
+ msgstr "Anmerkung:"
62
+
63
+ #: classes/Tools.php:58
64
+ #@ starbox
65
+ msgid "Settings"
66
+ msgstr "Einstellungen"
67
+
68
+ #: classes/Tools.php:308
69
+ #@ starbox
70
+ msgid "Notice"
71
+ msgstr "Hinweis"
72
+
73
+ #: config/paths.php:14
74
+ #, php-format
75
+ #@ default
76
+ msgid "Unable to create directory %s. Is its parent directory writable by the server?"
77
+ msgstr ""
78
+
79
+ #: controllers/Menu.php:39
80
+ #@ starbox
81
+ msgid "StarBox Settings"
82
+ msgstr "StarBox Einstellungen"
83
+
84
+ #: controllers/Menu.php:40
85
+ #@ starbox
86
+ msgid "StarBox"
87
+ msgstr "StarBox"
88
+
89
+ #: models/Frontend.php:28
90
+ #@ starbox
91
+ msgid "About"
92
+ msgstr "Über"
93
+
94
+ #: models/Frontend.php:29
95
+ #@ starbox
96
+ msgid "Latest Posts"
97
+ msgstr "Letzte Artikel"
98
+
99
+ #: models/Frontend.php:59
100
+ #@ starbox
101
+ msgid "at"
102
+ msgstr "bei"
103
+
104
+ #: models/Frontend.php:74
105
+ #, php-format
106
+ #@ starbox
107
+ msgid "Latest posts by %s"
108
+ msgstr "Letzte Artikel von %s"
109
+
110
+ #: models/Frontend.php:74
111
+ #@ starbox
112
+ msgid "see all"
113
+ msgstr "Alle anzeigen"
114
+
115
+ #: models/Frontend.php:86
116
+ #@ starbox
117
+ msgid "Facebook"
118
+ msgstr "Facebook"
119
+
120
+ #: models/Frontend.php:90
121
+ #@ starbox
122
+ msgid "Twitter"
123
+ msgstr "Twitter"
124
+
125
+ #: models/Frontend.php:95
126
+ #: models/Frontend.php:97
127
+ #@ starbox
128
+ msgid "Google Plus"
129
+ msgstr "Google Plus"
130
+
131
+ #: models/Frontend.php:101
132
+ #@ starbox
133
+ msgid "LinkedIn"
134
+ msgstr "LinkedIn"
135
+
136
+ #: models/Frontend.php:105
137
+ #@ starbox
138
+ msgid "Instagram"
139
+ msgstr "Instagram"
140
+
141
+ #: models/Frontend.php:109
142
+ #@ starbox
143
+ msgid "Flickr"
144
+ msgstr "Flickr"
145
+
146
+ #: models/Frontend.php:113
147
+ #@ starbox
148
+ msgid "Pinterest"
149
+ msgstr "Pinterest"
150
+
151
+ #: models/Frontend.php:117
152
+ #@ starbox
153
+ msgid "Tumblr"
154
+ msgstr "Tumblr"
155
+
156
+ #: models/Frontend.php:121
157
+ #@ starbox
158
+ msgid "YouTube"
159
+ msgstr "YouTube"
160
+
161
+ #: models/Frontend.php:125
162
+ #@ starbox
163
+ msgid "Vimeo"
164
+ msgstr "Vimeo"
165
+
166
+ #: models/Frontend.php:131
167
+ #: models/Frontend.php:133
168
+ #@ starbox
169
+ msgid "Klout"
170
+ msgstr "Klout"
171
+
172
+ #: models/UserSettings.php:34
173
+ #@ starbox
174
+ msgid "File type error: Only JPEG, JPG, GIF or PNG files are allowed."
175
+ msgstr "Falscher Dateityp: nur JPEG, JPG, GIF oder PNG Dateien sind erlaubt."
176
+
177
+ #: models/UserSettings.php:47
178
+ #@ starbox
179
+ msgid "GD error: The GD library must be installed on your server."
180
+ msgstr "GD Fehler: die GD Library muss auf dem Server installiert sein."
181
+
182
+ #: models/UserSettings.php:54
183
+ #@ starbox
184
+ msgid "Delete error: Could not delete the old gravatar."
185
+ msgstr "Fehler beim Löschen: der bestehende Gravatar konnte nicht gelöscht werden."
186
+
187
+ #: models/UserSettings.php:61
188
+ #@ starbox
189
+ msgid "Upload error: Could not upload the gravatar."
190
+ msgstr "Upload Fehler: Der Gravatar konnte nicht hochgeladen werden."
191
+
192
+ #: models/UserSettings.php:67
193
+ #@ starbox
194
+ msgid "Permission error: Could not change the gravatar permissions."
195
+ msgstr "Berechtigungsfehler: die Gravatar-Berechtigungen konnten nicht geändert werden."
196
+
197
+ #: models/UserSettings.php:78
198
+ #@ starbox
199
+ msgid "The gravatar has been updated."
200
+ msgstr "Der Gravatar wurde aktualisiert."
201
+
202
+ #: themes/admin/Menu.php:3
203
+ #@ starbox
204
+ msgid "StartBox Settings"
205
+ msgstr "StartBox Einstellungen"
206
+
207
+ #: themes/admin/Menu.php:3
208
+ #: themes/admin/UserSettings.php:3
209
+ #@ starbox
210
+ msgid "Please support us on Wordpress"
211
+ msgstr "Bitte unterstütze uns auf WordPress"
212
+
213
+ #: themes/admin/Menu.php:12
214
+ #: themes/admin/Menu.php:25
215
+ #: themes/admin/Menu.php:36
216
+ #: themes/admin/Menu.php:47
217
+ #: themes/admin/UserSettings.php:10
218
+ #@ starbox
219
+ msgid "Yes"
220
+ msgstr "Ja"
221
+
222
+ #: themes/admin/Menu.php:14
223
+ #: themes/admin/Menu.php:27
224
+ #: themes/admin/Menu.php:38
225
+ #: themes/admin/Menu.php:49
226
+ #: themes/admin/UserSettings.php:12
227
+ #@ starbox
228
+ msgid "No"
229
+ msgstr "Nein"
230
+
231
+ #: themes/admin/Menu.php:17
232
+ #@ starbox
233
+ msgid "Visible in <strong>posts</strong>"
234
+ msgstr "Sichtbar in <strong>Artikeln</strong>"
235
+
236
+ #: themes/admin/Menu.php:18
237
+ #@ starbox
238
+ msgid "Hide Author Box from custom posts types"
239
+ msgstr "Author Box nicht in Custom Post Types anzeigen"
240
+
241
+ #: themes/admin/Menu.php:30
242
+ #@ starbox
243
+ msgid "Visible in <strong>pages</strong>"
244
+ msgstr "Sichtbar in <strong>Seiten</strong>"
245
+
246
+ #: themes/admin/Menu.php:41
247
+ #@ starbox
248
+ msgid "Show the Starbox with Top Star theme <strong>in the global feed of your blog</strong> (eg. \"/blog\" page) under each title of every post"
249
+ msgstr "Zeige die StarBox mit dem Top Star Theme <strong>im globalen Feed Deines Blogs</strong> (z.B. \"/blog\" Seite) unterhalb jedes einzelnen Artikeltitels"
250
+
251
+ #: themes/admin/Menu.php:52
252
+ #, php-format
253
+ #@ starbox
254
+ msgid "Show the <strong>Open Graph</strong> Profile in meta for each author %sdetails%s (useful for rich snippets)"
255
+ msgstr "Zeige das <strong>Open Graph</strong> Profil in den Metadaten für jeden Author %sdetails%s (hilfreich bei rich snippets)"
256
+
257
+ #: themes/admin/Menu.php:56
258
+ #@ starbox
259
+ msgid "Theme setting:"
260
+ msgstr "Theme Einstellungen:"
261
+
262
+ #: themes/admin/Menu.php:65
263
+ #@ starbox
264
+ msgid "The Author Box <strong>position</strong> (Topstar and Topstar-round are always on shown on top)"
265
+ msgstr "Die <strong>Position</strong> der Author Box (Topstar und Topstar-round werden immer oben angezeigt)"
266
+
267
+ #: themes/admin/Menu.php:80
268
+ #@ starbox
269
+ msgid "Choose the default theme to be displayed <strong>inside each blog article</strong>"
270
+ msgstr "Wähle das Default Theme für die Anzeige <strong>innerhalb jedes Blogartikels</strong>"
271
+
272
+ #: themes/admin/Menu.php:84
273
+ #@ starbox
274
+ msgid "Preview mode for the default theme"
275
+ msgstr "Vorschau Modus für das Default Theme"
276
+
277
+ #: themes/admin/Menu.php:104
278
+ #@ starbox
279
+ msgid "Choose the theme to be displayed in your <strong>global list of posts</strong> (eg. /blog)"
280
+ msgstr "Wähle das Theme für die Anzeige in Deiner <strong>globalen Auflistung der Artikel</strong> (z.B. /blog)"
281
+
282
+ #: themes/admin/Menu.php:109
283
+ #, php-format
284
+ #@ starbox
285
+ msgid "Use the Google Tool to check rich snippets %sclick here%s"
286
+ msgstr "Benutze das Google Tool zur Überprüfung von rich snippets %sclick here%s"
287
+
288
+ #: themes/admin/Menu.php:116
289
+ #@ starbox
290
+ msgid "Click \"go to user settings\" to setup the author box for each author you have ( including per author Google Authorship)"
291
+ msgstr "Klicke auf \"Gehe zu Benutzer-Einstellungen\", um die Author Box für jeden Deiner Autoren einzustellen (inkl. per Autor Google Authorship)"
292
+
293
+ #: themes/admin/Menu.php:119
294
+ #@ starbox
295
+ msgid "Save settings"
296
+ msgstr "Einstellungen speichern"
297
+
298
+ #: themes/admin/Menu.php:120
299
+ #@ starbox
300
+ msgid "Go to user settings"
301
+ msgstr "Gehe zu Benutzer-Einstellungen"
302
+
303
+ #: themes/admin/UserSettings.php:3
304
+ #@ starbox
305
+ msgid "Starbox Settings for this Author"
306
+ msgstr "StarBox Einstellungen für diesen Autor"
307
+
308
+ #: themes/admin/UserSettings.php:15
309
+ #@ starbox
310
+ msgid "Show the StarBox for this author"
311
+ msgstr "Zeige die StarBox für diesen Autoren an"
312
+
313
+ #: themes/admin/UserSettings.php:20
314
+ #@ starbox
315
+ msgid "Change the Profile Image"
316
+ msgstr "Profilbild ändern"
317
+
318
+ #: themes/admin/UserSettings.php:23
319
+ #@ starbox
320
+ msgid "File types: JPG, JPEG, GIF and PNG. Ideal image size is: 80x80"
321
+ msgstr "Dateitypen: JPG, JPEG, GIF und PNG. Optimale Bildgröße: 80x80"
322
+
323
+ #: themes/admin/UserSettings.php:37
324
+ #@ starbox
325
+ msgid "Upload"
326
+ msgstr "Upload"
327
+
328
+ #: themes/admin/UserSettings.php:38
329
+ #@ starbox
330
+ msgid "Reset the uploaded image"
331
+ msgstr "Hochgeladenen Bild zurücksetzen"
332
+
333
+ #: themes/admin/UserSettings.php:39
334
+ #, php-format
335
+ #@ starbox
336
+ msgid "You can also set your image on %shttps://en.gravatar.com/%s for your email address"
337
+ msgstr "Du kannst auch Dein Profilbild von %shttps://en.gravatar.com/%s für Deine E-Mail-Adresse einstellen"
338
+
339
+ #: themes/admin/UserSettings.php:46
340
+ #@ starbox
341
+ msgid "Theme settings:"
342
+ msgstr "Theme-Einstellungen:"
343
+
344
+ #: themes/admin/UserSettings.php:56
345
+ #@ starbox
346
+ msgid "Default"
347
+ msgstr "Default"
348
+
349
+ #: themes/admin/UserSettings.php:57
350
+ #@ starbox
351
+ msgid "Up"
352
+ msgstr "Nach oben"
353
+
354
+ #: themes/admin/UserSettings.php:58
355
+ #@ starbox
356
+ msgid "Down"
357
+ msgstr "Nach unten"
358
+
359
+ #: themes/admin/UserSettings.php:61
360
+ #@ starbox
361
+ msgid "The Author Box position"
362
+ msgstr "Die Position der Author Box"
363
+
364
+ #: themes/admin/UserSettings.php:80
365
+ #@ starbox
366
+ msgid "This Author's theme"
367
+ msgstr "Das Theme dieses Autors"
368
+
369
+ #: themes/admin/UserSettings.php:83
370
+ #@ starbox
371
+ msgid "Preview mode (change the theme)"
372
+ msgstr "Vorschau Modus (Theme wechseln)"
373
+
374
+ #: themes/admin/UserSettings.php:94
375
+ #@ starbox
376
+ msgid "Job settings:"
377
+ msgstr "Einstellungen Beruf:"
378
+
379
+ #: themes/admin/UserSettings.php:96
380
+ #@ starbox
381
+ msgid "Job Title:"
382
+ msgstr "Titel Beruf:"
383
+
384
+ #: themes/admin/UserSettings.php:97
385
+ #@ starbox
386
+ msgid "Company:"
387
+ msgstr "Unternehmen:"
388
+
389
+ #: themes/admin/UserSettings.php:98
390
+ #@ starbox
391
+ msgid "Company URL:"
392
+ msgstr "Unternehmen URL:"
393
+
394
+ #: themes/admin/UserSettings.php:103
395
+ #@ starbox
396
+ msgid "Social settings:"
397
+ msgstr "Social Einstellungen:"
398
+
399
+ #: themes/admin/UserSettings.php:105
400
+ #@ starbox
401
+ msgid "To unlock social fields please enter your email:"
402
+ msgstr "Zur Freischaltung der Social Felder bitte Deine E-Mail-Adresse eingeben:"
403
+
404
+ #: themes/admin/UserSettings.php:123
405
+ #@ starbox
406
+ msgid "You will only subscribe to StarBox News (No spam). <br />We do not connect your site to our server in any way. The plugin is stand-alone."
407
+ msgstr "Du trägst Dich nur für StarBox News ein (Kein Spam). <br />Wir verbinden Deine Seite in keinster Weise mit unserem Server. Das Plugin ist Stand-alone."
408
+
409
+ #: themes/admin/UserSettings.php:127
410
+ #@ starbox
411
+ msgid "Twitter:"
412
+ msgstr "Twitter:"
413
+
414
+ #: themes/admin/UserSettings.php:128
415
+ #@ starbox
416
+ msgid "Facebook:"
417
+ msgstr "Facebook:"
418
+
419
+ #: themes/admin/UserSettings.php:129
420
+ #@ starbox
421
+ msgid "Google +:"
422
+ msgstr "Google +:"
423
+
424
+ #: themes/admin/UserSettings.php:130
425
+ #@ starbox
426
+ msgid "LinkedIn:"
427
+ msgstr "LinkedIn:"
428
+
429
+ #: themes/admin/UserSettings.php:131
430
+ #@ starbox
431
+ msgid "Klout:"
432
+ msgstr "Klout:"
433
+
434
+ #: themes/admin/UserSettings.php:132
435
+ #@ starbox
436
+ msgid "Instagram:"
437
+ msgstr "Instagram:"
438
+
439
+ #: themes/admin/UserSettings.php:133
440
+ #@ starbox
441
+ msgid "Flickr:"
442
+ msgstr "Flickr:"
443
+
444
+ #: themes/admin/UserSettings.php:134
445
+ #@ starbox
446
+ msgid "Pinterest:"
447
+ msgstr "Pinterest:"
448
+
449
+ #: themes/admin/UserSettings.php:135
450
+ #@ starbox
451
+ msgid "Tumblr:"
452
+ msgstr "Tumblr:"
453
+
454
+ #: themes/admin/UserSettings.php:136
455
+ #@ starbox
456
+ msgid "YouTube:"
457
+ msgstr "YouTube:"
458
+
459
+ #: themes/admin/UserSettings.php:137
460
+ #@ starbox
461
+ msgid "Vimeo:"
462
+ msgstr "Vimeo:"
463
+
languages/starbox-fr_FR.mo ADDED
Binary file
languages/starbox-fr_FR.po ADDED
@@ -0,0 +1,418 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Starbox\n"
4
+ "POT-Creation-Date: 2013-10-08 13:06+0200\n"
5
+ "PO-Revision-Date: 2014-01-17 12:27+0100\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: Squirrly UK\n"
8
+ "Language: en\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.6.3\n"
13
+ "X-Poedit-KeywordsList: __;_e\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-SearchPath-0: .\n"
16
+
17
+ #: classes/Error.php:16
18
+ msgid ""
19
+ "Function get_class does not exists! Is required for StarBox to work properly."
20
+ msgstr ""
21
+ "La fonction get_class n'existe pas ! StarBox ne peut fonctionner "
22
+ "correctement."
23
+
24
+ #: classes/Error.php:19
25
+ msgid ""
26
+ "Function file_exists does not exists! Is required for StarBox to work "
27
+ "properly."
28
+ msgstr ""
29
+ "La fonction file_exists n'existe pas ! StarBox ne peut contionner "
30
+ "correctement."
31
+
32
+ #: classes/Error.php:23
33
+ msgid "The home directory is not set!"
34
+ msgstr "Le repertoire 'home' n'est pas défini !"
35
+
36
+ #: classes/Error.php:27
37
+ msgid "The PHP version has to be greater then 4.0"
38
+ msgstr "La version PHP de votre serveur doit être supérieure ou égale à 4.0."
39
+
40
+ #: classes/Error.php:35
41
+ msgid ""
42
+ "For StarBox to work, the PHP version has to be equal or greater then 5.1"
43
+ msgstr ""
44
+ "Pour le bon fonctionnement de Starbox, la version de PHP de votre serveur "
45
+ "doit être supérieure ou égale à 5.1."
46
+
47
+ #: classes/Error.php:69
48
+ msgid "Turn off warnings!"
49
+ msgstr "Désactiver les avertissements"
50
+
51
+ #: classes/Error.php:70
52
+ msgid "Notice: "
53
+ msgstr "Notification :"
54
+
55
+ #: classes/Error.php:74
56
+ msgid "Note: "
57
+ msgstr "Note :"
58
+
59
+ #: classes/Tools.php:58
60
+ msgid "Settings"
61
+ msgstr "Configuration"
62
+
63
+ #: classes/Tools.php:308
64
+ msgid "Notice"
65
+ msgstr "Notification"
66
+
67
+ #: config/paths.php:14
68
+ #, php-format
69
+ msgid ""
70
+ "Unable to create directory %s. Is its parent directory writable by the "
71
+ "server?"
72
+ msgstr ""
73
+ "Impossible de créer le repertoire %s. Le dossier parent possède-t-il les "
74
+ "droits d'écriture suffisant ?"
75
+
76
+ #: controllers/Menu.php:39
77
+ msgid "StarBox Settings"
78
+ msgstr "Configurations StarBox"
79
+
80
+ #: controllers/Menu.php:40
81
+ msgid "StarBox"
82
+ msgstr "StarBox"
83
+
84
+ #: models/Frontend.php:28
85
+ msgid "About"
86
+ msgstr "À propos"
87
+
88
+ #: models/Frontend.php:29
89
+ msgid "Latest Posts"
90
+ msgstr "Articles récents"
91
+
92
+ #: models/Frontend.php:59
93
+ msgid "at"
94
+ msgstr "chez"
95
+
96
+ #: models/Frontend.php:74
97
+ #, php-format
98
+ msgid "Latest posts by %s"
99
+ msgstr "Les derniers articles par %s"
100
+
101
+ #: models/Frontend.php:74
102
+ msgid "see all"
103
+ msgstr "tout voir"
104
+
105
+ #: models/Frontend.php:86
106
+ msgid "Facebook"
107
+ msgstr "Facebook"
108
+
109
+ #: models/Frontend.php:90
110
+ msgid "Twitter"
111
+ msgstr "Twitter"
112
+
113
+ #: models/Frontend.php:95 models/Frontend.php:97
114
+ msgid "Google Plus"
115
+ msgstr "Google+"
116
+
117
+ #: models/Frontend.php:101
118
+ msgid "LinkedIn"
119
+ msgstr "LinkedIn"
120
+
121
+ #: models/Frontend.php:105
122
+ msgid "Instagram"
123
+ msgstr "Instagram"
124
+
125
+ #: models/Frontend.php:109
126
+ msgid "Flickr"
127
+ msgstr "Flickr"
128
+
129
+ #: models/Frontend.php:113
130
+ msgid "Pinterest"
131
+ msgstr "Pinterest"
132
+
133
+ #: models/Frontend.php:117
134
+ msgid "Tumblr"
135
+ msgstr "Tumblr"
136
+
137
+ #: models/Frontend.php:121
138
+ msgid "YouTube"
139
+ msgstr "YouTube"
140
+
141
+ #: models/Frontend.php:125
142
+ msgid "Vimeo"
143
+ msgstr "Vimeo"
144
+
145
+ #: models/Frontend.php:131 models/Frontend.php:133
146
+ msgid "Klout"
147
+ msgstr "Klout"
148
+
149
+ #: models/UserSettings.php:34
150
+ msgid "File type error: Only JPEG, JPG, GIF or PNG files are allowed."
151
+ msgstr ""
152
+ "Erreur de type de fichier : seuls les formats JPEF, JPG, GIF ou PNG sont "
153
+ "autorisés."
154
+
155
+ #: models/UserSettings.php:47
156
+ msgid "GD error: The GD library must be installed on your server."
157
+ msgstr "Erreur GD : la librairie GD doit être installée sur votre serveur."
158
+
159
+ #: models/UserSettings.php:54
160
+ msgid "Delete error: Could not delete the old gravatar."
161
+ msgstr "Erreur : impossible d'effacer votre ancien Gravatar."
162
+
163
+ #: models/UserSettings.php:61
164
+ msgid "Upload error: Could not upload the gravatar."
165
+ msgstr "Erreur : impossible d'uploader votre Gravatar."
166
+
167
+ #: models/UserSettings.php:67
168
+ msgid "Permission error: Could not change the gravatar permissions."
169
+ msgstr ""
170
+ "Erreur de permission : impossible de modifier les permissions pour Gravatar."
171
+
172
+ #: models/UserSettings.php:78
173
+ msgid "The gravatar has been updated."
174
+ msgstr "Votre Gravatar a bien été mis à jour."
175
+
176
+ #: themes/admin/Menu.php:3
177
+ msgid "StartBox Settings"
178
+ msgstr "Paramètres StarBox"
179
+
180
+ #: themes/admin/Menu.php:3 themes/admin/UserSettings.php:3
181
+ msgid "Please support us on Wordpress"
182
+ msgstr "Soutenez-nous sur Wordpress.org !"
183
+
184
+ #: themes/admin/Menu.php:12 themes/admin/Menu.php:25 themes/admin/Menu.php:36
185
+ #: themes/admin/Menu.php:47 themes/admin/UserSettings.php:10
186
+ msgid "Yes"
187
+ msgstr "Oui"
188
+
189
+ #: themes/admin/Menu.php:14 themes/admin/Menu.php:27 themes/admin/Menu.php:38
190
+ #: themes/admin/Menu.php:49 themes/admin/UserSettings.php:12
191
+ msgid "No"
192
+ msgstr "Non"
193
+
194
+ #: themes/admin/Menu.php:17
195
+ msgid "Visible in <strong>posts</strong>"
196
+ msgstr "Visible dans les <strong>'posts'</strong>"
197
+
198
+ #: themes/admin/Menu.php:18
199
+ msgid "Hide Author Box from custom posts types"
200
+ msgstr "Masquer la 'Author Box' dans les <strong>'custom posts'</strong>"
201
+
202
+ #: themes/admin/Menu.php:30
203
+ msgid "Visible in <strong>pages</strong>"
204
+ msgstr "Visible dans les <strong>pages</strong>"
205
+
206
+ #: themes/admin/Menu.php:41
207
+ msgid ""
208
+ "Show the Starbox with Top Star theme <strong>in the global feed of your "
209
+ "blog</strong> (eg. \"/blog\" page) under each title of every post"
210
+ msgstr ""
211
+ "Afficher Starbox avec le thème 'Top Star' <strong>dans le flux global de "
212
+ "votre blog</strong> (page \"/blog\") sous le titre de chaque billet."
213
+
214
+ #: themes/admin/Menu.php:52
215
+ #, php-format
216
+ msgid ""
217
+ "Show the <strong>Open Graph</strong> Profile in meta for each author "
218
+ "%sdetails%s (useful for rich snippets)"
219
+ msgstr ""
220
+ "Afficher les balises meta <strong>'Open Graph'</strong> pour chaque auteur "
221
+ "%sdetails%s (contribue aux contenus enrichis)"
222
+
223
+ #: themes/admin/Menu.php:56
224
+ msgid "Theme setting:"
225
+ msgstr "Configuration du thème :"
226
+
227
+ #: themes/admin/Menu.php:65
228
+ msgid ""
229
+ "The Author Box <strong>position</strong> (Topstar and Topstar-round are "
230
+ "always on shown on top)"
231
+ msgstr ""
232
+ "Position de la 'Author Box' (les thèmes Topstar et Topstar-round sont "
233
+ "toujours afficher en position 'Top')."
234
+
235
+ #: themes/admin/Menu.php:80
236
+ msgid ""
237
+ "Choose the default theme to be displayed <strong>inside each blog article</"
238
+ "strong>"
239
+ msgstr ""
240
+ "Sélectionnez le thème par défaut affiché <strong>dans chaque article du "
241
+ "blog</strong>"
242
+
243
+ #: themes/admin/Menu.php:84
244
+ msgid "Preview mode for the default theme"
245
+ msgstr "Prévisualisation"
246
+
247
+ #: themes/admin/Menu.php:104
248
+ msgid ""
249
+ "Choose the theme to be displayed in your <strong>global list of posts</"
250
+ "strong> (eg. /blog)"
251
+ msgstr ""
252
+ "Sélectionnez le thème à afficher dans votre <strong>flux global d'articles</"
253
+ "strong) (page \"/blog\")"
254
+
255
+ #: themes/admin/Menu.php:109
256
+ #, php-format
257
+ msgid "Use the Google Tool to check rich snippets %sclick here%s"
258
+ msgstr ""
259
+ "Utilisez les Outils Google pour vérifier vos contenus enrichis %scliquez ici"
260
+ "%s"
261
+
262
+ #: themes/admin/Menu.php:116
263
+ msgid ""
264
+ "Click \"go to user settings\" to setup the author box for each author you "
265
+ "have ( including per author Google Authorship)"
266
+ msgstr ""
267
+ "Cliquez sur le bouton \"Aller aux paramètres utilisateur\" pour configurer "
268
+ "la 'Author Box' de chacun de vos auteurs."
269
+
270
+ #: themes/admin/Menu.php:119
271
+ msgid "Save settings"
272
+ msgstr "Sauvegarder les paramètres"
273
+
274
+ #: themes/admin/Menu.php:120
275
+ msgid "Go to user settings"
276
+ msgstr "Aller aux paramètres utilisateur"
277
+
278
+ #: themes/admin/UserSettings.php:3
279
+ msgid "Starbox Settings for this Author"
280
+ msgstr "Paramètres StarBox pour cet auteur"
281
+
282
+ #: themes/admin/UserSettings.php:15
283
+ msgid "Show the StarBox for this author"
284
+ msgstr "Afficher StarBox pour cet auteur"
285
+
286
+ #: themes/admin/UserSettings.php:20
287
+ msgid "Change the Profile Image"
288
+ msgstr "Modifier l'image de profil"
289
+
290
+ #: themes/admin/UserSettings.php:23
291
+ msgid "File types: JPG, JPEG, GIF and PNG. Ideal image size is: 80x80"
292
+ msgstr ""
293
+ "Formats de fichier : JPG, JPEF, GIF et PNG. Dimensions recommandées : 80x80 "
294
+ "pixels"
295
+
296
+ #: themes/admin/UserSettings.php:37
297
+ msgid "Upload"
298
+ msgstr "Uploader"
299
+
300
+ #: themes/admin/UserSettings.php:38
301
+ msgid "Reset the uploaded image"
302
+ msgstr "Supprimer l'image uploadée"
303
+
304
+ #: themes/admin/UserSettings.php:39
305
+ #, php-format
306
+ msgid ""
307
+ "You can also set your image on %shttps://en.gravatar.com/%s for your email "
308
+ "address"
309
+ msgstr ""
310
+ "Vous pouvez également paramétrer votre avatar sur %shttps://en.gravatar.com/"
311
+ "%s correspondant à votre adresse email"
312
+
313
+ #: themes/admin/UserSettings.php:46
314
+ msgid "Theme settings:"
315
+ msgstr "Configuration du thème :"
316
+
317
+ #: themes/admin/UserSettings.php:56
318
+ msgid "Default"
319
+ msgstr "Par défaut"
320
+
321
+ #: themes/admin/UserSettings.php:57
322
+ msgid "Up"
323
+ msgstr "Haut"
324
+
325
+ #: themes/admin/UserSettings.php:58
326
+ msgid "Down"
327
+ msgstr "Bas"
328
+
329
+ #: themes/admin/UserSettings.php:61
330
+ msgid "The Author Box position"
331
+ msgstr "Position de la 'Author Box'"
332
+
333
+ #: themes/admin/UserSettings.php:80
334
+ msgid "This Author's theme"
335
+ msgstr "Thème de l'auteur"
336
+
337
+ #: themes/admin/UserSettings.php:83
338
+ msgid "Preview mode (change the theme)"
339
+ msgstr "Prévisualisation (changez de thème)"
340
+
341
+ #: themes/admin/UserSettings.php:94
342
+ msgid "Job settings:"
343
+ msgstr "Informations :"
344
+
345
+ #: themes/admin/UserSettings.php:96
346
+ msgid "Job Title:"
347
+ msgstr "Fonction :"
348
+
349
+ #: themes/admin/UserSettings.php:97
350
+ msgid "Company:"
351
+ msgstr "Entreprise :"
352
+
353
+ #: themes/admin/UserSettings.php:98
354
+ msgid "Company URL:"
355
+ msgstr "Site de l'entreprise :"
356
+
357
+ #: themes/admin/UserSettings.php:103
358
+ msgid "Social settings:"
359
+ msgstr "Réseaux sociaux :"
360
+
361
+ #: themes/admin/UserSettings.php:105
362
+ msgid "To unlock social fields please enter your email:"
363
+ msgstr ""
364
+ "Pour débloquer les champs 'Réseaux sociaux', merci de renseigner votre "
365
+ "adresse email :"
366
+
367
+ #: themes/admin/UserSettings.php:123
368
+ msgid ""
369
+ "You will only subscribe to StarBox News (No spam). <br />We do not connect "
370
+ "your site to our server in any way. The plugin is stand-alone."
371
+ msgstr ""
372
+ "Vous recevrez uniquement les actualitées de StarBox (aucun spam). <br/>Nous "
373
+ "ne connectons d'aucune façon votre site à nos serveurs. Ce plugin est "
374
+ "totalement indépendant."
375
+
376
+ #: themes/admin/UserSettings.php:127
377
+ msgid "Twitter:"
378
+ msgstr ""
379
+
380
+ #: themes/admin/UserSettings.php:128
381
+ msgid "Facebook:"
382
+ msgstr ""
383
+
384
+ #: themes/admin/UserSettings.php:129
385
+ msgid "Google +:"
386
+ msgstr ""
387
+
388
+ #: themes/admin/UserSettings.php:130
389
+ msgid "LinkedIn:"
390
+ msgstr ""
391
+
392
+ #: themes/admin/UserSettings.php:131
393
+ msgid "Klout:"
394
+ msgstr ""
395
+
396
+ #: themes/admin/UserSettings.php:132
397
+ msgid "Instagram:"
398
+ msgstr ""
399
+
400
+ #: themes/admin/UserSettings.php:133
401
+ msgid "Flickr:"
402
+ msgstr ""
403
+
404
+ #: themes/admin/UserSettings.php:134
405
+ msgid "Pinterest:"
406
+ msgstr ""
407
+
408
+ #: themes/admin/UserSettings.php:135
409
+ msgid "Tumblr:"
410
+ msgstr ""
411
+
412
+ #: themes/admin/UserSettings.php:136
413
+ msgid "YouTube:"
414
+ msgstr ""
415
+
416
+ #: themes/admin/UserSettings.php:137
417
+ msgid "Vimeo:"
418
+ msgstr ""
languages/starbox-ro_RO.mo ADDED
Binary file
languages/starbox-ro_RO.po ADDED
@@ -0,0 +1,400 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Starbox\n"
4
+ "POT-Creation-Date: 2013-10-08 13:06+0200\n"
5
+ "PO-Revision-Date: 2013-10-08 13:24+0200\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: Squirrly UK\n"
8
+ "Language: english\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.5.7\n"
13
+ "X-Poedit-KeywordsList: __;_e\n"
14
+ "X-Poedit-Basepath: \n"
15
+ "X-Poedit-SourceCharset: UTF-8\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
+
18
+ #: classes/Error.php:16
19
+ msgid ""
20
+ "Function get_class does not exists! Is required for StarBox to work properly."
21
+ msgstr ""
22
+
23
+ #: classes/Error.php:19
24
+ msgid ""
25
+ "Function file_exists does not exists! Is required for StarBox to work "
26
+ "properly."
27
+ msgstr ""
28
+
29
+ #: classes/Error.php:23
30
+ msgid "The home directory is not set!"
31
+ msgstr "Directorul Home nu este setat"
32
+
33
+ #: classes/Error.php:27
34
+ msgid "The PHP version has to be greater then 4.0"
35
+ msgstr "Versiunea PHP trebuie sa fie mai mare de 4.0"
36
+
37
+ #: classes/Error.php:35
38
+ msgid ""
39
+ "For StarBox to work, the PHP version has to be equal or greater then 5.1"
40
+ msgstr ""
41
+ "Ca sa functioneze StarBox trebuie sa aveti versiunea de PHP mai mare sa "
42
+ "egala cu 5.1"
43
+
44
+ #: classes/Error.php:69
45
+ msgid "Turn off warnings!"
46
+ msgstr "Optriti avertizarile"
47
+
48
+ #: classes/Error.php:70
49
+ msgid "Notice: "
50
+ msgstr "Nota:"
51
+
52
+ #: classes/Error.php:74
53
+ msgid "Note: "
54
+ msgstr "Atentie:"
55
+
56
+ #: classes/Tools.php:58
57
+ msgid "Settings"
58
+ msgstr "Setari"
59
+
60
+ #: classes/Tools.php:308
61
+ msgid "Notice"
62
+ msgstr "Atentie"
63
+
64
+ #: config/paths.php:14
65
+ #, php-format
66
+ msgid ""
67
+ "Unable to create directory %s. Is its parent directory writable by the "
68
+ "server?"
69
+ msgstr ""
70
+ "Nu s-a putut crea directorul %s. Este directorul setat writable pe server?"
71
+
72
+ #: controllers/Menu.php:39
73
+ msgid "StarBox Settings"
74
+ msgstr "Setari StarBox"
75
+
76
+ #: controllers/Menu.php:40
77
+ msgid "StarBox"
78
+ msgstr "STarBox"
79
+
80
+ #: models/Frontend.php:28
81
+ msgid "About"
82
+ msgstr "Despre"
83
+
84
+ #: models/Frontend.php:29
85
+ msgid "Latest Posts"
86
+ msgstr "Ultimele Postari"
87
+
88
+ #: models/Frontend.php:59
89
+ msgid "at"
90
+ msgstr "la"
91
+
92
+ #: models/Frontend.php:74
93
+ #, php-format
94
+ msgid "Latest posts by %s"
95
+ msgstr "Ultimele postari ale lui %s"
96
+
97
+ #: models/Frontend.php:74
98
+ msgid "see all"
99
+ msgstr "vezi toate"
100
+
101
+ #: models/Frontend.php:86
102
+ msgid "Facebook"
103
+ msgstr "Facebook"
104
+
105
+ #: models/Frontend.php:90
106
+ msgid "Twitter"
107
+ msgstr "Twitter"
108
+
109
+ #: models/Frontend.php:95 models/Frontend.php:97
110
+ msgid "Google Plus"
111
+ msgstr "Google Plus"
112
+
113
+ #: models/Frontend.php:101
114
+ msgid "LinkedIn"
115
+ msgstr "LinkedIn"
116
+
117
+ #: models/Frontend.php:105
118
+ msgid "Instagram"
119
+ msgstr "Instagram"
120
+
121
+ #: models/Frontend.php:109
122
+ msgid "Flickr"
123
+ msgstr "Flickr"
124
+
125
+ #: models/Frontend.php:113
126
+ msgid "Pinterest"
127
+ msgstr "Pinterest"
128
+
129
+ #: models/Frontend.php:117
130
+ msgid "Tumblr"
131
+ msgstr "Tumblr"
132
+
133
+ #: models/Frontend.php:121
134
+ msgid "YouTube"
135
+ msgstr "YouTube"
136
+
137
+ #: models/Frontend.php:125
138
+ msgid "Vimeo"
139
+ msgstr "Vimeo"
140
+
141
+ #: models/Frontend.php:131 models/Frontend.php:133
142
+ msgid "Klout"
143
+ msgstr "Klout"
144
+
145
+ #: models/UserSettings.php:34
146
+ msgid "File type error: Only JPEG, JPG, GIF or PNG files are allowed."
147
+ msgstr "Eroare fisier: Doar extensile JPEG, JPG, GIF or PNG sunt permise"
148
+
149
+ #: models/UserSettings.php:47
150
+ msgid "GD error: The GD library must be installed on your server."
151
+ msgstr ""
152
+
153
+ #: models/UserSettings.php:54
154
+ msgid "Delete error: Could not delete the old gravatar."
155
+ msgstr "Eroare: Nu s-a putut sterge vechiul gravatar"
156
+
157
+ #: models/UserSettings.php:61
158
+ msgid "Upload error: Could not upload the gravatar."
159
+ msgstr "Eroare: Nu s-a putut incerca gravatarul"
160
+
161
+ #: models/UserSettings.php:67
162
+ msgid "Permission error: Could not change the gravatar permissions."
163
+ msgstr ""
164
+
165
+ #: models/UserSettings.php:78
166
+ msgid "The gravatar has been updated."
167
+ msgstr "Imaginea a fost incarcata cu succes!"
168
+
169
+ #: themes/admin/Menu.php:3
170
+ msgid "StartBox Settings"
171
+ msgstr "Setari StarBox"
172
+
173
+ #: themes/admin/Menu.php:3 themes/admin/UserSettings.php:3
174
+ msgid "Please support us on Wordpress"
175
+ msgstr "Va rugam sa ne sustineti pe Wordpress"
176
+
177
+ #: themes/admin/Menu.php:12 themes/admin/Menu.php:25 themes/admin/Menu.php:36
178
+ #: themes/admin/Menu.php:47 themes/admin/UserSettings.php:10
179
+ msgid "Yes"
180
+ msgstr "Da"
181
+
182
+ #: themes/admin/Menu.php:14 themes/admin/Menu.php:27 themes/admin/Menu.php:38
183
+ #: themes/admin/Menu.php:49 themes/admin/UserSettings.php:12
184
+ msgid "No"
185
+ msgstr "No"
186
+
187
+ #: themes/admin/Menu.php:17
188
+ msgid "Visible in <strong>posts</strong>"
189
+ msgstr "Vizibil in <strong>posts</strong>"
190
+
191
+ #: themes/admin/Menu.php:18
192
+ msgid "Hide Author Box from custom posts types"
193
+ msgstr "Ascunde uthor Box in posturi custom"
194
+
195
+ #: themes/admin/Menu.php:30
196
+ msgid "Visible in <strong>pages</strong>"
197
+ msgstr "Vizibil in <strong>pages</strong>"
198
+
199
+ #: themes/admin/Menu.php:41
200
+ msgid ""
201
+ "Show the Starbox with Top Star theme <strong>in the global feed of your "
202
+ "blog</strong> (eg. \"/blog\" page) under each title of every post"
203
+ msgstr ""
204
+ "Afiseaza Starbox cu fiecare autor in lista de posturi sub fiecare titlu de "
205
+ "articol"
206
+
207
+ #: themes/admin/Menu.php:52
208
+ #, php-format
209
+ msgid ""
210
+ "Show the <strong>Open Graph</strong> Profile in meta for each author "
211
+ "%sdetails%s (useful for rich snippets)"
212
+ msgstr ""
213
+ "Afiseaza Open Graph in Meta pentru fiecare autor %svezi detalii%s (util "
214
+ "pentru rich snippets)"
215
+
216
+ #: themes/admin/Menu.php:56
217
+ msgid "Theme setting:"
218
+ msgstr "Setari Teme:"
219
+
220
+ #: themes/admin/Menu.php:65
221
+ msgid ""
222
+ "The Author Box <strong>position</strong> (Topstar and Topstar-round are "
223
+ "always on shown on top)"
224
+ msgstr "Positia Author Box (pentru tema Topstar se va afisa in partea de sus)"
225
+
226
+ #: themes/admin/Menu.php:80
227
+ msgid ""
228
+ "Choose the default theme to be displayed <strong>inside each blog article</"
229
+ "strong>"
230
+ msgstr ""
231
+ "Alege tema default pentru author box<strong>in fiecare articol</strong>"
232
+
233
+ #: themes/admin/Menu.php:84
234
+ msgid "Preview mode for the default theme"
235
+ msgstr "Previzualizare cu tema default"
236
+
237
+ #: themes/admin/Menu.php:104
238
+ msgid ""
239
+ "Choose the theme to be displayed in your <strong>global list of posts</"
240
+ "strong> (eg. /blog)"
241
+ msgstr "Alege tema folosita pentru author box in lista cu toate postarile"
242
+
243
+ #: themes/admin/Menu.php:109
244
+ #, php-format
245
+ msgid "Use the Google Tool to check rich snippets %sclick here%s"
246
+ msgstr "Cum se vede cu rich snippets in google %sclick here%s"
247
+
248
+ #: themes/admin/Menu.php:116
249
+ msgid ""
250
+ "Click \"go to user settings\" to setup the author box for each author you "
251
+ "have ( including per author Google Authorship)"
252
+ msgstr ""
253
+ "Click pe \"Mergi la setari autor\" pentru a seta tema pentru fiecare autor"
254
+
255
+ #: themes/admin/Menu.php:119
256
+ msgid "Save settings"
257
+ msgstr "Salvare setari"
258
+
259
+ #: themes/admin/Menu.php:120
260
+ msgid "Go to user settings"
261
+ msgstr "Mersi la setari author"
262
+
263
+ #: themes/admin/UserSettings.php:3
264
+ msgid "Starbox Settings for this Author"
265
+ msgstr "Setari Starbox pentru acest autor"
266
+
267
+ #: themes/admin/UserSettings.php:15
268
+ msgid "Show the StarBox for this author"
269
+ msgstr "Arata StarBox pentru acest autor"
270
+
271
+ #: themes/admin/UserSettings.php:20
272
+ msgid "Change the Profile Image"
273
+ msgstr "Schimba imaginea de profil"
274
+
275
+ #: themes/admin/UserSettings.php:23
276
+ msgid "File types: JPG, JPEG, GIF and PNG. Ideal image size is: 80x80"
277
+ msgstr "Doar extensii: JPG, JPEG, GIF and PNG. Dimensiunea ideala este: 80x80"
278
+
279
+ #: themes/admin/UserSettings.php:37
280
+ msgid "Upload"
281
+ msgstr "Incarca"
282
+
283
+ #: themes/admin/UserSettings.php:38
284
+ msgid "Reset the uploaded image"
285
+ msgstr "Reseteaza imaginea incarcata"
286
+
287
+ #: themes/admin/UserSettings.php:39
288
+ #, php-format
289
+ msgid ""
290
+ "You can also set your image on %shttps://en.gravatar.com/%s for your email "
291
+ "address"
292
+ msgstr ""
293
+ "Deasemenea se poate seta imaginea in %shttps://en.gravatar.com/%s pentru "
294
+ "adresa de email"
295
+
296
+ #: themes/admin/UserSettings.php:46
297
+ msgid "Theme settings:"
298
+ msgstr "Setari Teme:"
299
+
300
+ #: themes/admin/UserSettings.php:56
301
+ msgid "Default"
302
+ msgstr "Implicit"
303
+
304
+ #: themes/admin/UserSettings.php:57
305
+ msgid "Up"
306
+ msgstr "Sus"
307
+
308
+ #: themes/admin/UserSettings.php:58
309
+ msgid "Down"
310
+ msgstr "Jos"
311
+
312
+ #: themes/admin/UserSettings.php:61
313
+ msgid "The Author Box position"
314
+ msgstr "Pozitia Author Box-ului"
315
+
316
+ #: themes/admin/UserSettings.php:80
317
+ msgid "This Author's theme"
318
+ msgstr "Tema Autorului"
319
+
320
+ #: themes/admin/UserSettings.php:83
321
+ msgid "Preview mode (change the theme)"
322
+ msgstr "Previzualizare (schimba tema autorului)"
323
+
324
+ #: themes/admin/UserSettings.php:94
325
+ msgid "Job settings:"
326
+ msgstr "Setari Job:"
327
+
328
+ #: themes/admin/UserSettings.php:96
329
+ msgid "Job Title:"
330
+ msgstr "Ocupatia:"
331
+
332
+ #: themes/admin/UserSettings.php:97
333
+ msgid "Company:"
334
+ msgstr "Compania:"
335
+
336
+ #: themes/admin/UserSettings.php:98
337
+ msgid "Company URL:"
338
+ msgstr "Site Companie:"
339
+
340
+ #: themes/admin/UserSettings.php:103
341
+ msgid "Social settings:"
342
+ msgstr "Setari Sociale:"
343
+
344
+ #: themes/admin/UserSettings.php:105
345
+ msgid "To unlock social fields please enter your email:"
346
+ msgstr ""
347
+ "Pentru a debloca campurile cu setari sociale introduceti emailul "
348
+ "dumneavoastra:"
349
+
350
+ #: themes/admin/UserSettings.php:123
351
+ msgid ""
352
+ "You will only subscribe to StarBox News (No spam). <br />We do not connect "
353
+ "your site to our server in any way. The plugin is stand-alone."
354
+ msgstr ""
355
+ "Te vei inregistra doar la noutati Starbox (fara Spam). <br />Nu vom conecta "
356
+ "site-ul cu serverul nostru. Acest plugin este stand-alone."
357
+
358
+ #: themes/admin/UserSettings.php:127
359
+ msgid "Twitter:"
360
+ msgstr ""
361
+
362
+ #: themes/admin/UserSettings.php:128
363
+ msgid "Facebook:"
364
+ msgstr ""
365
+
366
+ #: themes/admin/UserSettings.php:129
367
+ msgid "Google +:"
368
+ msgstr ""
369
+
370
+ #: themes/admin/UserSettings.php:130
371
+ msgid "LinkedIn:"
372
+ msgstr ""
373
+
374
+ #: themes/admin/UserSettings.php:131
375
+ msgid "Klout:"
376
+ msgstr ""
377
+
378
+ #: themes/admin/UserSettings.php:132
379
+ msgid "Instagram:"
380
+ msgstr ""
381
+
382
+ #: themes/admin/UserSettings.php:133
383
+ msgid "Flickr:"
384
+ msgstr ""
385
+
386
+ #: themes/admin/UserSettings.php:134
387
+ msgid "Pinterest:"
388
+ msgstr ""
389
+
390
+ #: themes/admin/UserSettings.php:135
391
+ msgid "Tumblr:"
392
+ msgstr ""
393
+
394
+ #: themes/admin/UserSettings.php:136
395
+ msgid "YouTube:"
396
+ msgstr ""
397
+
398
+ #: themes/admin/UserSettings.php:137
399
+ msgid "Vimeo:"
400
+ msgstr ""
models/Frontend.php ADDED
@@ -0,0 +1,340 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ABH_Models_Frontend {
4
+
5
+ public $author;
6
+ public $details;
7
+ public $category = null;
8
+ public $position;
9
+ public $single = true;
10
+
11
+ /**
12
+ * Get the html author box
13
+ * @global object $wp_query
14
+ * @return string
15
+ */
16
+ public function getAuthorBox() {
17
+ global $wp_query;
18
+
19
+ if (!isset($this->author))
20
+ return;
21
+
22
+ $content = '';
23
+
24
+ if (isset($this->author) && isset($this->author->ID)) {
25
+ if (!isset($this->author->user_description))
26
+ $this->author->user_description = '';
27
+
28
+ if ($this->details['abh_theme'] == 'default')
29
+ $this->details['abh_theme'] = ABH_Classes_Tools::getOption('abh_theme');
30
+
31
+ $content .= '
32
+ <div class="abh_box abh_box_' . $this->position . ' abh_box_' . $this->details['abh_theme'] . '">
33
+ <ul class="abh_tabs">
34
+ <li class="abh_about abh_active"><a href="#abh_about">' . __('About', _ABH_PLUGIN_NAME_) . '</a></li>
35
+ <li class="abh_posts"><a href="#abh_posts">' . __('Latest Posts', _ABH_PLUGIN_NAME_) . '</a></li>
36
+ </ul>
37
+ <div class="abh_tab_content">' .
38
+ $this->showAuthorDescription() .
39
+ $this->showAuthorPosts() . '
40
+ </div>
41
+ </div>';
42
+
43
+ return $this->clearTags($content);
44
+ }
45
+ return '';
46
+ }
47
+
48
+ /**
49
+ * Get the image for the author
50
+ * @return string
51
+ */
52
+ public function getProfileImage() {
53
+ if (isset($this->details['abh_gravatar']) && $this->details['abh_gravatar'] <> '' && file_exists(_ABH_GRAVATAR_DIR_ . $this->details['abh_gravatar'])) {
54
+ return '<img src="' . _ABH_GRAVATAR_URL_ . $this->details['abh_gravatar'] . '" class="photo" width="80" />';
55
+ } else {
56
+ return get_avatar($this->author->ID, 80);
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Get the author Title and Description
62
+ * @return string
63
+ */
64
+ private function showAuthorDescription() {
65
+ $content = '
66
+ <section class="' . (($this->single) ? 'vcard' : '') . ' abh_about_tab abh_tab" style="display:block">
67
+ <div class="abh_image">
68
+ ' . (($this->author->user_url) ? '<a href="' . $this->author->user_url . '" class="url" target="_blank" title="' . $this->author->display_name . '">' . $this->getProfileImage() . '</a>' : '<a href="' . get_author_posts_url($this->author->ID) . '" class="url" title="' . $this->author->display_name . '">' . $this->getProfileImage() . '</a>') . '
69
+ </div>
70
+ <div class="abh_social"> ' . $this->getSocial() . '</div>
71
+ <div class="abh_text">
72
+ <h3 class="fn name" ' . ((ABH_Classes_Tools::getOption('abh_titlefontsize') <> 'default') ? 'style="font-size:' . ABH_Classes_Tools::getOption('abh_titlefontsize') . ' !important;"' : '') . '>' . (($this->author->user_url) ? '<a href="' . $this->author->user_url . '" class="url" target="_blank">' . $this->author->display_name . '</a>' : '<a href="' . get_author_posts_url($this->author->ID) . '" class="url">' . $this->author->display_name . '</a>' ) . '</h3>
73
+ <div class="abh_job" ' . ((ABH_Classes_Tools::getOption('abh_descfontsize') <> 'default') ? 'style="font-size:' . ABH_Classes_Tools::getOption('abh_descfontsize') . ' !important;"' : '') . '>' . (($this->details['abh_title'] <> '' && $this->details['abh_company'] <> '') ? '<span class="title" ' . ((ABH_Classes_Tools::getOption('abh_descfontsize') <> 'default') ? 'style="font-size:' . ABH_Classes_Tools::getOption('abh_descfontsize') . ' !important;"' : '') . '>' . $this->details['abh_title'] . '</span> ' . __('at', _ABH_PLUGIN_NAME_) . ' <span class="org" ' . ((ABH_Classes_Tools::getOption('abh_descfontsize') <> 'default') ? 'style="font-size:' . ABH_Classes_Tools::getOption('abh_descfontsize') . ' !important;"' : '') . '>' . (($this->details['abh_company_url'] <> '') ? sprintf('<a href="%s" target="_blank">%s</a>', $this->details['abh_company_url'], $this->details['abh_company']) : $this->details['abh_company']) . '</span>' : '') . '</div>
74
+ <div class="description note abh_description" ' . ((ABH_Classes_Tools::getOption('abh_descfontsize') <> 'default') ? 'style="font-size:' . ABH_Classes_Tools::getOption('abh_descfontsize') . ' !important;"' : '') . '>' . ((isset($this->details['abh_extra_description']) && $this->details['abh_extra_description'] <> '') ? nl2br($this->details['abh_extra_description']) : nl2br($this->author->user_description)) . '</div>
75
+ </div>
76
+ </section>';
77
+ return $content;
78
+ }
79
+
80
+ /**
81
+ * Get the html author latest posts
82
+ * @return string
83
+ */
84
+ private function showAuthorPosts() {
85
+ $content = '
86
+ <section class="abh_posts_tab abh_tab" >
87
+ <div class="abh_image">
88
+ ' . (($this->author->user_url) ? '<a href="' . $this->author->user_url . '" class="url" target="_blank" title="' . $this->author->display_name . '">' . $this->getProfileImage() . '</a>' : '<a href="' . get_author_posts_url($this->author->ID) . '" class="url" title="' . $this->author->display_name . '">' . $this->getProfileImage() . '</a>') . '
89
+ </div>
90
+ <div class="abh_social"> ' . $this->getSocial() . '</div>
91
+ <div class="abh_text">
92
+ <h4 ' . ((ABH_Classes_Tools::getOption('abh_titlefontsize') <> 'default') ? 'style="font-size:' . ABH_Classes_Tools::getOption('abh_titlefontsize') . ' !important;"' : '') . '>' . sprintf(__('Latest posts by %s', _ABH_PLUGIN_NAME_), $this->author->display_name) . ' <span class="abh_allposts">(<a href="' . get_author_posts_url($this->author->ID) . '">' . __('see all', _ABH_PLUGIN_NAME_) . '</a>)</span></h4>
93
+ <div class="abh_description note" >' . $this->getLatestPosts() . '</div>
94
+ </div>
95
+ </section>';
96
+ return $content;
97
+ }
98
+
99
+ /**
100
+ * Get the social icon for the author
101
+ * @return string
102
+ */
103
+ private function getSocial() {
104
+ $content = '';
105
+ $count = 0;
106
+ $nofollow = (!$this->details['abh_nofollow_social'] == 0) ? 'rel="nofollow"' : '';
107
+
108
+ if (isset($this->details['abh_facebook']) && $this->details['abh_facebook'] <> '') {
109
+ $count++;
110
+ $content .= '<a href="' . ((strpos($this->details['abh_facebook'], 'http') === false) ? 'http://facebook.com/' : '') . $this->details['abh_facebook'] . '" title="' . __('Facebook', _ABH_PLUGIN_NAME_) . '" class="abh_facebook" target="_blank" ' . $nofollow . '></a>';
111
+ }
112
+ if (isset($this->details['abh_twitter']) && $this->details['abh_twitter'] <> '') {
113
+ $count++;
114
+ $content .= '<a href="' . ((strpos($this->details['abh_twitter'], 'http') === false) ? 'http://twitter.com/' : '') . $this->details['abh_twitter'] . '" title="' . __('Twitter', _ABH_PLUGIN_NAME_) . '" class="abh_twitter" target="_blank" ' . $nofollow . '></a>';
115
+ }
116
+ if (isset($this->details['abh_google']) && $this->details['abh_google'] <> '') {
117
+ $count++;
118
+ if ($this->single)
119
+ $content .= '<a href="' . ((strpos($this->details['abh_google'], 'http') === false) ? 'http://plus.google.com/' : '') . $this->details['abh_google'] . '?rel=author" title="' . __('Google Plus', _ABH_PLUGIN_NAME_) . '" class="abh_google" rel="author" target="_blank" ' . $nofollow . '></a>';
120
+ else
121
+ $content .= '<a href="' . ((strpos($this->details['abh_google'], 'http') === false) ? 'http://plus.google.com/' : '') . $this->details['abh_google'] . '" title="' . __('Google Plus', _ABH_PLUGIN_NAME_) . '" class="abh_google" target="_blank" ' . $nofollow . '></a>';
122
+ }
123
+ if (isset($this->details['abh_linkedin']) && $this->details['abh_linkedin'] <> '') {
124
+ $count++;
125
+ $content .= '<a href="' . ((strpos($this->details['abh_linkedin'], 'http') === false) ? 'http://www.linkedin.com/in/' : '') . $this->details['abh_linkedin'] . '" title="' . __('LinkedIn', _ABH_PLUGIN_NAME_) . '" class="abh_linkedin" target="_blank" ' . $nofollow . '></a>';
126
+ }
127
+ if (isset($this->details['abh_instagram']) && $this->details['abh_instagram'] <> '') {
128
+ $count++;
129
+ $content .= '<a href="' . ((strpos($this->details['abh_instagram'], 'http') === false) ? 'http://instagram.com/' : '') . $this->details['abh_instagram'] . '" title="' . __('Instagram', _ABH_PLUGIN_NAME_) . '" class="abh_instagram" target="_blank" ' . $nofollow . '></a>';
130
+ }
131
+ if (isset($this->details['abh_flickr']) && $this->details['abh_flickr'] <> '') {
132
+ $count++;
133
+ $content .= '<a href="' . ((strpos($this->details['abh_flickr'], 'http') === false) ? 'http://www.flickr.com/photos/' : '') . $this->details['abh_flickr'] . '" title="' . __('Flickr', _ABH_PLUGIN_NAME_) . '" class="abh_flickr" target="_blank" ' . $nofollow . '></a>';
134
+ }
135
+ if (isset($this->details['abh_pinterest']) && $this->details['abh_pinterest'] <> '') {
136
+ $count++;
137
+ $content .= '<a href="' . ((strpos($this->details['abh_pinterest'], 'http') === false) ? 'http://pinterest.com/' : '') . $this->details['abh_pinterest'] . '" title="' . __('Pinterest', _ABH_PLUGIN_NAME_) . '" class="abh_pinterest" target="_blank" ' . $nofollow . '></a>';
138
+ }
139
+ if (isset($this->details['abh_tumblr']) && $this->details['abh_tumblr'] <> '') {
140
+ $count++;
141
+ $content .= '<a href="' . ((strpos($this->details['abh_tumblr'], 'http') === false) ? 'http://' . $this->details['abh_tumblr'] . '.tumblr.com/' : $this->details['abh_tumblr']) . '" title="' . __('Tumblr', _ABH_PLUGIN_NAME_) . '" class="abh_tumblr" target="_blank" ' . $nofollow . '></a>';
142
+ }
143
+ if (isset($this->details['abh_youtube']) && $this->details['abh_youtube'] <> '') {
144
+ $count++;
145
+ $content .= '<a href="' . ((strpos($this->details['abh_youtube'], 'http') === false) ? 'http://www.youtube.com/user/' : '') . $this->details['abh_youtube'] . '" title="' . __('YouTube', _ABH_PLUGIN_NAME_) . '" class="abh_youtube" target="_blank" ' . $nofollow . '></a>';
146
+ }
147
+ if (isset($this->details['abh_vimeo']) && $this->details['abh_vimeo'] <> '') {
148
+ $count++;
149
+ $content .= '<a href="' . ((strpos($this->details['abh_vimeo'], 'http') === false) ? 'http://vimeo.com/' : '') . $this->details['abh_vimeo'] . '" title="' . __('Vimeo', _ABH_PLUGIN_NAME_) . '" class="abh_vimeo" target="_blank" ' . $nofollow . '></a>';
150
+ }
151
+
152
+ if (isset($this->details['abh_klout']) && $this->details['abh_klout'] <> '') {
153
+ $count++;
154
+ if ($score = $this->getKloutScore())
155
+ $content .= '<a href="' . ((strpos($this->details['abh_klout'], 'http') === false) ? 'http://klout.com/#/' : '') . $this->details['abh_klout'] . '" title="' . __('Klout', _ABH_PLUGIN_NAME_) . '" class="abh_klout_score" target="_blank" ' . $nofollow . '>' . $score . '</a>';
156
+ else
157
+ $content .= '<a href="' . ((strpos($this->details['abh_klout'], 'http') === false) ? 'http://klout.com/#/' : '') . $this->details['abh_klout'] . '" title="' . __('Klout', _ABH_PLUGIN_NAME_) . '" class="abh_klout" target="_blank" ' . $nofollow . '></a>';
158
+ }
159
+
160
+ if ($count == 5 || $count == 6) {
161
+ $content = '<div style="width:85px; margin: 0 0 0 auto;">' . $content . '</div>';
162
+ } elseif ($count == 7 || $count == 8) {
163
+ $content = '<div style="width:120px; margin: 0 0 0 auto;">' . $content . '</div>';
164
+ } elseif ($count == 9 || $count == 10) {
165
+ $content = '<div style="width:140px; margin: 0 0 0 auto;">' . $content . '</div>';
166
+ } elseif ($count == 11 || $count == 12) {
167
+ $content = '<div style="width:160px; margin: 0 0 0 auto;">' . $content . '</div>';
168
+ }
169
+
170
+ if ($count > 0 && isset($this->details['abh_socialtext']) && $this->details['abh_socialtext'] <> '')
171
+ $content = '<div style="clear: both; font-size:12px; font-weight:normal; width: 85px; margin: 0 0 2px auto; line-height: 20px;">' . $this->details['abh_socialtext'] . '</div>' . $content;
172
+
173
+ return $content;
174
+ }
175
+
176
+ /**
177
+ * Get the Klout Score for the author
178
+ * @return boolean
179
+ */
180
+ private function getKloutScore() {
181
+ $data = null;
182
+
183
+ if (isset($this->details['abh_klout']) && $this->details['abh_klout'] <> '') {
184
+ if (strpos($this->details['abh_klout'], 'http') !== false) {
185
+ $this->details['abh_klout'] = preg_replace('/http:\/\/klout.com\/#\//', '', $this->details['abh_klout']);
186
+ if (strpos($this->details['abh_klout'], 'http') !== false)
187
+ return false;
188
+ }
189
+
190
+ if (isset($this->details['abh_klout']) && is_file(_ABH_GRAVATAR_DIR_ . $this->details['abh_klout']) && @filemtime(_ABH_GRAVATAR_DIR_ . $this->details['abh_klout']) > (time() - (3600 * 24))) {
191
+ $data = json_decode(@file_get_contents(_ABH_GRAVATAR_DIR_ . $this->details['abh_klout']));
192
+ } else {
193
+
194
+ //First, we need to retreive the user's Klout ID
195
+ $userID = "http://api.klout.com/v2/identity.json/twitter?screenName=" . $this->details['abh_klout'] . "&key=7a8z53zg55bk2gkuuznm98xe";
196
+ if ($user = ABH_Classes_Tools::abh_remote_get($userID)) {
197
+ $user = json_decode($user);
198
+ }
199
+
200
+ if (is_object($user) && isset($user->id)) {
201
+ $klout = $user->id;
202
+
203
+ //Then, retreive the Klout score of the user, using the user's Klout ID and API key V2
204
+ $url_kscore = "http://api.klout.com/v2/user.json/" . $klout . "/score?key=7a8z53zg55bk2gkuuznm98xe";
205
+ $data = (@file_get_contents($url_kscore));
206
+
207
+ @file_put_contents(_ABH_GRAVATAR_DIR_ . $this->details['abh_klout'], $data);
208
+ $data = json_decode($data);
209
+ }
210
+ }
211
+
212
+ //If everything works well, then display Klout score
213
+ if ($data) {
214
+ return number_format($data->score, 0);
215
+ }
216
+ }
217
+ return false;
218
+ }
219
+
220
+ /**
221
+ * Get the List Of Posts for the author
222
+ * @return string
223
+ */
224
+ private function getLatestPosts() {
225
+ $content = '<ul>';
226
+ $latest_posts = new WP_Query(array('posts_per_page' => ABH_Classes_Tools::getOption('anh_crt_posts'), 'author' => $this->author->ID));
227
+
228
+
229
+ while ($latest_posts->have_posts()) : $latest_posts->the_post();
230
+
231
+ if (isset($this->category) && $this->category <> '') {
232
+ $found = false;
233
+ $categories = get_the_category();
234
+ foreach ($categories as $category) {
235
+ if (!is_numeric($this->category)) {
236
+ if ($this->category == $category->name) {
237
+ $found = true;
238
+ break;
239
+ }
240
+ } elseif (is_numeric($this->category)) {
241
+ if ($this->category == $category->cat_ID) {
242
+ $found = true;
243
+ break;
244
+ }
245
+ }
246
+ }
247
+ if (!$found)
248
+ continue;
249
+ //echo '<pre>' . print_r($category, true) . '</pre>';
250
+ }
251
+
252
+ if (get_the_title() <> '')
253
+ $content .= '
254
+ <li ' . ((ABH_Classes_Tools::getOption('abh_descfontsize') <> 'default') ? 'style="font-size:' . ABH_Classes_Tools::getOption('abh_descfontsize') . ' !important;"' : '') . ' >
255
+ <a href="' . get_permalink() . '">' . get_the_title() . '</a>' .
256
+ (((int) get_the_time('U') > 0) ? '<span> - ' . @date_i18n(get_option('date_format'), (int) get_the_time('U')) . '</span>' : '') . '
257
+ </li>';
258
+ endwhile;
259
+ wp_reset_postdata();
260
+ $content .= '</ul>';
261
+
262
+ return $content;
263
+ }
264
+
265
+ /**
266
+ * Clear the new lines from the author box
267
+ * @param type $content
268
+ * @return string
269
+ */
270
+ private function clearTags($content) {
271
+ return preg_replace_callback('~\<[^>]+\>.*\</[^>]+\>~ms', array($this, 'stripNewLines'), $content);
272
+ }
273
+
274
+ /**
275
+ * Clear the new lines
276
+ * @param type $match
277
+ * @return type
278
+ */
279
+ public function stripNewLines($match) {
280
+ return str_replace(array("\r", "\n", " "), '', $match[0]);
281
+ }
282
+
283
+ /**
284
+ * Get the meta with Social and Profile
285
+ * @return string
286
+ */
287
+ public function showMeta() {
288
+ if (!isset($this->author))
289
+ return;
290
+
291
+ $meta = "\n<!-- StarBox - the Author Box for Humans " . ABH_VERSION . ", visit: http://wordpress.org/plugins/starbox/ -->\n";
292
+
293
+ if (ABH_Classes_Tools::getOption('abh_showopengraph') == 1 && is_author()) {
294
+ //Show the OpenGraph
295
+ $meta .= $this->showOpenGraph();
296
+ }
297
+
298
+ if (isset($this->details['abh_google']) && $this->details['abh_google'] <> '')
299
+ $meta .= $this->showGoogleAuthorMeta(); //show google author meta
300
+ if (isset($this->details['abh_facebook']) && $this->details['abh_facebook'] <> '')
301
+ $meta .= $this->showFacebookAuthorMeta(); //show facebook author meta
302
+
303
+ $meta .= "<!-- /StarBox - the Author Box for Humans -->\n\n";
304
+
305
+ return $meta;
306
+ }
307
+
308
+ /**
309
+ * Get the Open Graph for the current author
310
+ * @return string
311
+ */
312
+ public function showOpenGraph() {
313
+ $og = '';
314
+ $og .= sprintf('<meta property="og:url" content="%s" />', get_author_posts_url($this->author->ID)) . "\n";
315
+ $og .= sprintf('<meta property="og:type" content="%s" />', 'profile') . "\n";
316
+ $og .= sprintf('<meta property="profile:first_name" content="%s" />', get_the_author_meta('first_name', $this->author->ID)) . "\n";
317
+ $og .= sprintf('<meta property="profile:last_name" content="%s" />', get_the_author_meta('last_name', $this->author->ID)) . "\n";
318
+
319
+ return $og;
320
+ }
321
+
322
+ /**
323
+ * Get the Google author Meta
324
+ * @return string
325
+ */
326
+ public function showGoogleAuthorMeta() {
327
+ return '<link rel="author" href="' . ((strpos($this->details['abh_google'], 'http') === false) ? 'http://plus.google.com/' : '') . $this->details['abh_google'] . '" />' . "\n";
328
+ }
329
+
330
+ /**
331
+ * Get the Facebook author Meta
332
+ * @return string
333
+ */
334
+ public function showFacebookAuthorMeta() {
335
+ return '<meta property="article:author" content="' . ((strpos($this->details['abh_facebook'], 'http') === false) ? 'http://facebook.com/' : '') . $this->details['abh_facebook'] . '" />' . "\n";
336
+ }
337
+
338
+ }
339
+
340
+ ?>
models/Menu.php ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ABH_Models_Menu {
4
+
5
+ /** @var array with the menu content
6
+ *
7
+ * $page_title (string) (required) The text to be displayed in the title tags of the page when the menu is selected
8
+ * $menu_title (string) (required) The on-screen name text for the menu
9
+ * $capability (string) (required) The capability required for this menu to be displayed to the user. User levels are deprecated and should not be used here!
10
+ * $menu_slug (string) (required) The slug name to refer to this menu by (should be unique for this menu). Prior to Version 3.0 this was called the file (or handle) parameter. If the function parameter is omitted, the menu_slug should be the PHP file that handles the display of the menu page content.
11
+ * $function The function that displays the page content for the menu page. Technically, the function parameter is optional, but if it is not supplied, then WordPress will basically assume that including the PHP file will generate the administration screen, without calling a function. Most plugin authors choose to put the page-generating code in a function within their main plugin file.:In the event that the function parameter is specified, it is possible to use any string for the file parameter. This allows usage of pages such as ?page=my_super_plugin_page instead of ?page=my-super-plugin/admin-options.php.
12
+ * $icon_url (string) (optional) The url to the icon to be used for this menu. This parameter is optional. Icons should be fairly small, around 16 x 16 pixels for best results. You can use the plugin_dir_url( __FILE__ ) function to get the URL of your plugin directory and then add the image filename to it. You can set $icon_url to "div" to have wordpress generate <br> tag instead of <img>. This can be used for more advanced formating via CSS, such as changing icon on hover.
13
+ * $position (integer) (optional) The position in the menu order this menu should appear. By default, if this parameter is omitted, the menu will appear at the bottom of the menu structure. The higher the number, the lower its position in the menu. WARNING: if 2 menu items use the same position attribute, one of the items may be overwritten so that only one item displays!
14
+ *
15
+ * */
16
+ public $menu = array();
17
+
18
+ /** @var array with the menu content
19
+ * $id (string) (required) HTML 'id' attribute of the edit screen section
20
+ * $title (string) (required) Title of the edit screen section, visible to user
21
+ * $callback (callback) (required) Function that prints out the HTML for the edit screen section. Pass function name as a string. Within a class, you can instead pass an array to call one of the class's methods. See the second example under Example below.
22
+ * $post_type (string) (required) The type of Write screen on which to show the edit screen section ('post', 'page', 'link', or 'custom_post_type' where custom_post_type is the custom post type slug)
23
+ * $context (string) (optional) The part of the page where the edit screen section should be shown ('normal', 'advanced', or 'side'). (Note that 'side' doesn't exist before 2.7)
24
+ * $priority (string) (optional) The priority within the context where the boxes should show ('high', 'core', 'default' or 'low')
25
+ * $callback_args (array) (optional) Arguments to pass into your callback function. The callback will receive the $post object and whatever parameters are passed through this variable.
26
+ *
27
+ * */
28
+ public $meta = array();
29
+
30
+ function __construct() {
31
+
32
+ }
33
+
34
+ /**
35
+ * Add a menu in WP admin page
36
+ *
37
+ * @param array $param
38
+ *
39
+ * @return void
40
+ */
41
+ public function addMenu($param = null) {
42
+ if ($param)
43
+ $this->menu = $param;
44
+
45
+ if (is_array($this->menu)) {
46
+
47
+ if ($this->menu[0] <> '' && $this->menu[1] <> '') {
48
+ /* add the translation */
49
+ $this->menu[0] = __($this->menu[0], _ABH_PLUGIN_NAME_);
50
+ $this->menu[1] = __($this->menu[1], _ABH_PLUGIN_NAME_);
51
+
52
+ if (!isset($this->menu[5]))
53
+ $this->menu[5] = null;
54
+ if (!isset($this->menu[6]))
55
+ $this->menu[6] = null;
56
+ if (!isset($this->menu[7]))
57
+ $this->menu[7] = null;
58
+
59
+ /* add the menu with WP */
60
+ add_menu_page($this->menu[0], $this->menu[1], $this->menu[2], $this->menu[3], $this->menu[4], $this->menu[5], $this->menu[6], $this->menu[7]);
61
+ }
62
+ }
63
+ }
64
+
65
+ /**
66
+ * Add a submenumenu in WP admin page
67
+ *
68
+ * @param array $param
69
+ *
70
+ * @return void
71
+ */
72
+ public function addSubmenu($param = null) {
73
+ if ($param)
74
+ $this->menu = $param;
75
+
76
+ if (is_array($this->menu)) {
77
+
78
+ if ($this->menu[0] <> '' && $this->menu[1] <> '') {
79
+ /* add the translation */
80
+ $this->menu[0] = __($this->menu[0], _ABH_PLUGIN_NAME_);
81
+ $this->menu[1] = __($this->menu[1], _ABH_PLUGIN_NAME_);
82
+
83
+ if (!isset($this->menu[5]))
84
+ $this->menu[5] = null;
85
+ if (!isset($this->menu[6]))
86
+ $this->menu[6] = null;
87
+ if (!isset($this->menu[7]))
88
+ $this->menu[7] = null;
89
+
90
+ /* add the menu with WP */
91
+ add_submenu_page($this->menu[0], $this->menu[1], $this->menu[2], $this->menu[3], $this->menu[4], $this->menu[5], $this->menu[6], $this->menu[7]);
92
+ }
93
+ }
94
+ }
95
+
96
+ /**
97
+ * Add a box Meta in WP
98
+ *
99
+ * @param array $param
100
+ *
101
+ * @return void
102
+ */
103
+ public function addMeta($param = null) {
104
+ if ($param)
105
+ $this->meta = $param;
106
+
107
+
108
+ if (is_array($this->meta)) {
109
+
110
+ if ($this->meta[0] <> '' && $this->meta[1] <> '') {
111
+ /* add the translation */
112
+ $this->meta[1] = __($this->meta[1], _ABH_PLUGIN_NAME_);
113
+
114
+ if (!isset($this->meta[5]))
115
+ $this->meta[5] = null;
116
+ if (!isset($this->meta[6]))
117
+ $this->meta[6] = null; //no arg
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+ //print_r($this->meta);
135
+ /* add the box content with WP */
136
+ add_meta_box($this->meta[0], $this->meta[1], $this->meta[2], $this->meta[3], $this->meta[4], $this->meta[5]);
137
+ //add_meta_box('post'._ABH_PLUGIN_NAME_, __(ucfirst(_ABH_PLUGIN_NAME_),_ABH_PLUGIN_NAME_), array($this, 'showMenu'), 'post', 'side', 'high');
138
+ }
139
+ }
140
+ }
141
+
142
+ }
143
+
144
+ ?>
models/UserSettings.php ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class ABH_Models_UserSettings {
4
+
5
+ /**
6
+ * Add the image for gravatar
7
+ *
8
+ * @param string $file
9
+ * @param string $path
10
+ * @return array [name (the name of the file), image (the path of the image), message (the returned message)]
11
+ *
12
+ */
13
+ public function addImage($file, $path = ABSPATH) {
14
+ $out = array();
15
+ $out['name'] = strtolower(basename($file['name']));
16
+ $out['gravatar'] = _ABH_GRAVATAR_DIR_ . strtolower(basename($file['name']));
17
+ $out['message'] = '';
18
+ $file_error = $file['error'];
19
+ $img = new Model_ABH_Image();
20
+
21
+ /* get the file extension */
22
+ $file_name = explode('.', $file['name']);
23
+ $file_type = strtolower($file_name[count($file_name) - 1]);
24
+
25
+ /* if the file has a name */
26
+ if (!empty($file['name'])) {
27
+ /* Check the extension */
28
+ $file_type = strtolower($file_type);
29
+ $files = array('jpeg', 'jpg', 'gif', 'png');
30
+ $key = in_array($file_type, $files);
31
+
32
+ if (!$key) {
33
+ ABH_Classes_Error::setError(__("File type error: Only JPEG, JPG, GIF or PNG files are allowed.", _ABH_PLUGIN_NAME_));
34
+ return;
35
+ }
36
+ /* Check for error messages */
37
+ $error_count = count($file_error);
38
+ if (!empty($file_error) && $error_count > 0) {
39
+ for ($i = 0; $i <= $error_count; ++$i) {
40
+ ABH_Classes_Error::setError($file['error'][$i]);
41
+ return;
42
+ }
43
+ } elseif (!$img->checkFunctions()) {
44
+
45
+ ABH_Classes_Error::setError(__("GD error: The GD library must be installed on your server.", _ABH_PLUGIN_NAME_));
46
+ return;
47
+ } else {
48
+ /* Delete the previous file if exists */
49
+ if (is_file($out['gravatar'])) {
50
+ if (!unlink($out['gravatar'])) {
51
+ ABH_Classes_Error::setError(__("Delete error: Could not delete the old gravatar.", _ABH_PLUGIN_NAME_));
52
+ return;
53
+ }
54
+ }
55
+ /* Upload the file */
56
+ if (!move_uploaded_file($file['tmp_name'], $out['gravatar'])) {
57
+ ABH_Classes_Error::setError(__("Upload error: Could not upload the gravatar.", _ABH_PLUGIN_NAME_), 'fatal');
58
+ return;
59
+ }
60
+ /* Change the permision */
61
+ if (!chmod($out['gravatar'], 0755)) {
62
+ ABH_Classes_Error::setError(__("Permission error: Could not change the gravatar permissions.", _ABH_PLUGIN_NAME_));
63
+ return;
64
+ }
65
+ /* Transform the image into icon */
66
+ $img->openImage($out['gravatar']);
67
+ $img->resizeImage(80, 80);
68
+ $img->saveImage();
69
+
70
+ copy($img->image, $out['gravatar']);
71
+
72
+ $out['message'] .= __("The gravatar has been updated.", _ABH_PLUGIN_NAME_);
73
+
74
+ return $out;
75
+ }
76
+ }
77
+ }
78
+
79
+ }
80
+
81
+ /**
82
+ * Upload the image to the server
83
+ */
84
+ class Model_ABH_Image {
85
+
86
+ var $imageType;
87
+ var $imgH;
88
+ var $image;
89
+ var $quality = 100;
90
+
91
+ function openImage($image) {
92
+ $this->image = $image;
93
+
94
+ if (!file_exists($image))
95
+ return false;
96
+
97
+ $imageData = getimagesize($image);
98
+
99
+ if (!$imageData) {
100
+ return false;
101
+ } else {
102
+ $this->imageType = image_type_to_mime_type($imageData[2]);
103
+
104
+ switch ($this->imageType) {
105
+ case 'image/gif':
106
+ $this->imgH = imagecreatefromgif($image);
107
+ imagealphablending($this->imgH, true);
108
+ break;
109
+ case 'image/png':
110
+ $this->imgH = imagecreatefrompng($image);
111
+ imagealphablending($this->imgH, true);
112
+ break;
113
+ case 'image/jpg':
114
+ case 'image/jpeg':
115
+ $this->imgH = imagecreatefromjpeg($image);
116
+ break;
117
+
118
+ // CHANGED EXCEPTION TO RETURN FALSE
119
+ default: return false; // throw new Exception('Unknown image format!');
120
+ }
121
+ }
122
+ }
123
+
124
+ function saveImage() {
125
+ switch ($this->imageType) {
126
+ case 'image/jpg':
127
+ case 'image/jpeg':
128
+ return @imagejpeg($this->imgH, $this->image, $this->quality);
129
+ break;
130
+ case 'image/gif':
131
+ return @imagegif($this->imgH, $this->image);
132
+ break;
133
+ case 'image/png':
134
+ return @imagepng($this->imgH, $this->image);
135
+ break;
136
+ default:
137
+ return @imagejpeg($this->imgH, $this->image);
138
+ }
139
+ @imagedestroy($this->imgH);
140
+ }
141
+
142
+ function resizeImage($maxwidth, $maxheight, $preserveAspect = true) {
143
+ $width = @imagesx($this->imgH);
144
+ $height = @imagesy($this->imgH);
145
+
146
+ if ($width > $maxwidth && $height > $maxheight) {
147
+ $oldprop = round($width / $height, 2);
148
+ $newprop = round($maxwidth / $maxheight, 2);
149
+ $preserveAspectx = round($width / $maxwidth, 2);
150
+ $preserveAspecty = round($height / $maxheight, 2);
151
+
152
+ if ($preserveAspect) {
153
+ if ($preserveAspectx < $preserveAspecty) {
154
+ $newwidth = $width / ($height / $maxheight);
155
+ $newheight = $maxheight;
156
+ } else {
157
+ $newwidth = $maxwidth;
158
+ $newheight = $height / ($width / $maxwidth);
159
+ }
160
+
161
+ $dest = imagecreatetruecolor($newwidth, $newheight);
162
+ $this->applyTransparency($dest);
163
+ // CHANGED EXCEPTION TO RETURN FALSE
164
+ if (imagecopyresampled($dest, $this->imgH, 0, 0, 0, 0, $newwidth, $newheight, $width, $height) == false)
165
+ return false; // throw new Exception('Couldn\'t resize image!');
166
+ }else {
167
+ $dest = imagecreatetruecolor($maxwidth, $maxheight);
168
+ $this->applyTransparency($dest);
169
+ // CHANGED EXCEPTION TO RETURN FALSE
170
+ if (imagecopyresampled($dest, $this->imgH, 0, 0, 0, 0, $maxwidth, $maxheight, $width, $height) == false)
171
+ return false; // throw new Exception('Couldn\'t resize image!') ;
172
+ }
173
+ $this->imgH = $dest;
174
+ }
175
+ }
176
+
177
+ function applyTransparency($imgH) {
178
+ if ($this->imageType == 'image/png' || $this->imageType == 'image/gif') {
179
+ imagealphablending($imgH, false);
180
+ $col = imagecolorallocatealpha($imgH, 255, 255, 255, 127);
181
+ imagefilledrectangle($imgH, 0, 0, 485, 500, $col);
182
+ imagealphablending($imgH, true);
183
+ }
184
+ }
185
+
186
+ function checkFunctions() {
187
+ return function_exists('gd_info');
188
+ }
189
+
190
+ }
191
+
192
+ ?>
readme.txt ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Starbox - the Author Box for Humans ===
2
+ Contributors: cifi, florinmuresan
3
+ Tags: author box‎,author,twitter,sidebar,images,shortcode,publisher,meta,post,posts,page,pages,google,facebook,snippet,plugin,html5,vcard,klout,users,user,author box,rich snippet,author bio, author bio box,bio,widget,comments,blog,content,email,image,linkedin,marketing,mobile,pinterest,profile,shortcodes,social,social media,wordpress
4
+ Requires at least: 3.3
5
+ Tested up to: 4.1.1
6
+ Stable tag: trunk
7
+ Donate link: http://starbox.squirrly.co/starbox-the-author-box-for-humans/
8
+
9
+ Starbox is the Author Box for Humans. Professional Themes to choose from, HTML5, Social Media Profiles, Google Authorship
10
+
11
+ == Description ==
12
+
13
+ **How Do I Get Support For This Plugin?**
14
+ If you want more Social Icons and Premium Support, that also comes with High Priority, go to:
15
+ http://starbox.squirrly.co/product/starbox-the-author-box-for-humans/
16
+
17
+ **Starbox is the Author Box for Humans**
18
+
19
+ While search engines and other software that read your site care about files like robots.txt, you need Human readers to actually engage with your content and fall in love with it.
20
+
21
+ Humans look at beauty more than anything else (as you most probably already know, men and women alike). That's why you'll get an <strong>Author Box that's gorgeous to look at and it makes your readers click all the way through</strong> to see more about the Authors.
22
+
23
+ Now, if you have just yourself as an Author on your site, or a super-star team of Authors, you'll love Starbox. You can <strong>choose from the professionaly built themes and landscaping</strong>. If you are the super-star type, or want to boost social proof, place your Author Box on top of the page, so that your Human readers will know that they're reading stuff that a real awesome person has written.
24
+
25
+ You want the classy, bottom-of-the-page Author Box? You can choose that one as well.
26
+
27
+ And if your star Authors want different things, satisfy their needs by allowing them to place their Author Box at the top or bottom, with the default theme, or a better looking one. You can make each of them shine in their own way.
28
+
29
+ The <strong>Social Profiles</strong> of your writers will be obvious and clickable, getting you Humans that will engage with content on your blog and also on your social media streams.
30
+
31
+ Because your authors are stars or will be very soon, <strong>Google Authorship and Facebook Authorship</strong> are here for them with Starbox, and it's just type->click->boom! to set up. Amazingly easy.
32
+
33
+ Are you afraid of having to spend too much time setting Starbox up? Don't worry. You're covered by our "For Humans" guarantee. With NO coding or complicated menus whatsoever, you'll set your Author Box in a matter of minutes. And since we took a lot of care regarding all the coding, it will work well and you won't have to worry about that.
34
+
35
+ You'll build up some good social proof, you'll give your Human readers a sense of quality and they'll be happy to return for more (which will help you with the search engines who track your site).
36
+
37
+ If you're doing the tech stuff on your site or want to know what Starbox's inner workings are all about, here's a list:
38
+
39
+ * HTML 5
40
+ * Google Microformats (vCard), to display Rich Snippets in google search results
41
+ * Easy to customize for each Author
42
+ * You'll get Google Authorship on your hands :-) For all your authors.
43
+ * Have it work only on blog posts, only on pages, or both!
44
+ * Links to the social media profiles of your authors: Facebook, Twitter, Klout, Google+, LinkedIN, Instagram, Flickr, Pinterest, Tumblr, Youtube, Vimeo
45
+ * Each of your Authors can have a different set of social media profiles added
46
+ * Links to all the articles written by that author
47
+ * A section that displays the latest posts of a certain author
48
+ * Themes to choose from
49
+ * Themes setup for each individual Author, to really make them shine
50
+ * You Can set the Name of the Author
51
+ * You Can set the Job Title of each Author
52
+ * Can set Company (with a link to the company's site)
53
+ * Each Author can make the Author Box look like it's her own
54
+ * You can choose not to display it for certain authors
55
+ * Removes any other author box from the page, so that there aren't duplicates
56
+ * Enables you to upload your own image (so that you won't need a Gravatar)
57
+ * Paragraphs in the Author Bio to have a better looking text
58
+ * Displays the Author Box in the special pages built for each author.
59
+ * Special Pages for your authors
60
+ * Works even with sites that have woocommerce or other ecommerce plugins
61
+ * Add Starbox in your post's content or wordpress widgets using the shortcode [starbox] or [starbox id=USER_ID]
62
+
63
+
64
+ So get your very own Starbox now:
65
+
66
+ 1. Your Authors will become real Stars
67
+ 2. Your readers will notice the persons behind the articles better
68
+ 3. It increases your social proof and credibility as an Author
69
+ 4. It will increase the subscriber numbers across social media channels
70
+ 5. Your readers will feel like they know you better and feel a connection, so they'll return more often
71
+ 6. You know that right now for Google it matters a lot that you have returning visitors (because it means your site is: quality)
72
+ 7. You'll get Google Authorship on your hands :-) For all your authors.
73
+
74
+ Download it from the Wordpress directory and try it out. Having an author box after posts will certainly increase engagement and help your authors grow their authority on the web.
75
+
76
+
77
+ == Installation ==
78
+ 1. Log In as an Admin on your Wordpress blog.
79
+ 2. In the menu displayed on the left, there is a "Plugins" tab. Click it.
80
+ 3. Now click "Add New".
81
+ 4. There, you have the buttons: "Search | Upload | Featured | Popular | Newest". Click "Upload".
82
+ 5. Upload the starbox.zip file.
83
+ 6. After the upload is finished, click Activate Plugin.
84
+ 7. Done :-) You'll see that this is as advertized.
85
+
86
+ == Screenshots ==
87
+ 1. Author Box with Business Theme
88
+ 2. Author Bio Box with Business Theme
89
+ 3. Author Box Settings
90
+ 4. Author Box Settings for each Author
91
+ 5. Author Box Social Settings
92
+ 6. Author Box with Drop-Down Theme
93
+ 7. Author Box with Drop-Down Theme
94
+ 8. Author Box with Drop-Down Theme
95
+ 9. Google Rich Snippets with the author's image
96
+ 10. Google Rich Snippets with the author's image
97
+ 11. Author Box with TopStar Theme
98
+ 12. Author Box with TopStar Theme
99
+ 13. Author Box with Drop-Down Theme
100
+ 14. Author Box with Drop-Down Theme
101
+ 15. Author Box with Fancy Theme
102
+ 16. Author Box with Drop-Down Theme
103
+
104
+
105
+ == Changelog ==
106
+ = 3.0.2 =
107
+ * Compatible with WP 4.1.1
108
+ * Fix link tag close duplicates
109
+ * Added some theme compatibilities
110
+ * Social Networks removed in the free version. Only Facebook add Twitter remained.
111
+
112
+ = 3.0.1 =
113
+ * Compatible with WP 4.0.1
114
+
115
+ = 3.0.0 =
116
+ * Made changed according to GPL 2.0
117
+
118
+ = 2.2.0 =
119
+ * Compatible with WP 4.0
120
+ * Fixed various bugs
121
+
122
+ = 2.1.4 =
123
+ * Compatible with WP 3.9.2
124
+
125
+ = 2.1.3 =
126
+ * Fixed css and js loading issues for many different themes
127
+ * Fixed repeated header section
128
+
129
+ = 2.1.2 =
130
+ * Compatible with WP 3.9.1
131
+
132
+ = 2.1.1 =
133
+ * Removed Author Box from products that you may have in Woocommerce when only posts are set to have the author box displayed (you can do this in settings)
134
+
135
+ = 2.1.0 =
136
+ * Compatible with WP 3.9
137
+
138
+ = 2.0.5 =
139
+ * Fixed Klout score issue
140
+
141
+ = 2.0.4 =
142
+ * Fixed hook bugs for preview and frontend
143
+ * Update css on the author box plugin for some themes
144
+ * Fixed small bugs for Font size option
145
+ * Works with W3 Total Cache and Super Cache
146
+
147
+ = 2.0.3 =
148
+ * Added Font Size option for the name and description
149
+
150
+ = 2.0.2 =
151
+ * fixed show latest posts for shortcodes
152
+ * added show latest posts from specific category in shortcode [starbox lpc="category id"] or [starbox lpc="category name"]
153
+
154
+ = 2.0.1 =
155
+ * Fixed css for more themes
156
+ * Fixed hide from all posts in WP 3.8.1 issue
157
+ * Added French Translation by D SIGNED
158
+
159
+ = 2.0.0 =
160
+ * Fixed loading issues
161
+ * Compatible with Wordpress 3.8
162
+ * Fixed css for different themes and for Wordpress 3.8
163
+
164
+ == Frequently Asked Questions ==
165
+ = Why is there no meta for google and facebook authorship? =
166
+ You have to fill the google and facebook social accounts in your profile and it will show up.
167
+
168
+ = How Do I Get Support For This Plugin? =
169
+ We're following the threads and based on them we always try to build up new and better implementations for the Author Box for Humans. If you want Premium Support, that also comes with High Priority, then go to:
170
+ http://starbox.squirrly.co/product/starbox-the-author-box-for-humans/
171
+
172
+ = How Do I Make Sure I Get Priority Support From Buying The Recommended Version? =
173
+ It will help you have a premium email from us, on which you can get super-fast support.
174
+ http://starbox.squirrly.co/product/starbox-the-author-box-for-humans/
175
+ After you buy it, it will show you the email on which you can write to us for Premium and Fast Support
176
+
177
+ = How can I call (display) the author box in a post or widget? =
178
+ Just add <strong>[starbox]</strong> or <strong>[starbox id="login_name"]</strong> in your post or widget..
179
+ You can also add different description for the author box, by adding <strong>[starbox id="login_name" desc="custom description" ]</strong>
180
+ And more than that, you can add a default theme for author box <strong>[starbox id="login_name" desc="custom description" theme="business"]</strong>
181
+
182
+ = How can i add multiple author boxes to a post? =
183
+ You can use startbox shortcode at the bottom of the content like this:
184
+ [starbox id="john,david"] where john and david are the username of the authors
185
+ or
186
+ [starbox id="1,2..n"] where 1,2, .. n are the ID of the authors
187
+
188
+ = Is your team dedicated to this plugin? =
189
+ You can count on it :-) Our team of 8 people over at Squirrly (registered in the UK) are focused on making both our wordpress seo plugin and our author box plugin the best there are. So far we succeeded in making them one of the most popular, because we listen to your feedback and you're the reason for their success.
screenshot-1.jpg ADDED
Binary file
screenshot-10.jpg ADDED
Binary file
screenshot-11.jpg ADDED
Binary file
screenshot-12.jpg ADDED
Binary file
screenshot-13.jpg ADDED
Binary file
screenshot-14.jpg ADDED
Binary file
screenshot-15.jpg ADDED
Binary file
screenshot-16.jpg ADDED
Binary file
screenshot-2.jpg ADDED
Binary file
screenshot-3.jpg ADDED
Binary file
screenshot-4.jpg ADDED
Binary file
screenshot-5.jpg ADDED
Binary file
screenshot-6.jpg ADDED
Binary file
screenshot-7.jpg ADDED
Binary file
screenshot-8.jpg ADDED
Binary file
screenshot-9.jpg ADDED
Binary file
starbox.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ Copyright (c) 2012, Squirrly Limited.
5
+ The copyrights to the software code in this file are licensed under the (revised) BSD open source license.
6
+
7
+ Plugin Name: StarBox
8
+ Plugin URI:
9
+ Author: Squirrly UK
10
+ Description: Starbox is the Author Box for Humans. Professional Themes to choose from, HTML5, Social Media Profiles, Google Authorship
11
+ Version: 3.0.2
12
+ Author URI: http://www.squirrly.co
13
+ */
14
+ /* SET THE CURRENT VERSION ABOVE AND BELOW */
15
+ define('ABH_VERSION', '3.0.2');
16
+ /* Call config files */
17
+ require(dirname(__FILE__) . '/config/config.php');
18
+
19
+ /* important to check the PHP version */
20
+ if (PHP_VERSION_ID >= 5100) {
21
+ /* inport main classes */
22
+ require_once(_ABH_CLASSES_DIR_ . 'ObjController.php');
23
+ require_once(_ABH_CLASSES_DIR_ . 'BlockController.php');
24
+
25
+ /* Main class call */
26
+ ABH_Classes_ObjController::getController('ABH_Classes_FrontController')->run();
27
+
28
+ if (!is_admin())
29
+ ABH_Classes_ObjController::getController('ABH_Controllers_Frontend');
30
+ } else {
31
+ /* Main class call */
32
+ add_action('admin_notices', array(ABH_Classes_ObjController::getController('ABH_Classes_FrontController'), 'phpVersionError'));
33
+ }
34
+
35
+ // --
36
+ // Upgrade StarBox call.
37
+ register_activation_hook(__FILE__, 'abh_upgrade');
38
+
39
+ function abh_upgrade() {
40
+ set_transient('abh_upgrade', true, 30);
41
+ }
themes/admin/Menu.php ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="abh_settings" >
2
+ <form id="abh_settings_form" name="settings" action="" method="post" enctype="multipart/form-data">
3
+ <div id="abh_settings_title" ><?php _e('StarBox Settings', _ABH_PLUGIN_NAME_); ?><a href="http://wordpress.org/support/view/plugin-reviews/starbox" target="_blank"><span class="abh_settings_rate" ><span></span><?php _e('Please support us on Wordpress', _ABH_PLUGIN_NAME_); ?></span></a></div>
4
+ <div id="abh_settings_body">
5
+ <div id="abh_settings_left" >
6
+
7
+ <fieldset>
8
+
9
+ <div class="abh_option_content">
10
+ <div class="abh_switch">
11
+ <input id="abh_inposts_on" type="radio" class="abh_switch-input" name="abh_inposts" value="1" <?php echo ((ABH_Classes_Tools::getOption('abh_inposts') == 1) ? "checked" : '') ?> />
12
+ <label for="abh_inposts_on" class="abh_switch-label abh_switch-label-off"><?php _e('Yes', _ABH_PLUGIN_NAME_); ?></label>
13
+ <input id="abh_inposts_off" type="radio" class="abh_switch-input" name="abh_inposts" value="0" <?php echo ((!ABH_Classes_Tools::getOption('abh_inposts')) ? "checked" : '') ?> />
14
+ <label for="abh_inposts_off" class="abh_switch-label abh_switch-label-on"><?php _e('No', _ABH_PLUGIN_NAME_); ?></label>
15
+ <span class="abh_switch-selection"></span>
16
+ </div>
17
+ <span><?php _e('Visible in <strong>posts</strong>', _ABH_PLUGIN_NAME_); ?></span>
18
+ <div class="abh_option_strictposts"><input name="abh_strictposts" type="checkbox" value="1" <?php echo ((ABH_Classes_Tools::getOption('abh_strictposts') == 1) ? "checked" : '') ?> /><label for="abh_strictposts"><?php _e('Hide Author Box from custom posts types', _ABH_PLUGIN_NAME_); ?></label></div>
19
+
20
+ </div>
21
+
22
+ <div class="abh_option_content">
23
+ <div class="abh_switch">
24
+ <input id="abh_inpages_on" type="radio" class="abh_switch-input" name="abh_inpages" value="1" <?php echo ((ABH_Classes_Tools::getOption('abh_inpages') == 1) ? "checked" : '') ?> />
25
+ <label for="abh_inpages_on" class="abh_switch-label abh_switch-label-off"><?php _e('Yes', _ABH_PLUGIN_NAME_); ?></label>
26
+ <input id="abh_inpages_off" type="radio" class="abh_switch-input" name="abh_inpages" value="0" <?php echo ((!ABH_Classes_Tools::getOption('abh_inpages')) ? "checked" : '') ?> />
27
+ <label for="abh_inpages_off" class="abh_switch-label abh_switch-label-on"><?php _e('No', _ABH_PLUGIN_NAME_); ?></label>
28
+ <span class="abh_switch-selection"></span>
29
+ </div>
30
+ <span><?php _e('Visible in <strong>pages</strong>', _ABH_PLUGIN_NAME_); ?></span>
31
+ </div>
32
+
33
+ <div class="abh_option_content">
34
+ <div class="abh_switch">
35
+ <input id="abh_ineachpost_on" type="radio" class="abh_switch-input" name="abh_ineachpost" value="1" <?php echo ((ABH_Classes_Tools::getOption('abh_ineachpost') == 1) ? "checked" : '') ?> />
36
+ <label for="abh_ineachpost_on" class="abh_switch-label abh_switch-label-off"><?php _e('Yes', _ABH_PLUGIN_NAME_); ?></label>
37
+ <input id="abh_ineachpost_off" type="radio" class="abh_switch-input" name="abh_ineachpost" value="0" <?php echo ((!ABH_Classes_Tools::getOption('abh_ineachpost')) ? "checked" : '') ?> />
38
+ <label for="abh_ineachpost_off" class="abh_switch-label abh_switch-label-on"><?php _e('No', _ABH_PLUGIN_NAME_); ?></label>
39
+ <span class="abh_switch-selection"></span>
40
+ </div>
41
+ <span><?php _e('Show the Starbox with Top Star theme <strong>in the global feed of your blog</strong> (eg. "/blog" page) under each title of every post', _ABH_PLUGIN_NAME_); ?></span>
42
+ </div>
43
+
44
+ <div class="abh_option_content">
45
+ <div class="abh_switch">
46
+ <input id="abh_showopengraph_on" type="radio" class="abh_switch-input" name="abh_showopengraph" value="1" <?php echo ((ABH_Classes_Tools::getOption('abh_showopengraph') == 1) ? "checked" : '') ?> />
47
+ <label for="abh_showopengraph_on" class="abh_switch-label abh_switch-label-off"><?php _e('Yes', _ABH_PLUGIN_NAME_); ?></label>
48
+ <input id="abh_showopengraph_off" type="radio" class="abh_switch-input" name="abh_showopengraph" value="0" <?php echo ((!ABH_Classes_Tools::getOption('abh_showopengraph')) ? "checked" : '') ?> />
49
+ <label for="abh_showopengraph_off" class="abh_switch-label abh_switch-label-on"><?php _e('No', _ABH_PLUGIN_NAME_); ?></label>
50
+ <span class="abh_switch-selection"></span>
51
+ </div>
52
+ <span><?php echo sprintf(__('Show the <strong>Open Graph</strong> Profile in meta for each author %sdetails%s (useful for rich snippets)', _ABH_PLUGIN_NAME_), '<a href="http://ogp.me/#type_profile" target="_blank">', '</a>'); ?></span>
53
+ </div>
54
+ </fieldset>
55
+ <fieldset>
56
+ <legend><?php _e('Theme setting:', _ABH_PLUGIN_NAME_); ?></legend>
57
+ <div class="abh_option_content">
58
+
59
+ <div class="abh_select">
60
+ <select name="abh_position">
61
+ <option value="up" <?php echo ((ABH_Classes_Tools::getOption('abh_position') == 'up') ? 'selected="selected"' : '') ?>>Up</option>
62
+ <option value="down" <?php echo ((ABH_Classes_Tools::getOption('abh_position') == 'down') ? 'selected="selected"' : '') ?>>Down</option>
63
+ </select>
64
+ </div>
65
+ <span><?php _e('The Author Box <strong>position</strong> (Topstar and Topstar-round are always on shown on top)', _ABH_PLUGIN_NAME_); ?></span>
66
+ </div>
67
+
68
+ <div class="abh_option_content">
69
+ <div class="abh_select">
70
+ <select id="abh_theme_select" name="abh_theme">
71
+ <?php
72
+ foreach (ABH_Classes_Tools::getOption('abh_themes') as $name) {
73
+ echo '<option value="' . $name . '" ' . ((ABH_Classes_Tools::getOption('abh_theme') == $name) ? 'selected="selected"' : '') . ' >' . ucfirst($name) . '</option>';
74
+ }
75
+ ?>
76
+ </select>
77
+ </div>
78
+ <span><?php _e('Choose the default theme to be displayed <strong>inside each blog article</strong>', _ABH_PLUGIN_NAME_); ?></span>
79
+ </div>
80
+
81
+ <div class="abh_option_content">
82
+ <div class="abh_select">
83
+ <select id="abh_titlefontsize_select" name="abh_titlefontsize">
84
+ <?php
85
+ foreach (ABH_Classes_Tools::getOption('abh_titlefontsizes') as $name) {
86
+ echo '<option value="' . $name . '" ' . ((ABH_Classes_Tools::getOption('abh_titlefontsize') == $name) ? 'selected="selected"' : '') . ' >' . $name . '</option>';
87
+ }
88
+ ?>
89
+ </select>
90
+ </div>
91
+ <span><?php _e('Choose the size of the name', _ABH_PLUGIN_NAME_); ?></span>
92
+
93
+ <div class="abh_select">&nbsp;
94
+ <select id="abh_descfontsize_select" name="abh_descfontsize">
95
+ <?php
96
+ foreach (ABH_Classes_Tools::getOption('abh_descfontsizes') as $name) {
97
+ echo '<option value="' . $name . '" ' . ((ABH_Classes_Tools::getOption('abh_descfontsize') == $name) ? 'selected="selected"' : '') . ' >' . $name . '</option>';
98
+ }
99
+ ?>
100
+ </select>
101
+ </div>
102
+ <span><?php _e('Choose the size of the description', _ABH_PLUGIN_NAME_); ?></span>
103
+ </div>
104
+
105
+
106
+ <div id="abh_box_preview_title"><?php _e('Preview mode for the default theme', _ABH_PLUGIN_NAME_); ?></div>
107
+ <div id="abh_box_preview"><?php
108
+ if (file_exists(_ABH_ALL_THEMES_DIR_ . ABH_Classes_Tools::getOption('abh_theme') . '/js/frontend.js'))
109
+ echo '<script type="text/javascript" src="' . _ABH_ALL_THEMES_URL_ . ABH_Classes_Tools::getOption('abh_theme') . '/js/frontend.js?ver=' . ABH_VERSION . '"></script>';
110
+ echo '<link rel="stylesheet" href="' . _ABH_ALL_THEMES_URL_ . ABH_Classes_Tools::getOption('abh_theme') . '/css/frontend.css?ver=' . ABH_VERSION . '" type="text/css" media="all" />';
111
+ global $current_user;
112
+ echo ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showBox($current_user->ID);
113
+ ?>
114
+ </div>
115
+ <input type="text" style="display: none;" value="<?php echo $current_user->ID ?>" size="1" id="user_id" >
116
+ <br /><br />
117
+ <div class="abh_option_content">
118
+ <div class="abh_select">
119
+ <select name="abh_achposttheme">
120
+ <?php
121
+ foreach (ABH_Classes_Tools::getOption('abh_achpostthemes') as $name) {
122
+ echo '<option value="' . $name . '" ' . ((ABH_Classes_Tools::getOption('abh_achposttheme') == $name) ? 'selected="selected"' : '') . ' >' . ucfirst($name) . '</option>';
123
+ }
124
+ ?>
125
+ </select>
126
+ </div>
127
+ <span><?php _e('Choose the theme to be displayed in your <strong>global list of posts</strong> (eg. /blog)', _ABH_PLUGIN_NAME_); ?></span>
128
+ </div>
129
+
130
+
131
+
132
+ <div><br /><br /><?php _e('Add Starbox in the post content or widgets with the shortcode <strong>[starbox]</strong> or <strong>[starbox id=USER_ID]</strong>', _ABH_PLUGIN_NAME_); ?></div>
133
+ <div class="abh_option_content">
134
+ <div class="abh_switch">
135
+ <input id="abh_shortcode_on" type="radio" class="abh_switch-input" name="abh_shortcode" value="1" <?php echo ((ABH_Classes_Tools::getOption('abh_shortcode') == 1) ? "checked" : '') ?> />
136
+ <label for="abh_shortcode_on" class="abh_switch-label abh_switch-label-off"><?php _e('Yes', _ABH_PLUGIN_NAME_); ?></label>
137
+ <input id="abh_shortcode_off" type="radio" class="abh_switch-input" name="abh_shortcode" value="0" <?php echo ((!ABH_Classes_Tools::getOption('abh_shortcode')) ? "checked" : '') ?> />
138
+ <label for="abh_shortcode_off" class="abh_switch-label abh_switch-label-on"><?php _e('No', _ABH_PLUGIN_NAME_); ?></label>
139
+ <span class="abh_switch-selection"></span>
140
+ </div>
141
+ <span><?php echo sprintf(__('Check for <strong>[starbox]</strong> shortcode in my blog. %sRead more >>%s', _ABH_PLUGIN_NAME_), '<a href="http://wordpress.org/plugins/starbox/faq/" target="_blank">', '</a>'); ?> </span>
142
+ </div>
143
+ </fieldset>
144
+
145
+ </div>
146
+
147
+ <div id="abh_settings_submit">
148
+ <p><?php _e('Click "go to user settings" to setup the author box for each author you have ( including per author Google Authorship)', _ABH_PLUGIN_NAME_); ?></p>
149
+ <input type="hidden" name="action" value="abh_settings_update" />
150
+ <input type="hidden" name="nonce" value="<?php echo wp_create_nonce(_ABH_NONCE_ID_); ?>" />
151
+ <input type="submit" name="abh_update" class="abh_button" value="<?php _e('Save settings', _ABH_PLUGIN_NAME_) ?> &raquo;" />
152
+ <a href="profile.php#abh_settings" class="abh_button"><?php _e('Go to user settings', _ABH_PLUGIN_NAME_) ?></a>
153
+ </div>
154
+
155
+ <div><br /><br /><?php echo sprintf(__('Use the Google Tool to check rich snippets %sclick here%s', _ABH_PLUGIN_NAME_), '<a href="http://www.google.com/webmasters/tools/richsnippets?url=' . get_bloginfo('url') . '" target="_blank">', '</a>'); ?></div>
156
+
157
+ </div>
158
+ </form>
159
+ </div>
themes/admin/Notices.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ($type == 'errors_count') {
3
+ /* for the Menu counter */
4
+ ?>
5
+ <span class='awaiting-mod count-<?php echo $message; ?>'>
6
+ <span class='sq_count pending-count'><?php echo $message; ?></span>
7
+ </span>
8
+ <?php } else { ?>
9
+ <div id="<?php echo $id ?>" class="<?php echo $type; ?> sq_message">
10
+
11
+ <p>
12
+ <strong><?php echo $message; ?></strong>
13
+ </p>
14
+
15
+ </div>
16
+ <?php } ?>
themes/admin/UserSettings.php ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div id="abh_settings" >
2
+ <a name="abh_settings"></a>
3
+ <div id="abh_settings_title" ><?php _e('Starbox Settings for this Author', _ABH_PLUGIN_NAME_); ?><a href="http://wordpress.org/support/view/plugin-reviews/starbox" target="_blank"><span class="abh_settings_rate" ><span></span><?php _e('Please support us on Wordpress', _ABH_PLUGIN_NAME_); ?></span></a></div>
4
+ <div id="abh_settings_body">
5
+ <div id="abh_settings_left" >
6
+ <fieldset >
7
+ <div class="abh_option_content">
8
+ <div class="abh_switch">
9
+ <input id="abh_use_on" type="radio" class="abh_switch-input" name="abh_use" value="1" <?php echo (($view->author['abh_use'] == 1) ? "checked" : '') ?> />
10
+ <label for="abh_use_on" class="abh_switch-label abh_switch-label-off"><?php _e('Yes', _ABH_PLUGIN_NAME_); ?></label>
11
+ <input id="abh_use_off" type="radio" class="abh_switch-input" name="abh_use" value="0" <?php echo ((!$view->author['abh_use'] == 1) ? "checked" : '') ?> />
12
+ <label for="abh_use_off" class="abh_switch-label abh_switch-label-on"><?php _e('No', _ABH_PLUGIN_NAME_); ?></label>
13
+ <span class="abh_switch-selection"></span>
14
+ </div>
15
+ <span><?php _e('Show the StarBox for this author', _ABH_PLUGIN_NAME_); ?></span>
16
+ </div>
17
+
18
+ </fieldset>
19
+ <fieldset>
20
+ <legend><?php _e('Change the Profile Image', _ABH_PLUGIN_NAME_); ?></legend>
21
+ <div class="abh_gravatar">
22
+ <p>
23
+ <?php _e('File types: JPG, JPEG, GIF and PNG. Ideal image size is: 80x80', _ABH_PLUGIN_NAME_); ?>
24
+ </p>
25
+ <p><span class="sq_settings_info"><?php echo ((defined('ABH_MESSAGE_FAVICON')) ? ABH_MESSAGE_FAVICON : '') ?></span></p>
26
+ <div>
27
+ <?php if (isset($view->author['abh_gravatar']) && $view->author['abh_gravatar'] <> '' && file_exists(_ABH_GRAVATAR_DIR_ . $view->author['abh_gravatar'])) { ?>
28
+ <img src="<?php echo _ABH_GRAVATAR_URL_ . $view->author['abh_gravatar'] . '?' . time() ?>" width="80" class="photo" />
29
+ <?php
30
+ } else {
31
+
32
+ echo get_avatar($view->user->ID, 80);
33
+ }
34
+ ?>
35
+ <div class="abh_upload">
36
+ <input type="file" name="abh_gravatar" />
37
+ <input type="submit" id="abh_gravatar_update" name="abh_update" value="<?php _e('Upload', _ABH_PLUGIN_NAME_) ?>" />
38
+ <div class="abh_upload_reset"><label for="abh_resetgravatar"><?php _e('Reset the uploaded image', _ABH_PLUGIN_NAME_); ?></label><input name="abh_resetgravatar" type="checkbox" value="1" /></div>
39
+ <span class="abh_settings_info"><?php echo sprintf(__('You can also set your image on %shttps://en.gravatar.com/%s for your email address', _ABH_PLUGIN_NAME_), '<a href="https://en.gravatar.com/" target="_blank">', '</a>'); ?></span>
40
+ </div>
41
+ </div>
42
+ </div>
43
+
44
+ </fieldset>
45
+ <fieldset>
46
+ <legend><?php _e('Theme settings:', _ABH_PLUGIN_NAME_); ?></legend>
47
+ <div class="abh_option_content">
48
+ <div class="abh_select">
49
+ <select name="abh_position">
50
+ <?php
51
+ if (isset($view->author['abh_position']))
52
+ $position = $view->author['abh_position'];
53
+ else
54
+ $position = 'default';
55
+ ?>
56
+ <option value="default" <?php echo (($position == 'default') ? 'selected="selected"' : '') ?>><?php _e('Default', _ABH_PLUGIN_NAME_); ?></option>
57
+ <option value="up" <?php echo (($position == 'up') ? 'selected="selected"' : '') ?>><?php _e('Up', _ABH_PLUGIN_NAME_); ?></option>
58
+ <option value="down" <?php echo (($position == 'down') ? 'selected="selected"' : '') ?>><?php _e('Down', _ABH_PLUGIN_NAME_); ?></option>
59
+ </select>
60
+ </div>
61
+ <span><?php _e('The Author Box position', _ABH_PLUGIN_NAME_); ?></span>
62
+ </div>
63
+
64
+ <div class="abh_option_content">
65
+
66
+ <div class="abh_select">
67
+ <select id="abh_theme_select" name="abh_theme">
68
+ <?php
69
+ if (isset($view->author['abh_theme']))
70
+ $theme = $view->author['abh_theme'];
71
+ else
72
+ $theme = 'default';
73
+
74
+ foreach ($view->themes as $name) {
75
+ echo '<option value="' . $name . '" ' . (($theme == $name) ? 'selected="selected"' : '') . ' >' . ucfirst($name) . '</option>';
76
+ }
77
+ ?>
78
+ </select>
79
+ </div>
80
+ <span><?php _e('This Author\'s theme', _ABH_PLUGIN_NAME_); ?></span>
81
+
82
+ </div>
83
+
84
+ <div class="abh_option_content" style="display: none">
85
+ <div class="abh_select">
86
+ <select id="abh_titlefontsize_select" name="abh_titlefontsize">
87
+ <?php
88
+ foreach (ABH_Classes_Tools::getOption('abh_titlefontsizes') as $name) {
89
+ echo '<option value="' . $name . '" ' . ((ABH_Classes_Tools::getOption('abh_titlefontsize') == $name) ? 'selected="selected"' : '') . ' >' . $name . '</option>';
90
+ }
91
+ ?>
92
+ </select>
93
+ </div>
94
+ <span><?php _e('Choose the size of the name', _ABH_PLUGIN_NAME_); ?></span>
95
+
96
+ <div class="abh_select">&nbsp;
97
+ <select id="abh_descfontsize_select" name="abh_descfontsize">
98
+ <?php
99
+ foreach (ABH_Classes_Tools::getOption('abh_descfontsizes') as $name) {
100
+ echo '<option value="' . $name . '" ' . ((ABH_Classes_Tools::getOption('abh_descfontsize') == $name) ? 'selected="selected"' : '') . ' >' . $name . '</option>';
101
+ }
102
+ ?>
103
+ </select>
104
+ </div>
105
+ <span><?php _e('Choose the size of the description', _ABH_PLUGIN_NAME_); ?></span>
106
+ </div>
107
+
108
+ <div id="abh_box_preview_title"><?php _e('Preview mode (change the theme)', _ABH_PLUGIN_NAME_); ?></div>
109
+ <div id="abh_box_preview"><?php
110
+ if ($theme == 'default')
111
+ $theme = ABH_Classes_Tools::getOption('abh_theme');
112
+ if (file_exists((_ABH_ALL_THEMES_DIR_ . $theme . '/js/frontend.js')))
113
+ echo '<script type="text/javascript" src="' . _ABH_ALL_THEMES_URL_ . $theme . '/js/frontend.js?ver=' . ABH_VERSION . '"></script>';
114
+ echo '<link rel="stylesheet" href="' . _ABH_ALL_THEMES_URL_ . $theme . '/css/frontend.css?ver=' . ABH_VERSION . '" type="text/css" media="all" />';
115
+
116
+ echo ABH_Classes_ObjController::getController('ABH_Controllers_Frontend')->showBox($view->user->ID);
117
+ ?></div>
118
+ </fieldset>
119
+ <fieldset>
120
+ <legend><?php _e('Job settings:', _ABH_PLUGIN_NAME_); ?></legend>
121
+ <div>
122
+ <p><span><?php _e('Job Title:', _ABH_PLUGIN_NAME_); ?></span> <input type="text" name="abh_title" value="<?php echo $view->author['abh_title']; ?>" size="30" /></p>
123
+ <p><span><?php _e('Company:', _ABH_PLUGIN_NAME_); ?></span> <input type="text" name="abh_company" value="<?php echo $view->author['abh_company']; ?>" size="30" /></p>
124
+ <p><span><?php _e('Company URL:', _ABH_PLUGIN_NAME_); ?></span> <input type="text" name="abh_company_url" value="<?php echo $view->author['abh_company_url']; ?>" size="30" /></p>
125
+ <p class="abh_description_author"></p>
126
+ <p class="abh_show_extra_description" <?php echo (($view->author['abh_extra_description'] == '') ? '' : 'style="display: none"'); ?>><?php _e('add custom author bio >>', _ABH_PLUGIN_NAME_); ?></p>
127
+ <p class="abh_extra_description" <?php echo (($view->author['abh_extra_description'] <> '') ? '' : 'style="display: none"'); ?>>
128
+ <span> </span><span style="font-size:12px; font-weight: normal; margin-left: 15px; font-style: italic;"><?php _e('By adding text here, you will replace the above description with this one', _ABH_PLUGIN_NAME_); ?></span>
129
+ <br style="clear:both;" />
130
+ <span><?php _e('Author BIO:', _ABH_PLUGIN_NAME_); ?></span> <textarea id="abh_extra_description" name="abh_extra_description" ><?php echo $view->author['abh_extra_description']; ?></textarea>
131
+ <br style="clear:both;" />
132
+ <span> </span><a href="javascript:void(0);" onclick="jQuery('#abh_extra_description').val('')" style="font-size:12px; font-weight: normal; margin-left: 15px;"><?php _e('Clear the custom description and show the default description', _ABH_PLUGIN_NAME_); ?></a>
133
+ </p>
134
+ </div>
135
+ </fieldset>
136
+ <fieldset >
137
+ <legend><?php _e('Social settings:', _ABH_PLUGIN_NAME_); ?></legend>
138
+
139
+ <div id="abh_option_social" >
140
+ <p class="abh_social_text" style="height:30px; line-height: 30px;">
141
+ <span><?php _e('Social text (12 chars):', _ABH_PLUGIN_NAME_); ?></span>
142
+ <span ><input name="abh_socialtext" value="<?php echo $view->author['abh_socialtext']; ?>" size="30" maxlength="12" style="min-width: 100px; width: 100px;" /></span>
143
+ <span style="font-size:12px; font-weight: normal; font-style: italic; margin-left: 5px;"><?php _e('eq. "Follow me"', _ABH_PLUGIN_NAME_); ?></span>
144
+ </p>
145
+ <p><span class="abh_social_settings abh_twitter"></span><span><?php _e('Twitter:', _ABH_PLUGIN_NAME_); ?></span> <input type="text" name="abh_twitter" value="<?php echo $view->author['abh_twitter']; ?>" size="30" /></p>
146
+ <p><span class="abh_social_settings abh_facebook"></span><span><?php _e('Facebook:', _ABH_PLUGIN_NAME_); ?></span> <input type="text" name="abh_facebook" value="<?php echo $view->author['abh_facebook']; ?>" size="30" /></p>
147
+ <p style="font-size: 18px; color: red;"><?php echo sprintf(__('Need more Socials Links and High Priority support? Visit %sStarbox PRO%s', _ABH_PLUGIN_NAME_), '<a href="http://starbox.squirrly.co/product/starbox-the-author-box-for-humans/" target="_blank">', '</a>'); ?></p>
148
+ <div class="abh_option_content">
149
+ <div class="abh_switch">
150
+ <input id="abh_nofollow_social_on" type="radio" class="abh_switch-input" name="abh_nofollow_social" value="1" <?php echo ((!$view->author['abh_nofollow_social'] == 0) ? "checked" : '') ?> />
151
+ <label for="abh_nofollow_social_on" class="abh_switch-label abh_switch-label-off"><?php _e('Yes', _ABH_PLUGIN_NAME_); ?></label>
152
+ <input id="abh_nofollow_social_off" type="radio" class="abh_switch-input" name="abh_nofollow_social" value="0" <?php echo (($view->author['abh_nofollow_social'] == 0) ? "checked" : '') ?> />
153
+ <label for="abh_nofollow_social_off" class="abh_switch-label abh_switch-label-on"><?php _e('No', _ABH_PLUGIN_NAME_); ?></label>
154
+ <span class="abh_switch-selection"></span>
155
+ </div>
156
+ <span><?php _e('Add rel="nofollow" to Social links', _ABH_PLUGIN_NAME_); ?></span>
157
+ </div>
158
+
159
+ </div>
160
+ </fieldset>
161
+
162
+ <div id="abh_settings_title" >&nbsp;</div>
163
+ </div>
164
+
165
+
166
+ </div>
167
+ </div>
themes/admin/css/hidedefault.css ADDED
@@ -0,0 +1 @@
 
1
+ .author-box,.article-author,.author-info,#entry-author-info,#author-bio-box,#cab-author,#authorarea,.author-wrap,#post-author{display:none}
themes/admin/css/menu.css ADDED
@@ -0,0 +1 @@
 
1
+ .abh_message{line-height:19px;padding:0px 0;font-size:13px;text-align:center;margin:-1px 15px 0 5px;border-width:1px;border-style:solid;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:#FFFBCC;border-color:#E6DB55}.abh_notices{font-size:13px;color:#555}.abh_loading{height:60px;background:transparent url('../img/loading.gif') no-repeat center}.abh_minloading{height:20px;width:20px;background:transparent url('../img/minloading.gif') no-repeat center}.abh_error{text-align:center;font-size:14px;font-weight:bold;color:brown;margin:5px}#abh_settings{font-family:Arial, sans-serif;position:relative}#abh_settings #abh_settings_title{font-size:19px;font-weight:normal;line-height:35px;color:#333;margin:30px 15px 3px 0;padding-bottom:6px;height:auto;border-bottom:1px solid #CCC;box-shadow:0px 3px 12px -8px black;-moz-box-shadow:0px 3px 12px -8px black;-webkit-box-shadow:0px 3px 12px -8px black}#abh_settings #abh_settings_title a.abh_button,#abh_settings #abh_settings_title input.abh_button{display:inline-block;font-size:15px;font-weight:bold;color:white;background-color:green;border:1px solid white;border-radius:5px;line-height:25px;padding:5px 10px;margin:6px 0 0 20px;text-decoration:none;cursor:pointer}#abh_settings #abh_subscribe{font-size:16px;font-weight:bold;margin-bottom:3px}#abh_option_subscribe #abh_subscribe_social{float:none;width:320px;height:30px;clear:both;padding-top:3px}#abh_option_subscribe #abh_subscribe_social span{float:left}#abh_settings #abh_subscribe_email{background-color:lightgoldenrodyellow;border:1px solid #333;margin:5px 0 0 0;padding:7px;font-size:15px}#abh_settings #abh_subscribe_subscribe{margin-left:3px;padding:0 25px;height:33px;font-size:14px;color:green;font-weight:bold}#abh_settings #abh_subscribe_confirmation{color:green;font-size:17px;font-weight:bold;margin:20px 0}#abh_settings .abh_upload{float:left;margin:20px}#abh_settings .abh_upload_reset{float:left;clear:both;margin:5px 0}#abh_settings .abh_upload_reset input{margin-right:3px;margin-top:3px}#abh_settings .abh_upload input{float:left}#abh_settings .abh_upload #abh_gravatar_update{margin-top:0;height:32px;padding:0 20px}#abh_settings .abh_gravatar img{float:left;margin-top:5px;width:80px}#abh_settings #abh_settings_body{display:block;font-size:12px;color:#333;line-height:16px;text-align:left;margin-top:20px}#abh_settings_body #abh_settings_left,#abh_settings_body #abh_settings_right{float:left}#abh_settings_body #abh_settings_submit{clear:both}#abh_settings_body fieldset{min-width:400px;background:#fcfcfb;border:1px solid #f1f1f1;font-size:1.1em;margin:10px auto;padding:1em;font-family:Arial,Verdana,Helvetica,sans-serif;text-shadow:1px 1px white;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;box-shadow:0 5px 9px -8px #999}#abh_settings_body #abh_settings_left fieldset{margin:10px 10px 22px 10px}#abh_settings_body #abh_settings_right fieldset{margin:10px 0px 22px 0px}#abh_settings_body fieldset legend{background:#fefefe repeat-x top left;border:1px solid #ddd;font-size:14px;font-weight:normal;margin:0;padding:.2em .5em;line-height:20px;text-align:left;color:#333;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px}#abh_settings_body span.abh_settings_info{clear:both;display:block;font-size:10px;width:100%;text-align:right}#abh_settings_body ul.abh_settings_info > span{display:block;color:#777;font-size:14px;font-weight:bold;margin-bottom:10px;list-style:none}#abh_settings_body ul.abh_settings_info li{margin-left:5px;font-size:11px;font-weight:normal;color:#777}#abh_settings_body fieldset p{vertical-align:top;margin:0.5em 0 0 0;padding:0 0 0.5em 0;font-weight:normal;font-size:12px;line-height:20px}#abh_settings_body #abh_option_social p{clear:both}#abh_settings_body #abh_option_social p.abh_social_text{height:30px;line-height:30px}#abh_settings_body fieldset p.withborder{clear:both;vertical-align:top;min-height:45px;margin:7px 0 10px 0;padding:0 0 10px 0;font-weight:normal;font-size:12px;border-bottom:1px dashed #CCC}#abh_settings_body fieldset p.withcode strong{display:block;font-size:10px;color:#333;margin-left:15px;margin-top:10px}#abh_settings_body fieldset p.withcode input[type=text]{width:170px;font-size:10px;margin:0;border:1px solid green}#abh_settings_body fieldset p.abh_show_extra_description{clear:both;color:green;cursor:pointer;font-size:12px;font-weight:bold;margin-bottom:5px}#abh_settings_body fieldset p.abh_extra_description{clear:both}#abh_settings_body fieldset p.abh_extra_description textarea{height:86px}#abh_settings_body fieldset .abh_icon{display:block;float:left;background:transparent url('../img/sprite.png') no-repeat;margin:0 10px 0 0;color:brown;width:55px;height:50px}#abh_settings_body fieldset .abh_icon_googleplus{background-position:-221px -100px}#abh_settings_body fieldset .abh_icon_googlewt{background-position:-112px -100px}#abh_settings_body fieldset .abh_icon_googleanalytics{background-position:0px -100px}#abh_settings_body fieldset .abh_icon_facebookinsights{background-position:-59px -100px}#abh_settings_body fieldset .abh_icon_bingwt{background-position:-165px -100px}#abh_settings_body fieldset .abh_icon_alexat{background-position:-270px -100px}#abh_settings_body fieldset p input,#abh_settings_body fieldset p textarea{font-weight:bold;margin-left:15px;padding:4px;border:1px solid lightgray;max-width:415px;min-width:370px}#abh_settings_body .abh_select{float:left;font-weight:bold;margin-right:5px}#abh_settings_body .abh_description textarea{min-width:400px}#abh_settings_body div p span{display:block;float:left;min-width:100px;padding-top:4px;font-size:14px}#abh_settings_body .abh_button{font-size:15px;font-weight:bold;line-height:25px;padding:1px 10px;margin-left:11px;margin-top:5px;background-color:green;color:white}#abh_settings_body a.abh_button{background:#999;padding:5px 11px;text-transform:none;text-decoration:none}#abh_settings_body .customize,#abh_settings_body ._customize{font-size:12px;font-weight:bold;color:blue;cursor:pointer}#abh_settings_body ._customize{margin-top:10px}@media only screen and (max-width: 1800px){#abh_settings_body #abh_settings_left,#abh_settings_body #abh_settings_right{float:none}}.abh_option_content{clear:both;padding:6px 0;height:30px}.abh_option_content > span{float:left;position:relative;padding-top:8px;display:block;vertical-align:middle;line-height:12px;font-size:14px;text-shadow:1px 1px #FFF}.abh_switch{float:left;position:relative;margin:0px 9px 0 0;height:26px;width:120px;background:rgba(0, 0, 0, 0.25);border-radius:3px;-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1)}.abh_switch-label{position:relative;z-index:2;float:left;width:58px;line-height:26px;font-size:11px;color:rgba(255, 255, 255, 0.35);text-align:center;text-shadow:0 1px 1px rgba(0, 0, 0, 0.45);cursor:pointer}.abh_switch-label:active{font-weight:bold}.abh_switch-label-off{padding-left:2px}.abh_switch-label-on{padding-right:2px}.abh_switch-input{display:none !important}.abh_switch-input:checked + .abh_switch-label{font-weight:bold;color:rgba(0, 0, 0, 0.65);text-shadow:0px 1px rgba(255, 255, 255, 0.25);-webkit-transition:0.15s ease-out;-moz-transition:0.15s ease-out;-o-transition:0.15s ease-out;transition:0.15s ease-out}.abh_switch-input:checked + .abh_switch-label-on ~ .abh_switch-selection{left:60px;background:lightcoral}.abh_switch-selection{display:block;position:absolute;z-index:1;top:2px;left:2px;width:58px;height:22px;background:#65bd63;border-radius:3px;background-image:-webkit-linear-gradient(top, #9dd993, #65bd63);background-image:-moz-linear-gradient(top, #9dd993, #65bd63);background-image:-o-linear-gradient(top, #9dd993, #65bd63);background-image:linear-gradient(to bottom, #9dd993, #65bd63);-webkit-box-shadow:inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2);box-shadow:inset 0 1px rgba(255, 255, 255, 0.5), 0 0 2px rgba(0, 0, 0, 0.2);-webkit-transition:left 0.15s ease-out;-moz-transition:left 0.15s ease-out;-o-transition:left 0.15s ease-out;transition:left 0.15s ease-out}#abh_settings .abh_option_strictposts{float:left;clear:both;margin:4px 0 10px 1px}#abh_settings .abh_option_strictposts input{margin-right:3px;margin-top:3px}.abh_option_content_small{clear:both;padding:0px 0;height:20px}.abh_option_content > span.abh_option_info_small{line-height:20px;font-size:11px;color:#777}.abh_option_content_small .abh_switch{margin:0px 9px 0 0;height:18px;width:60px}.abh_option_content_small .abh_switch-label{width:28px;line-height:17px;font-size:9px}.abh_option_content_small .abh_switch-input:checked + .abh_switch-label-on ~ .abh_switch-selection{left:31px}.abh_option_content_small .abh_switch-selection{top:1px;left:1px;width:28px;height:16px}.abh_option_content_small > span{font-size:11px !important}.abh_social_settings{display:block;float:right;line-height:1px;padding:0;margin:0;text-align:right}.abh_social_settings{width:140px;margin:0 0 0 auto}.abh_social_settings{display:inline-block;background:transparent url('../img/sprite.png') no-repeat;min-width:24px !important;width:24px !important;height:24px !important;padding:0 !important;margin:1px 5px 0 0 !important;opacity:.5;transition:opacity .2s;text-decoration:none;-moz-transition:opacity .2s;-webkit-transition:opacity .2s;-o-transition:opacity .2s;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px}.abh_social_settings:hover{opacity:1}span.abh_facebook{background-position:0px 0px}span.abh_flickr{background-position:-24px 0px}span.abh_google{background-position:-48px 0px}span.abh_instagram{background-position:-72px 0px}span.abh_linkedin{background-position:-96px 0px}span.abh_pinterest{background-position:-120px 0px}span.abh_tumblr{background-position:-144px 0px}span.abh_twitter{background-position:-168px 0px}span.abh_vimeo{background-position:-192px 0px}span.abh_youtube{background-position:-216px 0px}span.abh_klout{background-position:-240px 0px;border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0}span.abh_klout_score{text-align:center;color:#fff;font-size:11px;background-position:-264px 0px;background-repeat:no-repeat;height:0px;padding:9px 0 15px 0;border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0}.abh_settings_rate{display:block;font-size:14px;width:350px;clear:both;cursor:pointer}.abh_settings_rate span{margin:3px 5px 0 0;float:left;display:block;width:104px;height:26px;background:transparent url('../img/sprite.png') no-repeat;background-position:0px -74px}#abh_box_preview_title{font-size:16px;margin-top:10px;font-weight:bold;color:orange;text-align:center;width:700px;width:600px;margin-left:115px}#abh_box_preview{position:relative;background-color:white;border:1px solid #eee;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;width:600px;min-height:130px;padding:10px;margin-left:115px}#abh_box_preview .abh_box{margin:0 !important}
themes/admin/img/loading.gif ADDED
Binary file
themes/admin/img/minloading.gif ADDED
Binary file
themes/admin/img/sprite.png ADDED
Binary file
themes/admin/js/menu.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+
2
+ jQuery(document).ready(function(){jQuery('#abh_settings').find('input[type=radio]').bind('click',function(){abh_submitSettings();});jQuery('#abh_settings').find('.abh_show_extra_description').bind('click',function(){jQuery('#abh_settings').find('.abh_extra_description').show();jQuery('#abh_settings').find('.abh_show_extra_description').hide();});jQuery('form').attr('enctype','multipart/form-data');if(jQuery('#description').length>0){jQuery('#description').parents('.form-table:last').before(jQuery('#abh_settings'));jQuery('.abh_description_author').append('<table></table>');jQuery('.abh_description_author').find('table').append(jQuery('#description').parents('tr:last'));}
3
+ jQuery('#abh_subscribe_subscribe').bind('click',function(event){if(event)
4
+ event.preventDefault();if(abh_validateEmail(jQuery('#abh_subscribe_email').val())){jQuery.getJSON('https://api.squirrly.co/sq/users/subscribe?callback=?',{email:jQuery('#abh_subscribe_email').val(),url:jQuery('#abh_subscribe_url').val()},function(data){jQuery.getJSON(abh_Query.ajaxurl,{action:'abh_settings_subscribe',nonce:abh_Query.nonce});jQuery('#abh_option_subscribe').hide();jQuery('#abh_option_social').show();if(data.result=="success"){jQuery('#abh_option_social').prepend('<div id="abh_subscribe_confirmation">Thank you!</div>');}});}else{alert('The email is not valid! Please enter a valid email address. Thank you');}});jQuery('#abh_theme_select,#abh_titlefontsize_select, #abh_descfontsize_select').bind('change',function(){jQuery('#abh_box_preview').addClass('abh_loading');jQuery('#abh_box_preview').html('');jQuery.getJSON(abh_Query.ajaxurl,{action:'abh_get_box',user_id:jQuery('#user_id').val(),abh_theme:jQuery('#abh_theme_select').find(":selected").val(),abh_titlefontsize:jQuery('#abh_titlefontsize_select').find(":selected").val(),abh_descfontsize:jQuery('#abh_descfontsize_select').find(":selected").val(),nonce:abh_Query.nonce},function(data){jQuery('#abh_box_preview').removeClass('abh_loading');if(typeof data.box!=="undefined"){jQuery('#abh_box_preview').html(data.box);}});});jQuery('.abh_powered_by').bind('click',function(){jQuery.getJSON(abh_Query.ajaxurl,{action:'abh_powered_by',abh_powered_by:jQuery('#abh_settings').find('input[name=abh_powered_by]:checked').val(),nonce:abh_Query.nonce},function(){});});});function abh_validateEmail($email){var emailReg=/^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;if(!emailReg.test($email)){return false;}else{return true;}}
5
+ function abh_submitSettings(){jQuery.getJSON(abh_Query.ajaxurl,{action:'abh_settings_update',data:jQuery('#abh_settings').find('form').serialize(),nonce:abh_Query.nonce});}
6
+ function abh_getBox(){}
themes/business/css/frontend.css ADDED
@@ -0,0 +1 @@
 
1
+ .abh_box{clear:both !important;position:relative !important;width:100% !important;padding:25px 0 !important}.abh_tabs{list-style:none !important;width:100% !important;padding:5px 0px 1px 0px !important;margin:0px 0px 0px 0px !important;font:13px arial !important;border-bottom:1px solid #ccc !important}.abh_tabs li{list-style:none !important;display:inline !important;margin:0 !important;padding:0 !important}.abh_tabs li:after{content:"" !important;padding:0 !important;margin:0 !important}.abh_tabs li:before{content:"" !important;padding:0 !important;margin:0 !important}.abh_tabs li i{display:none}.abh_tabs li a{color:#333 !important;background-color:transparent !important;border:0px solid #ccc !important;padding:4px 10px 5px !important;text-decoration:none !important;border-bottom:none !important;outline:none !important;font-size:100% !important;line-height:23px !important}.abh_tabs li a:hover{background-color:#dddddd !important;padding:4px 10px 5px !important}.abh_tabs li.abh_active a{color:#333 !important;background-color:#eeeeee !important;border-bottom:1px solid #fff !important;padding:4px 10px 5px 10px !important;border-bottom:none !important}.abh_tabs li.abh_active a:hover{background-color:#eeeeee !important;padding:4px 10px 5px 10px !important;border-bottom:none !important}.abh_tabs li a.icon_accept{background-image:url(accept.png) !important;background-position:5px !important;background-repeat:no-repeat !important;padding-left:24px !important}.abh_tabs li a.icon_accept:hover{padding-left:24px !important}.abh_tabs_content_container{border:2px solid #ccc !important;border-top:none !important;padding:10px !important;width:400px !important}.abh_tab_content{padding:20px 12px !important;min-height:80px !important;overflow:hidden !important;border-bottom:1px solid #ccc !important}.abh_tab_content .abh_tab{display:none}.abh_tab_content .abh_image{display:block;float:left !important;width:80px !important;margin-top:10px !important}.abh_tab_content .abh_image img{max-width:80px !important;border-radius:3px !important;box-shadow:0 1px 4px rgba(0, 0, 0, 0.2) !important;overflow:hidden !important;-webkit-border-radius:50% 50% 50% 50% !important;-moz-border-radius:50% 50% 50% 50% !important;border-radius:50% 50% 50% 50% !important}.abh_tab_content .abh_text{margin-left:96px !important;font-size:100% !important;line-height:1.5 !important}.abh_tab_content .abh_text h3,.abh_tab_content .abh_text h4{font-size:20px !important;padding:0 !important;margin:0 !important;clear:none !important;font-weight:bold !important;text-align:left !important;line-height:20px !important}.abh_tab_content .abh_text .fn{text-transform:capitalize !important;clear:none !important;font-size:18px !important;line-height:24px !important;margin:0 !important;padding:0 !important;border:none !important}.abh_tab_content .abh_text a{font-size:100% !important;text-decoration:none !important}.abh_tab_content .abh_text .abh_job{font-size:13px !important;line-height:20px !important;font-size:100% !important}.abh_tab_content .abh_text .abh_job span{vertical-align:top !important;font-size:13px !important;margin-bottom:10px !important;background-image:none !important;padding:0 !important;margin:0 !important}.abh_tab_content .abh_text .abh_description{position:static !important;padding-top:6px !important;font-size:14px !important;width:100% !important}.abh_tab_content .abh_text .abh_allposts{font-size:11px !important;vertical-align:middle !important}.abh_tab_content .abh_text ul{list-style:none !important;padding:0 !important;margin:5px 0 0 15px !important}.abh_tab_content .abh_text ul li,.abh_tab_content .abh_text ul li span{font-size:13px !important;line-height:20px !important;margin:0 !important}.abh_tab_content .abh_social{display:block;float:right !important;line-height:1px !important;padding:0 !important;margin:3px 0 0 0 !important;text-align:right !important}.abh_tab_content .abh_social div{width:140px !important;margin:0 0 0 auto !important}.abh_tab_content .abh_social a{display:inline-block;background:transparent url('../img/sprite.png') no-repeat !important;width:24px !important;height:24px !important;margin:1px !important;padding:0 !important;opacity:.5 !important;transition:opacity .2s !important;text-decoration:none !important;-moz-transition:opacity .2s !important;-webkit-transition:opacity .2s !important;-o-transition:opacity .2s !important;border-radius:5px !important;-webkit-border-radius:5px !important;-moz-border-radius:5px !important}.abh_tab_content .abh_social a:hover{opacity:1 !important}.abh_tab_content .abh_social a.abh_facebook{background-position:0px 0px !important}.abh_tab_content .abh_social a.abh_flickr{background-position:-24px 0px !important}.abh_tab_content .abh_social a.abh_google{background-position:-48px 0px !important}.abh_tab_content .abh_social a.abh_instagram{background-position:-72px 0px !important}.abh_tab_content .abh_social a.abh_linkedin{background-position:-96px 0px !important}.abh_tab_content .abh_social a.abh_pinterest{background-position:-120px 0px !important}.abh_tab_content .abh_social a.abh_tumblr{background-position:-144px 0px !important}.abh_tab_content .abh_social a.abh_twitter{background-position:-168px 0px !important}.abh_tab_content .abh_social a.abh_vimeo{background-position:-192px 0px !important}.abh_tab_content .abh_social a.abh_youtube{background-position:-216px 0px !important}.abh_tab_content .abh_social a.abh_klout{background-position:-240px 0px !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important}.abh_tab_content .abh_social a.abh_klout_score{text-align:center !important;color:#fff !important;font-size:11px !important;background-position:-264px 0px !important;background-repeat:no-repeat !important;height:0px !important;padding:10px 0 15px 0 !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important;vertical-align:top !important;text-shadow:1px 1px #888 !important}.abh_box .vcard{background:none !important;font-size:100% !important;border:none !important}.abh_box .abh_pwb a{position:absolute !important;text-decoration:none !important;font-size:9px !important;color:#999 !important;right:0 !important;bottom:5px !important}
themes/business/img/sprite.png ADDED
Binary file
themes/business/js/frontend.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ var abh_loadbox_loaded=false;(function($){$._getCookie=function(nombre){var dcookie=document.cookie;var cname=nombre+"=";var longitud=dcookie.length;var inicio=0;while(inicio<longitud)
3
+ {var vbegin=inicio+cname.length;if(dcookie.substring(inicio,vbegin)===cname)
4
+ {var vend=dcookie.indexOf(";",vbegin);if(vend===-1)
5
+ vend=longitud;return unescape(dcookie.substring(vbegin,vend));}
6
+ inicio=dcookie.indexOf(" ",inicio)+1;if(inicio===0)
7
+ break;}
8
+ return null;};$._setCookie=function(name,value){document.cookie=name+"="+value+"; expires="+(60*24)+"; path=/";};})(jQuery);function abh_loadbox(){abh_loadbox_loaded=true;jQuery(".abh_tabs li").click(function(event){event.preventDefault();jQuery(this).parents('.abh_box').find(".abh_tabs li").removeClass('abh_active');jQuery(this).addClass("abh_active");jQuery(this).parents('.abh_box').find(".abh_tab").hide();var selected_tab=jQuery(this).find("a").attr("href");jQuery(this).parents('.abh_box').find(selected_tab.replace('#','.')+'_tab').fadeIn();jQuery(this).parents('.abh_box').find(selected_tab.replace('#','.')+'_tab').parents('.abh_box').find(selected_tab.replace('#','.')).addClass("abh_active");jQuery._setCookie('abh_tab',selected_tab);return false;});if(jQuery._getCookie('abh_tab')!==null){jQuery(".abh_tab").hide();jQuery(".abh_tabs li").removeClass('abh_active');var selected_tab=jQuery._getCookie('abh_tab');jQuery(selected_tab.replace('#','.')+'_tab').fadeIn();jQuery(selected_tab.replace('#','.')).addClass("abh_active");}}
9
+ jQuery(document).ready(function(){if(abh_loadbox_loaded===false)
10
+ abh_loadbox();});var abh_timeout_loadbox=setTimeout(function(){if(abh_loadbox_loaded===false)
11
+ abh_loadbox();else
12
+ clearTimeout(abh_timeout_loadbox);},1000);
themes/drop-down/css/frontend.css ADDED
@@ -0,0 +1 @@
 
1
+ .abh_box_down{margin:0px 0 15px 0 !important}.abh_box_up{margin:0 0 15px 0 !important}.abh_box{clear:both !important;position:relative !important;width:100% !important}.abh_tabs{display:none;position:absolute !important;top:57px !important;left:-3px !important;width:55px !important;list-style:none !important;padding:0px 0px 5px 0px !important;margin:0px !important;font:13px arial !important}.abh_tabs li{display:block;list-style:none !important;margin:0 !important;padding:0 !important;width:100% !important;text-align:center !important;line-height:11px !important;height:15px !important}.abh_tabs li:before{content:"" !important;padding:0 !important;margin:0 !important}.abh_tabs li a{font-size:10px !important;border:0px solid #ccc !important;text-decoration:none !important;border-bottom:none !important;padding:0px !important}.abh_tabs li.abh_active a{padding:0px !important}.abh_tabs li a.icon_accept{background-image:url(accept.png) !important;background-position:5px !important;background-repeat:no-repeat !important;padding-left:24px !important}.abh_tabs li a.icon_accept:hover{padding-left:24px !important}.abh_tabs_content_container{border:2px solid #ccc !important;border-top:none !important;padding:10px !important;width:400px !important}.abh_tab_content{padding:31px 0 10px 0 !important;margin-left:65px !important;min-height:10px !important;overflow:hidden !important;border-bottom:0px solid #ddd !important}.abh_tab_content .abh_tab{display:none;border:none !important}.abh_tab_content .abh_image{position:absolute !important;top:0 !important;left:0 !important;display:block;float:left !important;width:80px !important}.abh_tab_content .abh_image img{width:50px !important;height:50px !important;box-shadow:0 1px 4px rgba(0, 0, 0, 0.2) !important;overflow:hidden !important;-webkit-border-radius:50% 50% 50% 50% !important;-moz-border-radius:50% 50% 50% 50% !important;border-radius:50% 50% 50% 50% !important;cursor:pointer !important;padding:0 !important;margin:0 !important}.abh_tab_content .abh_text{margin-left:5px !important;line-height:1.5 !important}.abh_tab_content .abh_text h3,.abh_tab_content .abh_text h4{clear:none !important;font-weight:bold !important;position:absolute !important;top:11px !important;left:70px !important;text-transform:capitalize !important;text-align:left !important;clear:none !important;font-size:18px !important;line-height:1 !important;text-decoration:none !important;margin:0 !important;padding:0 0 7px 0 !important;border-bottom:1px solid #ddd !important;cursor:pointer !important}.abh_tab_content .abh_text h3 a:hover,.abh_tab_content .abh_text h4 a:hover{text-decoration:none !important}.abh_tab_content .abh_text h3 .abh_arrow{float:right !important;background:transparent url('../img/sprite.png') no-repeat !important;background-position:0% -29px !important;display:inline-block !important;font-size:14px !important;padding-right:0px !important;margin:0 !important;width:35px !important;height:17px !important}.abh_tab_content .abh_text h3 .abh_active{background-position:0% -49px !important}.abh_tab_content .abh_text a{line-height:20px;font-size:100% !important;text-decoration:none !important}.abh_tab_content .abh_text .abh_job{display:none;font-size:13px !important;font-weight:100 !important;line-height:35px !important}.abh_tab_content .abh_text .abh_job span{vertical-align:top !important;font-size:13px !important;margin-bottom:10px;background-image:none;padding:0;margin:0}.abh_tab_content .abh_description{display:none;position:static !important;width:100% !important;font-size:14px !important;margin:0 !important;width:100% !important}.abh_tab_content .abh_text .abh_allposts{display:none;font-size:11px !important;vertical-align:middle !important}.abh_tab_content .abh_text ul{list-style:none !important;padding:0 !important;margin:5px 0 0 10px !important}.abh_tab_content .abh_text ul li,.abh_tab_content .abh_text ul li span{font-size:13px !important;line-height:20px !important;margin:0 !important}.abh_tab_content .abh_social{display:none;float:right !important;width:140px !important;padding:0 !important;margin:0 !important;line-height:1px !important;text-align:right !important}.abh_tab_content .abh_social a{display:inline-block !important;background:transparent url('../img/sprite.png') no-repeat !important;width:24px !important;height:24px !important;margin:1px !important;padding:0 !important;opacity:.5 !important;transition:opacity .2s !important;-moz-transition:opacity .2s !important;-webkit-transition:opacity .2s !important;-o-transition:opacity .2s !important;border-radius:5px !important;-webkit-border-radius:5px !important;-moz-border-radius:5px !important}.abh_tab_content .abh_social a:hover{opacity:1 !important}.abh_tab_content .abh_social a.abh_facebook{background-position:0px 0px !important}.abh_tab_content .abh_social a.abh_flickr{background-position:-24px 0px !important}.abh_tab_content .abh_social a.abh_google{background-position:-48px 0px !important}.abh_tab_content .abh_social a.abh_instagram{background-position:-72px 0px !important}.abh_tab_content .abh_social a.abh_linkedin{background-position:-96px 0px !important}.abh_tab_content .abh_social a.abh_pinterest{background-position:-120px 0px !important}.abh_tab_content .abh_social a.abh_tumblr{background-position:-144px 0px !important}.abh_tab_content .abh_social a.abh_twitter{background-position:-168px 0px !important}.abh_tab_content .abh_social a.abh_vimeo{background-position:-192px 0px !important}.abh_tab_content .abh_social a.abh_youtube{background-position:-216px 0px !important}.abh_tab_content .abh_social a.abh_klout{background-position:-240px 0px !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important}.abh_tab_content .abh_social a.abh_klout_score{text-align:center !important;color:#fff !important;font-size:11px !important;background-position:-264px 0px !important;background-repeat:no-repeat !important;height:0px !important;padding:10px 0 15px 0 !important;text-decoration:none !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important;vertical-align:top !important;text-shadow:1px 1px #888 !important}.abh_box .vcard{background:none !important;font-size:100% !important;border:none !important}.abh_box .abh_pwb{display:none}.abh_box .abh_pwb a{position:absolute !important;text-decoration:none !important;font-size:9px !important;color:#999 !important;right:0 !important;bottom:-20px !important}
themes/drop-down/img/sprite.png ADDED
Binary file
themes/drop-down/js/frontend.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ var abh_loadbox_loaded=false;(function($){$._getCookie=function(nombre){var dcookie=document.cookie;var cname=nombre+"=";var longitud=dcookie.length;var inicio=0;while(inicio<longitud)
3
+ {var vbegin=inicio+cname.length;if(dcookie.substring(inicio,vbegin)===cname)
4
+ {var vend=dcookie.indexOf(";",vbegin);if(vend===-1)
5
+ vend=longitud;return unescape(dcookie.substring(vbegin,vend));}
6
+ inicio=dcookie.indexOf(" ",inicio)+1;if(inicio===0)
7
+ break;}
8
+ return null;};$._setCookie=function(name,value){document.cookie=name+"="+value+"; expires="+(60*24)+"; path=/";};$.abh_showContent=function(obj){obj.find(".abh_tabs").show();obj.find(".abh_job").show();obj.find(".abh_allposts").show();obj.find(".abh_social").show();obj.find(".abh_pwb").show();obj.find(".abh_tab_content").css('border-bottom-width','1px');obj.find(".abh_tab_content h3").css('border-bottom-width','0px');obj.find(".abh_tab_content h4").css('border-bottom-width','0px');obj.find(".abh_description").slideDown('fast');obj.find(".abh_arrow").addClass('abh_active');};$.abh_hideContent=function(obj){obj.find(".abh_description").slideUp('fast',function(){obj.find(".abh_tabs").hide();obj.find(".abh_job").hide();obj.find(".abh_allposts").hide();obj.find(".abh_social").hide();obj.find(".abh_pwb").hide();obj.find(".abh_tab_content").css('border-bottom-width','0px');obj.find(".abh_tab_content h3").css('border-bottom-width','1px');obj.find(".abh_tab_content h4").css('border-bottom-width','1px');obj.find(".abh_arrow").removeClass('abh_active');});};})(jQuery);function abh_loadbox(){abh_loadbox_loaded=true;jQuery(".abh_tab_content .abh_image img, .abh_tab_content h4, .abh_tab_content h3").bind('click',function(event){event.preventDefault();if(jQuery(this).parents('.abh_box').find(".abh_tabs").is(':visible')){jQuery.abh_hideContent(jQuery(this).parents('.abh_box'));}else{jQuery.abh_showContent(jQuery(this).parents('.abh_box'));}});jQuery(".abh_tabs li").click(function(event){event.preventDefault();jQuery(".abh_tabs li").removeClass('abh_active');jQuery(this).addClass("abh_active");jQuery(this).parents('.abh_box').find(".abh_tab").hide();var selected_tab=jQuery(this).find("a").attr("href");jQuery(this).parents('.abh_box').find(selected_tab.replace('#','.')+'_tab').fadeIn();jQuery(this).parents('.abh_box').find(selected_tab.replace('#','.')+'_tab').parents('.abh_box').find(selected_tab.replace('#','.')).addClass("abh_active");jQuery._setCookie('abh_tab',selected_tab);return false;});jQuery(".abh_tab_content").find("h3").append('<span class="abh_arrow"></span>');}
9
+ jQuery(document).ready(function(){if(abh_loadbox_loaded===false)
10
+ abh_loadbox();});var abh_timeout_loadbox=setTimeout(function(){if(abh_loadbox_loaded===false)
11
+ abh_loadbox();else
12
+ clearTimeout(abh_timeout_loadbox);},1000);
themes/fancy/css/frontend.css ADDED
@@ -0,0 +1 @@
 
1
+ .abh_box{clear:both !important;width:100% !important;padding:25px 0 !important;position:relative !important}.abh_tabs{list-style:none !important;width:100% !important;padding:5px 0px 0px 0px !important;margin:0px 0px 0px 0px !important;font:13px arial !important;border-bottom:1px solid #ccc !important}.abh_tabs li{list-style:none !important;display:inline !important;margin:0 !important;padding:0 !important}.abh_tabs li:after{content:"" !important;padding:0 !important;margin:0 !important}.abh_tabs li:before{content:"" !important;padding:0 !important;margin:0 !important}.abh_tabs li i{display:none}.abh_tabs li a{color:#333 !important;border:1px solid #ccc !important;padding:4px 10px 3px !important;text-decoration:none !important;background-color:#eeeeee !important;border-bottom:none !important;outline:none !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important;line-height:23px !important}.abh_tabs li a:hover{background-color:#dddddd !important;padding:4px 10px !important}.abh_tabs li.abh_active a{color:#333 !important;border-bottom:1px solid #fff !important;background-color:#fff !important;padding:4px 10px 5px 10px !important;border-bottom:none !important}.abh_tabs li.abh_active a:hover{background-color:#eeeeee !important;padding:4px 10px 5px 10px !important;border-bottom:none !important}.abh_tabs li a.icon_accept{background-image:url(accept.png) !important;background-position:5px !important;background-repeat:no-repeat !important;padding-left:24px !important}.abh_tabs li a.icon_accept:hover{padding-left:24px !important}.abh_tabs_content_container{border:2px solid #ccc !important;border-top:none !important;padding:10px !important;width:400px !important}.abh_tab_content{padding:12px !important;background:#fff !important;min-height:80px !important;overflow:hidden !important;border-left:1px solid #ccc !important;border-right:1px solid #ccc !important;border-bottom:1px solid #ccc !important;border-radius:0 0 5px 5px !important;-webkit-border-radius:0 0 5px 5px !important;-moz-border-radius:0 0 5px 5px !important}.abh_tab_content .abh_tab{display:none}.abh_tab_content .abh_image{display:block;float:left !important;width:80px !important}.abh_tab_content .abh_image img{max-width:80px !important;border-radius:3px !important;box-shadow:0 1px 4px rgba(0, 0, 0, 0.2) !important}.abh_tab_content .abh_text{margin-left:96px !important;line-height:1.5 !important}.abh_tab_content .abh_text h3,.abh_tab_content .abh_text h4{clear:none !important;font-size:20px !important;font-weight:bold !important;padding:0 !important;margin:0 !important;clear:none !important;font-weight:bold !important;text-align:left !important;line-height:20px !important}.abh_tab_content .abh_text .fn{text-transform:capitalize !important;clear:none !important;font-size:18px !important;color:#333 !important;line-height:1 !important;margin:0 !important;padding:0 !important;border:none !important}.abh_tab_content .abh_text .fn a{color:#333 !important}.abh_tab_content .abh_text a{text-decoration:none !important}.abh_tab_content .abh_text .abh_job{font-size:13px !important;line-height:20px !important;font-size:100% !important}.abh_tab_content .abh_text .abh_job span{vertical-align:top !important;font-size:13px !important;margin-bottom:10px !important;background-image:none !important;padding:0 !important;margin:0 !important}.abh_tab_content .abh_text .abh_description{position:static !important;padding-top:6px !important;font-size:14px !important;width:100% !important}.abh_tab_content .abh_text .abh_allposts{font-size:11px !important;vertical-align:middle !important}.abh_tab_content .abh_text ul{list-style:none !important;padding:0 !important;margin:5px 0 0 15px !important}.abh_tab_content .abh_text ul li,.abh_tab_content .abh_text ul li span{font-size:13px !important;line-height:20px !important;margin:0 !important}.abh_tab_content .abh_social{width:80px !important;clear:left !important;float:left !important;line-height:1px !important;padding:0 !important;margin:3px 0 0 0 !important;text-align:center !important}.abh_tab_content .abh_social div{width:auto !important}.abh_tab_content .abh_social a{display:inline-block !important;background:transparent url('../img/sprite.png') no-repeat !important;width:24px !important;height:24px !important;margin:1px !important;padding:0 !important;opacity:.5 !important;transition:opacity .2s !important;-moz-transition:opacity .2s !important;-webkit-transition:opacity .2s !important;-o-transition:opacity .2s !important;border-radius:5px !important;-webkit-border-radius:5px !important;-moz-border-radius:5px !important}.abh_tab_content .abh_social a:hover{opacity:1 !important}.abh_tab_content .abh_social a.abh_facebook{background-position:0px 0px !important}.abh_tab_content .abh_social a.abh_flickr{background-position:-24px 0px !important}.abh_tab_content .abh_social a.abh_google{background-position:-48px 0px !important}.abh_tab_content .abh_social a.abh_instagram{background-position:-72px 0px !important}.abh_tab_content .abh_social a.abh_linkedin{background-position:-96px 0px !important}.abh_tab_content .abh_social a.abh_pinterest{background-position:-120px 0px !important}.abh_tab_content .abh_social a.abh_tumblr{background-position:-144px 0px !important}.abh_tab_content .abh_social a.abh_twitter{background-position:-168px 0px !important}.abh_tab_content .abh_social a.abh_vimeo{background-position:-192px 0px !important}.abh_tab_content .abh_social a.abh_youtube{background-position:-216px 0px !important}.abh_tab_content .abh_social a.abh_klout{background-position:-240px 0px !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important}.abh_tab_content .abh_social a.abh_klout_score{text-align:center !important;color:#fff !important;font-size:11px !important;background-position:-264px 0px !important;background-repeat:no-repeat !important;height:0px !important;padding:10px 0 15px 0 !important;text-decoration:none !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important;vertical-align:top !important;text-shadow:1px 1px #888 !important}.abh_box .vcard{background:none !important;font-size:100% !important;border:none !important}.abh_box .abh_pwb a{position:absolute !important;text-decoration:none !important;font-size:9px !important;color:#999 !important;right:0 !important;bottom:5px !important}
themes/fancy/img/sprite.png ADDED
Binary file
themes/fancy/js/frontend.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ var abh_loadbox_loaded=false;(function($){$._getCookie=function(nombre){var dcookie=document.cookie;var cname=nombre+"=";var longitud=dcookie.length;var inicio=0;while(inicio<longitud)
3
+ {var vbegin=inicio+cname.length;if(dcookie.substring(inicio,vbegin)===cname)
4
+ {var vend=dcookie.indexOf(";",vbegin);if(vend===-1)
5
+ vend=longitud;return unescape(dcookie.substring(vbegin,vend));}
6
+ inicio=dcookie.indexOf(" ",inicio)+1;if(inicio===0)
7
+ break;}
8
+ return null;};$._setCookie=function(name,value){document.cookie=name+"="+value+"; expires="+(60*24)+"; path=/";};})(jQuery);function abh_loadbox(){abh_loadbox_loaded=true;jQuery(".abh_tabs li").click(function(event){event.preventDefault();jQuery(this).parents('.abh_box').find(".abh_tabs li").removeClass('abh_active');jQuery(this).addClass("abh_active");jQuery(this).parents('.abh_box').find(".abh_tab").hide();var selected_tab=jQuery(this).find("a").attr("href");jQuery(this).parents('.abh_box').find(selected_tab.replace('#','.')+'_tab').fadeIn();jQuery(this).parents('.abh_box').find(selected_tab.replace('#','.')+'_tab').parents('.abh_box').find(selected_tab.replace('#','.')).addClass("abh_active");jQuery._setCookie('abh_tab',selected_tab);return false;});if(jQuery._getCookie('abh_tab')!==null){jQuery(".abh_tab").hide();jQuery(".abh_tabs li").removeClass('abh_active');var selected_tab=jQuery._getCookie('abh_tab');jQuery(selected_tab.replace('#','.')+'_tab').fadeIn();jQuery(selected_tab.replace('#','.')).addClass("abh_active");}}
9
+ jQuery(document).ready(function(){if(abh_loadbox_loaded===false)
10
+ abh_loadbox();});var abh_timeout_loadbox=setTimeout(function(){if(abh_loadbox_loaded===false)
11
+ abh_loadbox();else
12
+ clearTimeout(abh_timeout_loadbox);},1000);
themes/minimal/css/frontend.css ADDED
@@ -0,0 +1 @@
 
1
+ .abh_box{clear:both !important;width:100% !important;padding:25px 0 !important;position:relative !important}.abh_tabs{display:none;list-style:none !important;width:100% !important;padding:5px 0px 5px 0px !important;margin:0px 0px 0px 0px !important;font:13px arial !important}.abh_tabs li{display:none;list-style:none !important;margin:0 !important;padding:0 !important}.abh_tabs li:before{content:"" !important;padding:0 !important;margin:0 !important}.abh_tabs li i{display:none}.abh_tabs li a{color:#333 !important;background-color:transparent !important;border:0px solid #ccc !important;padding:4px 10px 5px !important;text-decoration:none !important;border-bottom:none !important;outline:none !important}.abh_tabs li a:hover{background-color:#dddddd !important;padding:4px 10px 5px !important}.abh_tabs li.abh_active a{color:#333 !important;background-color:#eeeeee !important;border-bottom:1px solid #fff !important;padding:4px 10px 5px 10px !important;border-bottom:none !important}.abh_tabs li.abh_active a:hover{background-color:#eeeeee !important;padding:4px 10px 5px 10px !important;border-bottom:none !important}.abh_tabs li a.icon_accept{background-image:url(accept.png) !important;background-position:5px !important;background-repeat:no-repeat !important;padding-left:24px !important}.abh_tabs li a.icon_accept:hover{padding-left:24px !important}.abh_tabs_content_container{border:2px solid #ccc !important;border-top:none !important;padding:10px !important;width:400px !important}.abh_tab_content{padding:20px 12px !important;min-height:80px !important;overflow:hidden !important;border-top:1px solid #ccc !important;border-bottom:1px solid #ccc !important}.abh_tab_content .abh_tab{display:none}.abh_tab_content .abh_image{display:block;float:left !important;width:90px !important;margin:0px !important;padding:0 !important}.abh_tab_content .abh_image img{border-radius:3px !important;-webkit-border-radius:3px !important;-moz-border-radius:3px !important;box-shadow:none !important;overflow:hidden !important;border:1px solid #ddd !important;padding:5px !important;max-width:80px !important}.abh_tab_content .abh_text{margin-left:110px !important;line-height:1.5 !important}.abh_tab_content .abh_text h3,.abh_tab_content .abh_text h4{font-size:20px !important;padding:0 !important;margin:0 !important;clear:none !important;font-weight:bold !important;text-align:left !important;line-height:20px !important}.abh_tab_content .abh_text .fn{text-transform:capitalize !important;clear:none !important;font-size:18px !important;line-height:1 !important;margin:0 !important;padding:0 !important;border:none !important}.abh_tab_content .abh_text a{font-size:100% !important;text-decoration:none !important}.abh_tab_content .abh_text .abh_job{font-size:13px !important;line-height:20px !important;font-size:100% !important}.abh_tab_content .abh_text .abh_job span{font-size:13px !important;margin-bottom:10px !important;background-image:none !important;padding:0 !important;margin:0 !important}.abh_tab_content .abh_text .abh_description{position:static !important;padding-top:6px !important;font-size:13px !important;width:100% !important}.abh_tab_content .abh_text .abh_allposts{font-size:11px !important;vertical-align:middle !important}.abh_tab_content .abh_text ul{list-style:none !important;padding:0 !important;margin:5px 0 0 15px !important}.abh_tab_content .abh_text ul li,.abh_tab_content .abh_text ul li span{font-size:13px !important;line-height:20px !important;margin:0 !important}.abh_tab_content .abh_social{display:block;float:right !important;line-height:1px !important;padding:0 !important;margin:3px 0 0 0 !important;text-align:right !important}.abh_tab_content .abh_social div{width:140px !important;margin:0 0 0 auto !important}.abh_tab_content .abh_social a{display:inline-block !important;background:transparent url('../img/sprite.png') no-repeat !important;width:24px !important;height:24px !important;margin:1px !important;padding:0 !important;opacity:.5 !important;transition:opacity .2s !important;text-decoration:none !important;-moz-transition:opacity .2s !important;-webkit-transition:opacity .2s !important;-o-transition:opacity .2s !important;border-radius:5px !important;-webkit-border-radius:5px !important;-moz-border-radius:5px !important}.abh_tab_content .abh_social a:hover{opacity:1 !important}.abh_tab_content .abh_social a.abh_facebook{background-position:0px 0px !important}.abh_tab_content .abh_social a.abh_flickr{background-position:-24px 0px !important}.abh_tab_content .abh_social a.abh_google{background-position:-48px 0px !important}.abh_tab_content .abh_social a.abh_instagram{background-position:-72px 0px !important}.abh_tab_content .abh_social a.abh_linkedin{background-position:-96px 0px !important}.abh_tab_content .abh_social a.abh_pinterest{background-position:-120px 0px !important}.abh_tab_content .abh_social a.abh_tumblr{background-position:-144px 0px !important}.abh_tab_content .abh_social a.abh_twitter{background-position:-168px 0px !important}.abh_tab_content .abh_social a.abh_vimeo{background-position:-192px 0px !important}.abh_tab_content .abh_social a.abh_youtube{background-position:-216px 0px !important}.abh_tab_content .abh_social a.abh_klout{background-position:-240px 0px !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important}.abh_tab_content .abh_social a.abh_klout_score{text-align:center !important;color:#fff !important;font-size:11px !important;background-position:-264px 0px !important;background-repeat:no-repeat !important;height:0px !important;padding:10px 0 15px 0 !important;border-radius:5px 5px 0 0 !important;-webkit-border-radius:5px 5px 0 0 !important;-moz-border-radius:5px 5px 0 0 !important;vertical-align:top !important;text-shadow:1px 1px #888 !important}.abh_box .vcard{background:none !important;font-size:100% !important;border:none !important}.abh_box .abh_pwb a{position:absolute !important;text-decoration:none !important;font-size:9px !important;color:#999 !important;right:0 !important;bottom:5px !important}
themes/minimal/img/sprite.png ADDED
Binary file
themes/topstar-round/css/frontend.css ADDED
@@ -0,0 +1 @@
 
1
+ .abh_box_down{margin:0}.abh_box_up{margin:0}.abh_box{position:absolute;width:0;height:0}.abh_tabs{display:none;position:absolute;top:57px;left:-3px;width:55px;display:none;list-style:none;padding:0px 0px 5px 0px;margin:0px;font:13px arial}.abh_tabs li{display:block;width:100%;text-align:center;line-height:11px;height:15px}.abh_tabs li a{font-size:10px;border:0px solid #ccc;text-decoration:none;border-bottom:none;padding:0px}.abh_tabs li.abh_active a{padding:0px}.abh_tabs li a.icon_accept{background-image:url(accept.png);background-position:5px;background-repeat:no-repeat;padding-left:24px}.abh_tabs li a.icon_accept:hover{padding-left:24px}.abh_tabs_content_container{border:2px solid #ccc;border-top:none;padding:10px;width:400px}.abh_tab_content{display:block;position:absolute;width:80px;min-height:245px;top:-10px;left:-125px;text-align:right;padding:0;margin:0}.abh_tab_content .abh_tab{display:none}.abh_tab_content .abh_about{display:block}.abh_tab_content .abh_image{position:absolute;top:0;left:0;display:block;float:left}.abh_tab_content .abh_image img{max-width:100%;box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);overflow:hidden;-webkit-border-radius:50% 50% 50% 50%;-moz-border-radius:50% 50% 50% 50%;border-radius:50% 50% 50% 50%;cursor:pointer}.abh_tab_content .abh_text{line-height:1.5}.abh_tab_content .abh_text h3,.abh_tab_content .abh_text h4{clear:both;font-weight:normal;text-transform:capitalize;text-align:center;font-size:12px;line-height:14px !important;text-decoration:none;margin:83px 0 0 0 !important;padding:0 0 4px 0;border-bottom:1px solid #ddd;cursor:pointer}.abh_tab_content .abh_text h3 a:hover,.abh_tab_content .abh_text h4 a:hover{text-decoration:none}.abh_tab_content .abh_text h3 .abh_arrow{float:right;background:transparent url('../img/sprite.png') no-repeat;background-position:0% -29px;display:inline-block;font-size:14px;padding-right:13px;margin:0;width:8px;height:17px}.abh_tab_content .abh_text h3 .abh_active{background-position:0% -49px}.abh_tab_content .abh_text .fn a{text-decoration:none}.abh_tab_content .abh_text .abh_job{display:none}.abh_tab_content .abh_text .abh_job span{font-size:13px;margin-bottom:15px}.abh_tab_content .abh_description{display:none;width:100%;margin-top:5px}.abh_tab_content .abh_text .abh_allposts{display:none;font-size:11px;vertical-align:middle}.abh_tab_content .abh_text ul{list-style:none;padding:0;margin:5px 0 0 10px}.abh_tab_content .abh_social{display:none;position:absolute;width:80px;top:130px;line-height:1px;padding:0;margin:3px 0 0 0;text-align:center}.abh_tab_content .abh_social div{width:auto !important}.abh_tab_content .abh_social a{display:inline-block;background:transparent url('../img/sprite.png') no-repeat;width:24px;height:24px;margin:1px !important;padding:0 !important;opacity:.5;transition:opacity .2s;-moz-transition:opacity .2s;-webkit-transition:opacity .2s;-o-transition:opacity .2s;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px}.abh_tab_content .abh_social a:hover{opacity:1}.abh_tab_content .abh_social a.abh_facebook{background-position:0px 0px}.abh_tab_content .abh_social a.abh_flickr{background-position:-24px 0px}.abh_tab_content .abh_social a.abh_google{background-position:-48px 0px}.abh_tab_content .abh_social a.abh_instagram{background-position:-72px 0px}.abh_tab_content .abh_social a.abh_linkedin{background-position:-96px 0px}.abh_tab_content .abh_social a.abh_pinterest{background-position:-120px 0px}.abh_tab_content .abh_social a.abh_tumblr{background-position:-144px 0px}.abh_tab_content .abh_social a.abh_twitter{background-position:-168px 0px}.abh_tab_content .abh_social a.abh_vimeo{background-position:-192px 0px}.abh_tab_content .abh_social a.abh_youtube{background-position:-216px 0px}.abh_tab_content .abh_social a.abh_klout{background-position:-240px 0px;border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0}.abh_tab_content .abh_social a.abh_klout_score{text-align:center;color:#fff;font-size:11px;background-position:-264px 0px;background-repeat:no-repeat;height:0px;padding:10px 0 15px 0 !important;text-decoration:none;border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;vertical-align:top;text-shadow:1px 1px #888}.abh_box .vcard{background:none;font-size:100%;border:none}.abh_box .abh_pwb{display:none}
themes/topstar-round/img/sprite.png ADDED
Binary file
themes/topstar-round/js/frontend.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+
2
+ var abh_loadbox_loaded=false;function abh_loadbox(){abh_loadbox_loaded=true;jQuery(".abh_tab_content").mouseenter(function(){jQuery(this).find(".abh_social").stop().fadeIn('slow');}).mouseleave(function(){jQuery(this).find(".abh_social").stop().fadeOut('fast');});}
3
+ jQuery(document).ready(function(){if(abh_loadbox_loaded===false)
4
+ abh_loadbox();});var abh_timeout_loadbox=setTimeout(function(){if(abh_loadbox_loaded===false)
5
+ abh_loadbox();else
6
+ clearTimeout(abh_timeout_loadbox);},1000);
themes/topstar/css/frontend.css ADDED
@@ -0,0 +1 @@
 
1
+ .abh_box_down{margin:0}.abh_box_up{margin:0}.abh_box{position:absolute;width:0;height:0}.abh_tabs{display:none;position:absolute;top:57px;left:-3px;width:55px;display:none;list-style:none;padding:0px 0px 5px 0px;margin:0px;font:13px arial}.abh_tabs li{display:block;width:100%;text-align:center;line-height:11px;height:15px}.abh_tabs li a{font-size:10px;border:0px solid #ccc;text-decoration:none;border-bottom:none;padding:0px}.abh_tabs li.abh_active a{padding:0px}.abh_tabs li a.icon_accept{background-image:url(accept.png);background-position:5px;background-repeat:no-repeat;padding-left:24px}.abh_tabs li a.icon_accept:hover{padding-left:24px}.abh_tabs_content_container{border:2px solid #ccc;border-top:none;padding:10px;width:400px}.abh_tab_content{display:block;position:absolute;width:80px;min-height:245px;top:-10px;left:-125px;text-align:right;padding:0;margin:0}.abh_tab_content .abh_tab{display:none}.abh_tab_content .abh_about{display:block}.abh_tab_content .abh_image{position:absolute;top:0;left:0;display:block;float:left}.abh_tab_content .abh_image img{max-width:100%;box-shadow:0 1px 4px rgba(0, 0, 0, 0.2);overflow:hidden;cursor:pointer}.abh_tab_content .abh_text{line-height:1.5}.abh_tab_content .abh_text h3,.abh_tab_content .abh_text h4{clear:both;font-weight:normal;text-transform:capitalize;text-align:right;font-size:12px;line-height:14px !important;text-decoration:none;margin:83px 0 0 0 !important;padding:0 0 4px 0;border-bottom:1px solid #ddd;cursor:pointer}.abh_tab_content .abh_text h3 a,.abh_tab_content .abh_text h4 a,.abh_tab_content .abh_text h3 a:hover,.abh_tab_content .abh_text h4 a:hover{text-decoration:none}.abh_tab_content .abh_text h3 .abh_arrow{float:right;background:transparent url('../img/sprite.png') no-repeat;background-position:0% -29px;display:inline-block;font-size:14px;padding-right:13px;margin:0;width:8px;height:17px}.abh_tab_content .abh_text h3 .abh_active{background-position:0% -49px}.abh_tab_content .abh_text .fn a{text-decoration:none}.abh_tab_content .abh_text .abh_job{display:none}.abh_tab_content .abh_text .abh_job span{font-size:13px;margin-bottom:15px}.abh_tab_content .abh_description{display:none;width:100%;margin-top:5px}.abh_tab_content .abh_text .abh_allposts{display:none;font-size:11px;vertical-align:middle}.abh_tab_content .abh_text ul{list-style:none;padding:0;margin:5px 0 0 10px}.abh_tab_content .abh_social{display:none;position:absolute;width:80px;top:130px;line-height:1px;padding:0;margin:3px 0 0 0;text-align:center}.abh_tab_content .abh_social div{width:auto !important}.abh_tab_content .abh_social a{display:inline-block;background:transparent url('../img/sprite.png') no-repeat;width:24px;height:24px;margin:1px !important;padding:0 !important;opacity:.5;transition:opacity .2s;-moz-transition:opacity .2s;-webkit-transition:opacity .2s;-o-transition:opacity .2s;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px}.abh_tab_content .abh_social a:hover{opacity:1}.abh_tab_content .abh_social a.abh_facebook{background-position:0px 0px}.abh_tab_content .abh_social a.abh_flickr{background-position:-24px 0px}.abh_tab_content .abh_social a.abh_google{background-position:-48px 0px}.abh_tab_content .abh_social a.abh_instagram{background-position:-72px 0px}.abh_tab_content .abh_social a.abh_linkedin{background-position:-96px 0px}.abh_tab_content .abh_social a.abh_pinterest{background-position:-120px 0px}.abh_tab_content .abh_social a.abh_tumblr{background-position:-144px 0px}.abh_tab_content .abh_social a.abh_twitter{background-position:-168px 0px}.abh_tab_content .abh_social a.abh_vimeo{background-position:-192px 0px}.abh_tab_content .abh_social a.abh_youtube{background-position:-216px 0px}.abh_tab_content .abh_social a.abh_klout{background-position:-240px 0px;border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0}.abh_tab_content .abh_social a.abh_klout_score{text-align:center;color:#fff;font-size:11px;background-position:-264px 0px;background-repeat:no-repeat;height:0px;padding:10px 0 15px 0 !important;text-decoration:none;border-radius:5px 5px 0 0;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;vertical-align:top;text-shadow:1px 1px #888}.abh_box .vcard{background:none;font-size:100%;border:none}.abh_box .abh_pwb{display:none}
themes/topstar/img/sprite.png ADDED
Binary file
themes/topstar/js/frontend.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+
2
+ var abh_loadbox_loaded=false;function abh_loadbox(){abh_loadbox_loaded=true;jQuery(".abh_tab_content").mouseenter(function(){jQuery(this).find(".abh_social").stop().fadeIn('slow');}).mouseleave(function(){jQuery(this).find(".abh_social").stop().fadeOut('fast');});}
3
+ jQuery(document).ready(function(){if(abh_loadbox_loaded===false)
4
+ abh_loadbox();});var abh_timeout_loadbox=setTimeout(function(){if(abh_loadbox_loaded===false)
5
+ abh_loadbox();else
6
+ clearTimeout(abh_timeout_loadbox);},1000);
uninstall.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Called on plugin uninstall
5
+ */
6
+ if (!defined('ABSPATH') && !defined('WP_UNINSTALL_PLUGIN'))
7
+ exit();
8
+
9
+ /* Call config files */
10
+ require(dirname(__FILE__) . '/config/config.php');
11
+
12
+ /* Delete the record from database */
13
+ //delete_option(ABH_OPTION);
14
+