Problem with Adsense Module. Please Help
am 10.01.2012 - 15:10 Uhr in
Hello,
I am not German and can't speak German too. But i didn't get any answer for my issue on drupal.org forum so i decided to ask users here to help me.
I installed Adsense module (http://drupal.org/project/adsense), It works fine but only Revenue sharing part doesn't work fine. I enabled profile module too and defined a single-line textfield block for members to define their adsense code and i named this block, profile_google_adsense_client_id
I also made it private. But when i go to revenue sharing basic page in my admin panel, i get a red error page with below content. Please help me to solve this problem.
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database_drpl1.profile_fields' doesn't exist: SELECT fid, title FROM {profile_fields} ORDER BY fid; Array ( ) in revenue_sharing_basic_get_profile_fields() (line 147 of /home//public_html/...../sites/all/modules/adsense/old/revenue_sharing_basic/revenue_sharing_basic.admin.inc).
Add new comment ⋅ Categories: Module Development and Code Questions, Drupal 7.x
The developers of this module don't reply at all in drupal.org or even when i conact directly with them and it seems they left this project. I think the code should be changed a bit. I am sure only some small change is needed but as i don't know anything about php, i can't modify it. Can anyone please help me? I really need this module.
- Anmelden oder Registrieren um Kommentare zu schreiben
drupal.org issue:
am 10.01.2012 - 16:01 Uhr
drupal.org issue: http://drupal.org/node/1398602
Well, you opened the issue just 1 day ago. Please give the maintainers some time so have a look at your issue and do not try to overrun them with your requests. They will give you an answer, just be patient.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
reply
am 10.01.2012 - 16:07 Uhr
Thanks for your reply. I am sure they don't reply. Some other users asked some questions about this module months ago and they didn't get reply yet. Can you please have a look at my problem and help me to solve it?
It seems that the module
am 10.01.2012 - 16:12 Uhr
It seems that the module isn't completely ported to D7 right now, because it is still a DEV version and I haven't got the time to do this right now ... sorry
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Yes. And it seems that they
am 10.01.2012 - 16:28 Uhr
Yes. And it seems that they are not going to update it more. But i am sure a person who knows a bit about php can fix the issue.
When i run the code, i get this error on line 147. I write both errors and the source code of module that you can see the code of module on line 147to find whats wrong.
The error i get is:
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database_drpl2.profile_fields' doesn't exist: SELECT fid, title FROM {profile_fields} ORDER BY fid; Array ( ) in revenue_sharing_basic_get_profile_fields() (line 147 of /home/...../sites/all/modules/adsense/old/revenue_sharing_basic/revenue_sharing_basic.admin.inc).
The source code of revenue_sharing_basic.admin.inc which error occurs while running it, is:
Line 147 is at the end of file and starts with
$result = db_query("SELECT fid, title FROM {profile_fields} ORDER BY fid");
Please help me if you can.
<?php
/**
* @file
* Contains the administrative functions of the revenue_sharing_basic
* module.
*
* This file is included by the basic revenue sharing module, and includes
* the settings form.
*/
/**
* Menu callback for the revenue_sharing_basic module settings form.
*
* @ingroup forms
*/
function revenue_sharing_basic_settings() {
include_once(drupal_get_path('module', 'revenue_sharing_basic') .'/help/revenue_sharing_basic.help.inc');
$form['help'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#title' => t('Help and instructions'),
);
$form['help']['help'] = array(
'#type' => 'markup',
'#value' => revenue_sharing_basic_help_text(),
);
$form['required'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => t('Required parameters'),
);
$form['required']['revenue_sharing_basic_client_id_profile_field'] = array(
'#type' => 'select',
'#title' => t('Google AdSense client ID profile field'),
'#default_value' => variable_get('revenue_sharing_basic_client_id_profile_field', REVENUE_SHARING_BASIC_CLIENT_ID_PROFILE_FIELD_DEFAULT),
'#options' => revenue_sharing_basic_get_profile_fields(),
'#required' => TRUE,
'#description' => t('This is the profile field that holds the AdSense Client ID for the site owner as well as (optionally) for site users who participate in revenue sharing. You must enabled the profile module and create a new field for this.'),
);
$form['percentage'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => t('Revenue sharing percentage'),
);
$options = drupal_map_assoc(range(0, 100, 5));
$form['percentage']['revenue_sharing_basic_percentage_author'] = array(
'#type' => 'select',
'#title' => t('Percentage of node views going to author'),
'#default_value' => variable_get('revenue_sharing_basic_percentage_author', REVENUE_SHARING_BASIC_PERCENTAGE_AUTHOR_DEFAULT),
'#options' => $options,
);
$form['percentage']['role'] = array(
'#type' => 'fieldset',
'#title' => t('Percentage of node views going to author with the following roles'),
'#description' => t('When the author belongs to one or more roles, the percentage of node views using his AdSense Client ID will be the maximum between the author value and the following settings for each role.'),
'#theme' => 'revenue_sharing_basic_author_percentage_role',
);
$roles = user_roles(TRUE);
unset($roles[array_search('authenticated user', $roles)]);
foreach ($roles as $role => $role_desc) {
$form['percentage']['role']['revenue_sharing_basic_percentage_role_'. $role] = array(
'#type' => 'select',
'#title' => t($role_desc),
'#default_value' => variable_get('revenue_sharing_basic_percentage_role_'. $role, REVENUE_SHARING_BASIC_PERCENTAGE_ROLE_DEFAULT),
'#options' => $options,
);
}
if (module_exists('referral')) {
$form['percentage']['revenue_sharing_basic_percentage_refer'] = array(
'#type' => 'select',
'#title' => t('Percentage of node views going to user who referred the author'),
'#default_value' => variable_get('revenue_sharing_basic_percentage_refer', REVENUE_SHARING_BASIC_PERCENTAGE_REFER_DEFAULT),
'#options' => $options,
);
}
$form['content_types'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
'#collapsed' => FALSE,
'#title' => t('Content types'),
);
$types = node_get_types();
foreach ($types as $type => $name) {
$form['content_types']['revenue_sharing_basic_node_type_'. $type] = array(
'#type' => 'checkbox',
'#title' => $name->name,
'#default_value' => variable_get('revenue_sharing_basic_node_type_'. $type, REVENUE_SHARING_BASIC_NODE_TYPE_DEFAULT),
);
}
$form['#redirect'] = 'admin/settings/adsense/publisher';
return system_settings_form($form);
}
/**
* Theme the author percentage part of the settings page.
*
* @ingroup themeable
*/
function theme_revenue_sharing_basic_author_percentage_role($form) {
$output = '';
$elements = element_children($form);
if (!empty($elements)) {
$header = array(t('Role'), t('Percentage'));
foreach ($elements as $key) {
$row = array();
$row[] = $form[$key]['#title'];
unset($form[$key]['#title']);
$row[] = drupal_render($form[$key]);
$rows[] = $row;
}
$output .= theme('table', $header, $rows);
}
$output .= drupal_render($form);
return $output;
}
/**
* Auxiliary function to create the list for the revenue_sharing_basic_client_id_profile_field field
*
* @return
* array of fields with the field IDs as keys and the field titles as values
*
* @ingroup forms
*/
function revenue_sharing_basic_get_profile_fields() {
$profile_list = array(0 => 'None');
$result = db_query("SELECT fid, title FROM {profile_fields} ORDER BY fid");
while ($row = db_fetch_object($result)) {
$profile_list[$row->fid] = $row->title;
}
return $profile_list;
}
I think you would have to ask
am 10.01.2012 - 16:38 Uhr
I think you would have to ask a paid developer to port this module to D7 for you or to fix the current dev version and post it back to the community.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Do you know any cheap
am 10.01.2012 - 16:46 Uhr
Do you know any cheap develope who can do this?The problem is not big and it only needs some modifications.
Well, this is in the scope of
am 10.01.2012 - 16:51 Uhr
Well, this is in the scope of the developer. I think there are more things to fix apart from the db_query error, because the profile module doesn't exist in D7 any more. Fields can be added by the field module.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Profile module is exist and
am 10.01.2012 - 16:59 Uhr
Profile module is exist and when you enable adsense module, it will be enabled too automatically. I tried it on two website and it exists.
In D7? I don't think so.
am 10.01.2012 - 17:03 Uhr
In D7? I don't think so.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Yes. In D7. Be sure about
am 10.01.2012 - 17:25 Uhr
Yes. In D7. Be sure about it., You can try it too :)