-
Posts
263 -
Joined
-
Last visited
Posts posted by muskokee
-
-
Hi Jack,
I just updated from 2.5.6 to 2.6.2
All went smoothly and everything seems to work as intended. Only one issue.
The error messages at the top of header_tags_controller.php were appearing despite the permissions being set properly. Files were written as intended even though the error messages were there. I opened up the file to have a look and saw that the permissions of the two files are being determined "correct" if they match the permissions set on the images folder. Mine didn't! I just uploaded the site to a new server and the permissions for the image folder was auto-set to 755.
Is there another way to test for permission value?
Thanks for continuing to work on this contrib.
Best,
Sheri
-
Hi everyone,
I am once again working on an article manager addition. The last one was HERE. All the code and fixes are within that thread--it adds another date option to indicate when the article was written as opposed to the date it was added or the date it is available.
My next mod involves showing a random article on the index page, default section (but could be placed anywhere really). I wrote the mod myself, but could not get it to behave properly..so I re-wrote this CONTRIB to work with the article table rather than the product table.
Problem: this behaves exactly the same way my hand coded mod does
What happens:
The article is randomly chosen and displayed BUT the description or short description does not get displayed each and everytime the page is loaded. The name, and link work fine...just an empty description. VERY VERY FRUSTRATING.
I cannot see what the problem is.
Anyone else?
<?php //SET THE QUERYS $sql_query = tep_db_query("select distinct a.articles_id, ad.articles_name, ad.articles_description from " . TABLE_ARTICLES_DESCRIPTION . " ad left join " . TABLE_ARTICLES . " a on a.articles_id = ad.articles_id where a.articles_status = '1' and a.articles_protected = '1' order by rand() limit " . MAX_DISPLAY_RANDOM_ARTICLES); $info_box_contents = array(); $info_box_contents[] = array('text' => sprintf(TABLE_HEADING_ARTICLES)); new contentBoxHeading($info_box_contents); $info_box_contents = array(); $row = 0; $col = 0; $info_box_contents = array(); while ($new_articles = tep_db_fetch_array($sql_query)) { $new_articles['articles_name'] = tep_get_articles_name($new_articles['articles_id']); $info_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" width="33%" valign="top"', 'text' => '<a href="' . tep_href_link(FILENAME_ARTICLE_INFO, 'articles_id=' . $new_articles['articles_id']) . '">' . $new_articles['articles_name'] . '</a><br>'.$new_articles['articles_description'] ); $col ++; if ($col > 2) { $col = 0; $row ++; } } new contentBox($info_box_contents); ?>
Any help appreciated. :)
Sheri
PS - I have article manager 1.2 installed. I don't want to update the version as it is working just fine.
-
I'm off to look at the code in depth to find that tricky little greater than sign :-"
FOUND IT and the modification to allow a written date of ANY time is complete. B)
Here is the new code (found at about line 240)
if (isset($HTTP_GET_VARS['aID'])) $articles_id = tep_db_prepare_input($HTTP_GET_VARS['aID']); $articles_date_available = tep_db_prepare_input($HTTP_POST_VARS['articles_date_available']); $articles_date_written = tep_db_prepare_input($HTTP_POST_VARS['articles_date_written']); $articles_date_available = (date('Y-m-d') < $articles_date_available) ? $articles_date_available : 'null'; $articles_date_written = ($articles_date_written) ? $articles_date_written : 'null';
removed the condition that required the written date to be greater than todays date and now all works as planned.
For those of you following along as I talked to myself...No I am NOT crazy!LOL
-
ARRGH!!!!!!
Alrighty then..progress is happening.
(BTW, anyone is welcome to step in and comment at *any* time)
The only trial I did not make was that of date_written as a date in the future. Well, I did and PRESTO! The date was accepted and entered into the database.
This is most definately NOT what I want as the articles I am hoping to publish could have any date from today to years ago, to the future date I want to publish the article.
I'm off to look at the code in depth to find that tricky little greater than sign :-"
-
Update: I inserted a debugging script and it has confirmed that the spiffy cal is working as intended.
Another update:
On the default page this code displays the dates:
$contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath . '&aID=' . $aInfo->articles_id . '&action=new_article') . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath . '&aID=' . $aInfo->articles_id . '&action=delete_article') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a> <a href="' . tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath . '&aID=' . $aInfo->articles_id . '&action=move_article') . '">' . tep_image_button('button_move.gif', IMAGE_MOVE) . '</a> <a href="' . tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath . '&aID=' . $aInfo->articles_id . '&action=copy_to') . '">' . tep_image_button('button_copy_to.gif', IMAGE_COPY_TO) . '</a>'); $contents[] = array('text' => '<br>' . TEXT_DATE_ADDED . ' ' . tep_date_short($aInfo->articles_date_added)); if (tep_not_null($aInfo->articles_last_modified)) $contents[] = array('text' => TEXT_LAST_MODIFIED . ' ' . tep_date_short($aInfo->articles_last_modified)); if (date('Y-m-d') < $aInfo->articles_date_available) $contents[] = array('text' => TEXT_DATE_AVAILABLE . ' ' . tep_date_short($aInfo->articles_date_available)); if (isset($aInfo->articles_date_written)) $contents[] = array('text' => TEXT_DATE_WRITTEN . ' ' . tep_date_short($aInfo->articles_date_written)); $contents[] = array('text' => '<br>' . TEXT_ARTICLES_AVERAGE_RATING . ' ' . number_format($aInfo->average_rating, 2) . '%');
I previously had the date_written identical to the date_available. I have changed it here and it does not get printed. Removing the isset condition allows the text to be written..but again...no date.
ARRGH!!!!!!
-
Thanks a million...whoever you are :thumbsup:
Update: I inserted a debugging script and it has confirmed that the spiffy cal is working as intended. The variable 'articles_date_written' is being 'POST'ed to the preview screen.
But when I submit the form...be it update or insert, the date written is not transferred to the database.
:unsure:
Is there a debugging script that can show me what happened when the info was "inserted" into mysql?
One more thing. I amended the script within the form like so:
<?php if (isset($aInfo->articles_date_written)) { ?> <tr> <td align="center" class="smallText"><?php echo sprintf(TEXT_ARTICLE_DATE_WRITTEN, tep_date_long($aInfo->articles_date_written)); ?></td> </tr> <?php } ?>
The TEXT_ARTICLE_DATE_WRITTEN is visable on the preview screen but the tep_date_long is not. There is no date whatsoever.
-
I have article manager 1.2 installed. I have coded in another date option to the admin file: articles.php. The date is not being entered into the articles table in mysql when the date is chosen from admin. I have gone over the new file at least 2 dozen times. Could someone take a look at the new code and hopefully see where I have gone wrong? Pretty Pretty Please? o:)
The new code in question centers around the "articles_date_written" addition. I have added code to mimic "articles_date_available". There are other customizations within the file, but none of those are effecting the "new date feature".
Thanks a million...whoever you are :thumbsup:
<?php
/*
$Id: articles.php, v1.0 2003/12/04 12:00:00 ra Exp $
osCommerce, Open Source E-Commerce Solutions
Copyright (c) 2003 osCommerce
Released under the GNU General Public License
*/
require('includes/application_top.php');
$action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : '');
//BEGIN ACTION
if (tep_not_null($action)) {
// BEGIN SWITCH
switch ($action) {
case 'setflag': //article published
if ( ($HTTP_GET_VARS['flag'] == '0') || ($HTTP_GET_VARS['flag'] == '1') ) {
if (isset($HTTP_GET_VARS['aID'])) {
tep_set_article_status($HTTP_GET_VARS['aID'], $HTTP_GET_VARS['flag']);
}
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $HTTP_GET_VARS['tPath'] . '&aID=' . $HTTP_GET_VARS['aID']));
break;
case 'setflags': //article protected
if ( ($HTTP_GET_VARS['flags'] == '0') || ($HTTP_GET_VARS['flags'] == '1') ) {
if (isset($HTTP_GET_VARS['aID'])) {
tep_set_article_protected($HTTP_GET_VARS['aID'], $HTTP_GET_VARS['flags']);
}
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $HTTP_GET_VARS['tPath'] . '&aID=' . $HTTP_GET_VARS['aID']));
break;
case 'new_topic':
case 'edit_topic':
$HTTP_GET_VARS['action']=$HTTP_GET_VARS['action'] . '_ACD';
break;
case 'insert_topic':
case 'update_topic':
if ( ($HTTP_POST_VARS['edit_x']) || ($HTTP_POST_VARS['edit_y']) ) {
$HTTP_GET_VARS['action'] = 'edit_topic_ACD';
} else {
if (isset($HTTP_POST_VARS['topics_id'])) $topics_id = tep_db_prepare_input($HTTP_POST_VARS['topics_id']);
if ($topics_id == '') {
$topics_id = tep_db_prepare_input($HTTP_GET_VARS['tID']);
}
$sort_order = tep_db_prepare_input($HTTP_POST_VARS['sort_order']);
$sql_data_array = array('sort_order' => $sort_order);
if ($action == 'insert_topic') {
$insert_sql_data = array('parent_id' => $current_topic_id,
'date_added' => 'now()');
$sql_data_array = array_merge($sql_data_array, $insert_sql_data);
tep_db_perform(TABLE_TOPICS, $sql_data_array);
$topics_id = tep_db_insert_id();
} elseif ($action == 'update_topic') {
$update_sql_data = array('last_modified' => 'now()');
$sql_data_array = array_merge($sql_data_array, $update_sql_data);
tep_db_perform(TABLE_TOPICS, $sql_data_array, 'update', "topics_id = '" . (int)$topics_id . "'");
}
$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
$language_id = $languages[$i]['id'];
$sql_data_array = array('topics_name' => tep_db_prepare_input($HTTP_POST_VARS['topics_name'][$language_id]),
'topics_heading_title' => tep_db_prepare_input($HTTP_POST_VARS['topics_heading_title'][$language_id]),
'topics_description' => tep_db_prepare_input($HTTP_POST_VARS['topics_description'][$language_id]));
if ($action == 'insert_topic') {
$insert_sql_data = array('topics_id' => $topics_id,
'language_id' => $languages[$i]['id']);
$sql_data_array = array_merge($sql_data_array, $insert_sql_data);
tep_db_perform(TABLE_TOPICS_DESCRIPTION, $sql_data_array);
} elseif ($action == 'update_topic') {
tep_db_perform(TABLE_TOPICS_DESCRIPTION, $sql_data_array, 'update', "topics_id = '" . (int)$topics_id . "' and language_id = '" . (int)$languages[$i]['id'] . "'");
}
}
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath . '&tID=' . $topics_id));
break;
}
case 'delete_topic_confirm':
if (isset($HTTP_POST_VARS['topics_id'])) {
$topics_id = tep_db_prepare_input($HTTP_POST_VARS['topics_id']);
$topics = tep_get_topic_tree($topics_id, '', '0', '', true);
$articles = array();
$articles_delete = array();
for ($i=0, $n=sizeof($topics); $i<$n; $i++) {
$article_ids_query = tep_db_query("select articles_id from " . TABLE_ARTICLES_TO_TOPICS . " where topics_id = '" . (int)$topics[$i]['id'] . "'");
while ($article_ids = tep_db_fetch_array($article_ids_query)) {
$articles[$article_ids['articles_id']]['topics'][] = $topics[$i]['id'];
}
}
reset($articles);
while (list($key, $value) = each($articles)) {
$topic_ids = '';
for ($i=0, $n=sizeof($value['topics']); $i<$n; $i++) {
$topic_ids .= "'" . (int)$value['topics'][$i] . "', ";
}
$topic_ids = substr($topic_ids, 0, -2);
$check_query = tep_db_query("select count(*) as total from " . TABLE_ARTICLES_TO_TOPICS . " where articles_id = '" . (int)$key . "' and topics_id not in (" . $topic_ids . ")");
$check = tep_db_fetch_array($check_query);
if ($check['total'] < '1') {
$articles_delete[$key] = $key;
}
}
// removing topics can be a lengthy process
tep_set_time_limit(0);
for ($i=0, $n=sizeof($topics); $i<$n; $i++) {
tep_remove_topic($topics[$i]['id']);
}
reset($articles_delete);
while (list($key) = each($articles_delete)) {
tep_remove_article($key);
}
}
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath));
break;
case 'delete_article_confirm':
if (isset($HTTP_POST_VARS['articles_id']) && isset($HTTP_POST_VARS['article_topics']) && is_array($HTTP_POST_VARS['article_topics'])) {
$article_id = tep_db_prepare_input($HTTP_POST_VARS['articles_id']);
$article_topics = $HTTP_POST_VARS['article_topics'];
for ($i=0, $n=sizeof($article_topics); $i<$n; $i++) {
tep_db_query("delete from " . TABLE_ARTICLES_TO_TOPICS . " where articles_id = '" . (int)$article_id . "' and topics_id = '" . (int)$article_topics[$i] . "'");
}
$article_topics_query = tep_db_query("select count(*) as total from " . TABLE_ARTICLES_TO_TOPICS . " where articles_id = '" . (int)$article_id . "'");
$article_topics = tep_db_fetch_array($article_topics_query);
if ($article_topics['total'] == '0') {
tep_remove_article($article_id);
}
}
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath));
break;
case 'move_topic_confirm':
if (isset($HTTP_POST_VARS['topics_id']) && ($HTTP_POST_VARS['topics_id'] != $HTTP_POST_VARS['move_to_topic_id'])) {
$topics_id = tep_db_prepare_input($HTTP_POST_VARS['topics_id']);
$new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_topic_id']);
$path = explode('_', tep_get_generated_topic_path_ids($new_parent_id));
if (in_array($topics_id, $path)) {
$messageStack->add_session(ERROR_CANNOT_MOVE_TOPIC_TO_PARENT, 'error');
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath . '&tID=' . $topics_id));
} else {
tep_db_query("update " . TABLE_TOPICS . " set parent_id = '" . (int)$new_parent_id . "', last_modified = now() where topics_id = '" . (int)$topics_id . "'");
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $new_parent_id . '&tID=' . $topics_id));
}
}
break;
case 'move_article_confirm':
$articles_id = tep_db_prepare_input($HTTP_POST_VARS['articles_id']);
$new_parent_id = tep_db_prepare_input($HTTP_POST_VARS['move_to_topic_id']);
$duplicate_check_query = tep_db_query("select count(*) as total from " . TABLE_ARTICLES_TO_TOPICS . " where articles_id = '" . (int)$articles_id . "' and topics_id = '" . (int)$new_parent_id . "'");
$duplicate_check = tep_db_fetch_array($duplicate_check_query);
if ($duplicate_check['total'] < 1) tep_db_query("update " . TABLE_ARTICLES_TO_TOPICS . " set topics_id = '" . (int)$new_parent_id . "' where articles_id = '" . (int)$articles_id . "' and topics_id = '" . (int)$current_topic_id . "'");
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $new_parent_id . '&aID=' . $articles_id));
break;
case 'insert_article':
case 'update_article':
if (isset($HTTP_POST_VARS['edit_x']) || isset($HTTP_POST_VARS['edit_y'])) {
$action = 'new_article';
} else { //begin of new or modified article
if (isset($HTTP_GET_VARS['aID'])) $articles_id = tep_db_prepare_input($HTTP_GET_VARS['aID']);
$articles_date_available = tep_db_prepare_input($HTTP_POST_VARS['articles_date_available']);
$articles_date_written = tep_db_prepare_input($HTTP_POST_VARS['articles_date_written']);
$articles_date_available = (date('Y-m-d') < $articles_date_available) ? $articles_date_available : 'null';
$articles_date_written = (date('Y-m-d') < $articles_date_written) ? $articles_date_written : 'null';
$sql_data_array = array('articles_date_available' => $articles_date_available,
'articles_date_written' => $articles_date_written,
'articles_status' => tep_db_prepare_input($HTTP_POST_VARS['articles_status']),
'articles_protected' => tep_db_prepare_input($HTTP_POST_VARS['articles_protected']),
'authors_id' => tep_db_prepare_input($HTTP_POST_VARS['authors_id']));
if ($action == 'insert_article') {
// If expected article then articles_date _added becomes articles_date_available
if (isset($HTTP_POST_VARS['articles_date_available']) && tep_not_null($HTTP_POST_VARS['articles_date_available'])) {
$insert_sql_data = array('articles_date_added' => tep_db_prepare_input($HTTP_POST_VARS['articles_date_available']));
} else {
$insert_sql_data = array('articles_date_added' => 'now()');
}
$sql_data_array = array_merge($sql_data_array, $insert_sql_data);
tep_db_perform(TABLE_ARTICLES, $sql_data_array);
$articles_id = tep_db_insert_id();
tep_db_query("insert into " . TABLE_ARTICLES_TO_TOPICS . " (articles_id, topics_id) values ('" . (int)$articles_id . "', '" . (int)$current_topic_id . "')");
} elseif ($action == 'update_article') {
$update_sql_data = array('articles_last_modified' => 'now()');
// If expected article then articles_date _added becomes articles_date_available
if (isset($HTTP_POST_VARS['articles_date_available']) && tep_not_null($HTTP_POST_VARS['articles_date_available'])) {
$update_sql_data = array('articles_date_added' => tep_db_prepare_input($HTTP_POST_VARS['articles_date_available'])); }
$sql_data_array = array_merge($sql_data_array, $update_sql_data);
tep_db_perform(TABLE_ARTICLES, $sql_data_array, 'update', "articles_id = '" . (int)$articles_id . "'");
}
$languages = tep_get_languages();
for ($i=0, $n=sizeof($languages); $i<$n; $i++) {
$language_id = $languages[$i]['id'];
$sql_data_array = array('articles_name' => tep_db_prepare_input($HTTP_POST_VARS['articles_name'][$language_id]),
'articles_short' => tep_db_prepare_input($HTTP_POST_VARS['articles_short'][$language_id]),
'articles_description' => tep_db_prepare_input($HTTP_POST_VARS['articles_description'][$language_id]),
'articles_url' => tep_db_prepare_input($HTTP_POST_VARS['articles_url'][$language_id]),
'articles_head_title_tag' => tep_db_prepare_input($HTTP_POST_VARS['articles_head_title_tag'][$language_id]),
'articles_head_desc_tag' => tep_db_prepare_input($HTTP_POST_VARS['articles_head_desc_tag'][$language_id]),
'articles_head_keywords_tag' => tep_db_prepare_input($HTTP_POST_VARS['articles_head_keywords_tag'][$language_id]));
if ($action == 'insert_article') {
$insert_sql_data = array('articles_id' => $articles_id,
'language_id' => $language_id);
$sql_data_array = array_merge($sql_data_array, $insert_sql_data);
tep_db_perform(TABLE_ARTICLES_DESCRIPTION, $sql_data_array);
} elseif ($action == 'update_article') {
tep_db_perform(TABLE_ARTICLES_DESCRIPTION, $sql_data_array, 'update', "articles_id = '" . (int)$articles_id . "' and language_id = '" . (int)$language_id . "'");
}
}
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath . '&aID=' . $articles_id));
} //end of new or modified article
break;
case 'copy_to_confirm':
if (isset($HTTP_POST_VARS['articles_id']) && isset($HTTP_POST_VARS['topics_id'])) {
$articles_id = tep_db_prepare_input($HTTP_POST_VARS['articles_id']);
$topics_id = tep_db_prepare_input($HTTP_POST_VARS['topics_id']);
if ($HTTP_POST_VARS['copy_as'] == 'link') {
if ($topics_id != $current_topic_id) {
$check_query = tep_db_query("select count(*) as total from " . TABLE_ARTICLES_TO_TOPICS . " where articles_id = '" . (int)$articles_id . "' and topics_id = '" . (int)$topics_id . "'");
$check = tep_db_fetch_array($check_query);
if ($check['total'] < '1') {
tep_db_query("insert into " . TABLE_ARTICLES_TO_TOPICS . " (articles_id, topics_id) values ('" . (int)$articles_id . "', '" . (int)$topics_id . "')");
}
} else {
$messageStack->add_session(ERROR_CANNOT_LINK_TO_SAME_TOPIC, 'error');
}
} elseif ($HTTP_POST_VARS['copy_as'] == 'duplicate') {
$article_query = tep_db_query("select articles_date_available, authors_id from " . TABLE_ARTICLES . " where articles_id = '" . (int)$articles_id . "'");
$article = tep_db_fetch_array($article_query);
tep_db_query("insert into " . TABLE_ARTICLES . " (articles_date_added, articles_date_available, articles_date_written, articles_status, articles_protected, authors_id) values (now(), '" . tep_db_input($article['articles_date_available']) . "', '" . tep_db_input($article['articles_date_written']) . "', '0', '" . "', '0', '" . (int)$article['authors_id'] . "')");
$dup_articles_id = tep_db_insert_id();
$description_query = tep_db_query("select language_id, articles_name, articles_short, articles_description, articles_url, articles_head_title_tag, articles_head_desc_tag, articles_head_keywords_tag from " . TABLE_ARTICLES_DESCRIPTION . " where articles_id = '" . (int)$articles_id . "'");
while ($description = tep_db_fetch_array($description_query)) {
tep_db_query("insert into " . TABLE_ARTICLES_DESCRIPTION . " (articles_id, language_id, articles_name, articles_short, articles_description, articles_url, articles_head_title_tag, articles_head_desc_tag, articles_head_keywords_tag, articles_viewed) values ('" . (int)$dup_articles_id . "', '" . (int)$description['language_id'] . "', '" . tep_db_input($description['articles_name']) . "', '" . tep_db_input($description['articles_description']) . "', '" . tep_db_input($description['articles_url']) . "', '" . tep_db_input($description['articles_head_title_tag']) . "', '" . tep_db_input($description['articles_head_desc_tag']) . "', '" . tep_db_input($description['articles_head_keywords_tag']) . "', '0')");
}
tep_db_query("insert into " . TABLE_ARTICLES_TO_TOPICS . " (articles_id, topics_id) values ('" . (int)$dup_articles_id . "', '" . (int)$topics_id . "')");
$articles_id = $dup_articles_id;
}
if (USE_CACHE == 'true') {
//tep_reset_cache_block('categories');
//osC_JCSSartMenu - clear cache
tep_db_query("DELETE FROM cache WHERE cache_name = 'osC_JCSSartMenu'");
}
}
tep_redirect(tep_href_link(FILENAME_ARTICLES, 'tPath=' . $topics_id . '&aID=' . $articles_id));
break;
}
// END SWITCH
}
// END ACTION
// check if the catalog image directory exists
if (is_dir(DIR_FS_CATALOG_IMAGES)) {
if (!is_writeable(DIR_FS_CATALOG_IMAGES)) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE, 'error');
} else {
$messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error');
}
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<?php
// BOF: WebMakers.com Changed: Header Tag Controller v1.0
// Replaced by header_tags.php
if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) {
require(DIR_WS_INCLUDES . 'header_tags.php');
} else {
?>
<title><?php echo TITLE ?></title>
<?php
}
// EOF: WebMakers.com Changed: Header Tag Controller v1.0
?>
<script language="Javascript1.2"><!-- // load htmlarea
// MaxiDVD Added WYSIWYG HTML Area Box + Admin Function v1.7 - 2.2 MS2 Articles Description HTML - Head
_editor_url = "<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_ADMIN; ?>htmlarea/"; // URL to htmlarea files
var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (navigator.userAgent.indexOf('Mac') >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Windows CE') >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Opera') >= 0) { win_ie_ver = 0; }
<?php if (ARTICLE_MANAGER_WYSIWYG_BASIC == 'Basic'){ ?> if (win_ie_ver >= 5.5) {
document.write('<scr' + 'ipt src="' +_editor_url+ 'editor_basic.js"');
document.write(' language="Javascript1.2"></scr' + 'ipt>');
} else { document.write('<scr'+'ipt>function editor_generate() { return false; }</scr'+'ipt>'); }
<?php } else{ ?> if (win_ie_ver >= 5.5) {
document.write('<scr' + 'ipt src="' +_editor_url+ 'editor_advanced.js"');
document.write(' language="Javascript1.2"></scr' + 'ipt>');
} else { document.write('<scr'+'ipt>function editor_generate() { return false; }</scr'+'ipt>'); }
<?php }?>
// --></script>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script language="javascript" src="includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF" onload="SetFocus();">
<div id="spiffycalendar" class="text"></div>
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
<!-- body //-->
<table border="0" width="100%" cellspacing="2" cellpadding="2">
<tr>
<td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
</table></td>
<!-- body_text //-->
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
//----- new_topic / edit_topic -----
if ($HTTP_GET_VARS['action'] == 'new_topic_ACD' || $HTTP_GET_VARS['action'] == 'edit_topic_ACD') {
if ( ($HTTP_GET_VARS['tID']) && (!$HTTP_POST_VARS) ) {
$topics_query = tep_db_query("select t.topics_id, td.topics_name, td.topics_heading_title, td.topics_description, t.parent_id, t.sort_order, t.date_added, t.last_modified from " . TABLE_TOPICS . " t, " . TABLE_TOPICS_DESCRIPTION . " td where t.topics_id = '" . $HTTP_GET_VARS['tID'] . "' and t.topics_id = td.topics_id and td.language_id = '" . $languages_id . "' order by t.sort_order, td.topics_name");
$topic = tep_db_fetch_array($topics_query);
$tInfo = new objectInfo($topic);
} elseif ($HTTP_POST_VARS) {
$tInfo = new objectInfo($HTTP_POST_VARS);
$topics_name = $HTTP_POST_VARS['topics_name'];
$topics_heading_title = $HTTP_POST_VARS['topics_heading_title'];
$topics_description = $HTTP_POST_VARS['topics_description'];
$topics_url = $HTTP_POST_VARS['topics_url'];
} else {
$tInfo = new objectInfo(array());
}
$languages = tep_get_languages();
$text_new_or_edit = ($HTTP_GET_VARS['action']=='new_topic_ACD') ? TEXT_INFO_HEADING_NEW_TOPIC : TEXT_INFO_HEADING_EDIT_TOPIC;
?>
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td class="pageHeading"><?php echo sprintf($text_new_or_edit, tep_output_generated_topic_path($current_topic_id)); ?></td>
<td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr><?php echo tep_draw_form('new_topic', FILENAME_ARTICLES, 'tPath=' . $tPath . '&tID=' . $HTTP_GET_VARS['tID'] . '&action=new_topic_preview', 'post', 'enctype="multipart/form-data"'); ?>
<td><table border="0" cellspacing="0" cellpadding="2">
<?php
for ($i=0; $i<sizeof($languages); $i++) {
?>
<tr>
<td class="main"><?php if ($i == 0) echo TEXT_EDIT_TOPICS_NAME; ?></td>
<td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('topics_name[' . $languages[$i]['id'] . ']', (($topics_name[$languages[$i]['id']]) ? stripslashes($topics_name[$languages[$i]['id']]) : tep_get_topic_name($tInfo->topics_id, $languages[$i]['id']))); ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<?php
for ($i=0; $i<sizeof($languages); $i++) {
?>
<tr>
<td class="main"><?php if ($i == 0) echo TEXT_EDIT_TOPICS_HEADING_TITLE; ?></td>
<td class="main"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']) . ' ' . tep_draw_input_field('topics_heading_title[' . $languages[$i]['id'] . ']', (($topics_name[$languages[$i]['id']]) ? stripslashes($topics_name[$languages[$i]['id']]) : tep_get_topic_heading_title($tInfo->topics_id, $languages[$i]['id']))); ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<?php
for ($i=0; $i<sizeof($languages); $i++) {
?>
<tr>
<td class="main" valign="top"><?php if ($i == 0) echo TEXT_EDIT_TOPICS_DESCRIPTION; ?></td>
<td><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="main" valign="top"><?php echo tep_image(DIR_WS_CATALOG_LANGUAGES . $languages[$i]['directory'] . '/images/' . $languages[$i]['image'], $languages[$i]['name']); ?> </td>
<td class="main"><?php echo tep_draw_textarea_field('topics_description[' . $languages[$i]['id'] . ']', 'soft', '70', '15', (($topics_description[$languages[$i]['id']]) ? stripslashes($topics_description[$languages[$i]['id']]) : tep_get_topic_description($tInfo->topics_id, $languages[$i]['id']))); ?></td>
</tr>
</table></td>
</tr>
<?php
}
?>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_EDIT_SORT_ORDER; ?></td>
<td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' . tep_draw_input_field('sort_order', $tInfo->sort_order, 'size="2"'); ?></td>
</tr>
<tr>
<td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
</table></td>
</tr>
<tr>
<td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
</tr>
<tr>
<td class="main" align="right"><?php echo tep_draw_hidden_field('topics_date_added', (($tInfo->date_added) ? $tInfo->date_added : date('Y-m-d'))) . tep_draw_hidden_field('parent_id', $tInfo->parent_id) . tep_image_submit('button_preview.gif', IMAGE_PREVIEW) . ' <a href="' . tep_href_link(FILENAME_ARTICLES, 'tPath=' . $tPath . '&tID=' . $HTTP_GET_VARS['tID']) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'; ?></td>
</form></tr>
<?php
//MaxiDVD Added WYSIWYG HTML Area Box + Admin Function v1.7 - 2.2 MS2 Articles Description HTML - </form>
if (ARTICLE_WYSIWYG_ENABLE == 'Enable') {
?>
<script language="JavaScript1.2" defer>
// MaxiDVD Added WYSIWYG HTML Area Box + Admin Function v1.7 Articles Description HTML - Head
var config = new Object();
config.width = "<?php echo ARTICLE_MANAGER_WYSIWYG_WIDTH; ?>px";
config.height = "<?php echo ARTICLE_MANAGER_WYSIWYG_HEIGHT; ?>px";
config.bodyStyle = 'background-color: <?php echo ARTICLE_MANAGER_WYSIWYG_BG_COLOUR; ?>; font-family: "<?php echo ARTICLE_MANAGER_WYSIWYG_FONT_TYPE; ?>"; color: <?php echo ARTICLE_MANAGER_WYSIWYG_FONT_COLOUR; ?>; font-size: <?php echo ARTICLE_MANAGER_WYSIWYG_FONT_SIZE; ?>pt;';
config.debug = <?php echo ARTICLE_MANAGER_WYSIWYG_DEBUG; ?>;
// More Configs can added here:
// Dreamscape added Dynamic Language Function
<?php for ($i = 0, $n = sizeof($languages); $i < $n; $i++) { ?>
editor_generate('topics_description[<?php echo $languages[$i]['id']; ?>]',config);
<?php } ?>
</script>
<?php
}
//----- new_topic_preview -----
} elseif ($HTTP_GET_VARS['action'] == 'new_topic_preview') {
if ($HTTP_POST_VARS) {
$tInfo = new objectInfo($HTTP_POST_VARS);
$topics_name = $HTTP_POST_VARS['topics_name'];
$topics_heading_title = $HTTP_POST_VARS['topics_heading_title'];
$topics_description = $HTTP_POST_VARS['topics_description'];
} else {
$topic_query = tep_db_query("select t.topics_id, td.language_id, td.topics_name, td.topics_heading_title, td.topics_description, t.sort_order, t.date_added, t.last_modified from " . TABLE_TOPICS . " t, " . TABLE_TOPICS_DESCRIPTION . " td where t.topics_id = td.topics_id and t.topics_id = '" . $HTTP_GET_VARS['tID'] . "'");
$topic = tep_db_fetch_array($topic_query);
$tInfo
-
fear4me it didn't help :'( some other solution maybe???
There is nothing you can do about this. Flash and Quicktime movies sit on top of everything. Adding z-index will not work.
This is THE ONLY solution I have found:
http://blog.deconcept.com/swfobject/
It also tackles the IE issue for flash.
Good luck,
Sheri
-
OK. so I figured out the problem (it was staring me in the face :blush: )
HOW in the world can I attach a value to the variable when that value doesn't yet exist? Doh!
I can't give $config_cache_file the value of a configuration value that I haven't yet queried! Doh!
Sheri
Update on this. It DID in fact create the cache file but called it: CONFIG_CACHE_DIR and placed it in the admin directory.HMMMM!?
-
Update on this. It DID in fact create the cache file but called it: CONFIG_CACHE_DIR and placed it in the admin directory.
HMMMM!?
Hi everyone,I am trying to rebuild the admin side of this contribution.
BUT this is not working! I cannot see why it wouldn't. If anyone has any insight...send it my way!LOL
-
... that's where i'm lost.
Hi eww,
3. Edit the admin/includes/configuration_cache_read.php and set the $config_cache_file variable equal to the full path and filename of a file in a folder that is outside of your webroot (e.g. /home/user/cache/config_cache.php). In addition, specify whether you want the file compressed and at what level of compression. Then edit catalog/includes/configuration_cache_read.php file and set the $config_cache_file variable equal to the same setting as in admin/includes/configuration_cache_read.php.admin/includes/configuration_cache_read.php
$config_cache_file = '/home/YOUR USER NAME/cache/config_cache.php'; $config_cache_compress = 'false'; $config_cache_compression_level = 1;
catalog/includes/configuration_cache_read.php
$config_cache_file = '/home/YOUR USER NAME/cache/config_cache.php';
Let me know if I can help more. I have had this working on a couple of projects so far.
Sheri
-
Hi everyone,
I am trying to rebuild the admin side of this contribution. It seems it was abandoned with version1.3. I am trying to make all contributions accessible through admin for a client.
This is what I have done:
Ran sql statements such as:
INSERT INTO `configuration` ( `configuration_id` , `configuration_title` , `configuration_key` , `configuration_value` , `configuration_description` , `configuration_group_id` , `sort_order` , `last_modified` , `date_added` , `use_function` , `set_function` ) VALUES ( '', 'Enable Configuration Cache', 'ENABLE_CONFIG_CACHE', 'false', 'Enable or Disable Configuration Cache: enabling recommended for lower page parse times', '11', '3', NULL , NOW( ) , NULL , 'tep_cfg_select_option(array(''true'', ''false''),' );
to load the variables and values into the database making them accessible through the admin.
I have changed the values of the variables used in the configuration_cache_read.php (both admin and catalog)
to look like this: (admin example)
$config_cache_file = 'CONFIG_CACHE_DIR'; // this should be to a file in a folder *outside* of your webroot with 777 permissions. $config_cache_compress = 'CONFIG_CACHE_COMPRESS'; // be sure to enclose in single quotes. $config_cache_compression_level = CONFIG_CACHE_COMPRESS_LEVEL; // 1 is the lowest and 4 is the highest. 1 should be used on busy and/or shared servers. $config_cache_read = ENABLE_CONFIG_CACHE; if (isset($config_cache_file) && $config_cache_file != '') { if (file_exists($config_cache_file)) { include($config_cache_file); $config_cache_read = true; } } if ($config_cache_read == false) { $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION); while ($configuration = tep_db_fetch_array($configuration_query)) { define($configuration['cfgKey'], $configuration['cfgValue']); } }
BUT this is not working! I cannot see why it wouldn't. If anyone has any insight...send it my way!LOL
Sheri
P.S. I have run debugging emails and it seems CONFIG_CACHE_DIR is not translating into the actual address that is within the database configuration table.??
-
Oh well,
I found the answer elsewhere.
Can anyone tell me what the code is for the link buttons in this flash contribution? -
Can anyone tell me what the code is for the link buttons in this flash contribution? I use SWISHmax rather than adobes product and cannot open the .fla file to retrieve the code. Greatly appreciated.
Sheri
to load the flash movie i did like this :<object type="application/x-shockwave-flash" data="menu.swf?id=<?php echo tep_session_id(); ?>" width="770" height="40"> <param name="scale" value="exactfit" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <param name="movie"value="menu.swf?id=<?php echo tep_session_id(); ?>" /> <a href=http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash target="blank"><img src="images/icons/noflash.gif" width="88" height="31" vspace="5" hspace="50" alt="install flash player plugin"/></a> </object>
as u can see i use the " tep_session_id() " function to get the current id number and send it to flash .
in my flash movie i get it using this :
var osCsid = _root.id;
and then i use the same code on button as you .
-
thansk sheri for the reply. i looked at the code and it baffles me, can you post here the actul list that needs rplicating? or maybe the bit of code you added for me to look at ?
After your page is up on the server, use your browser's right click to "view source" which will bring you to the html that is generated from your .php page. At some point in scrolling you'll get to a list of your category links
beginning with a <ul> tag.
This is the structure of the list that is generated (depending on how many flyouts you have):
<ul> <li> main category link here </li> <li> main category link here </li> <li> main category link here <ul> <li> first flyout link here </li> <li> first flyout link here </li> </ul> </li> <li> main category link here </li> <li> main category link here <ul> <li> first flyout link here </li> <li> first flyout link here <ul> <li> second flyout link here </li> <li> second flyout link here </li> </ul> </li> </ul> </li> </ul>
I would just give you the code but my jcss menu is now just a css menu (got rid of the javascript) and doesn't resemble the original contribution except for the html above.
If this doesn't do it post or PM a link and I'll point out the code.
Sheri
-
any one ? i sure wish there was better support for this great contribution... any one have any idea where else to look for ? since this topic doesnt seem to be attracting much attention
I have used this menu and added links to the bottom of the menu without a problem.
Take a look at your source code and replicate the list structure along with ids and classes. This will be hard coded and not dynamic. The "new" list will not be a part of the overall <ul> of the categories and may not validate because of the call to the same id (can't quite remember) but you will still have a menu that looks seemless and connected. Add the new list to the end of the category box string in boxes/categories.php
BTW ;) The new OSC alpha3 categories class looks startlingly similar to this contrib.
Sheri
-
Try this contrib for an idea:
http://www.oscommerce.com/community/contributions,1501
Hello everyone,I am kinda new to this, but am trying to learn.
How can I list all products on front of catalog? displaying all products like in a "search results" with page links at the bottom. I beleive It would be a new page " displayallproducts.php" or some thing like that and then just adding A few lines into "index.php". I have been messing around with code all morning with no success. any help would be greatly appriciated and a great contribution.
-
Hi all,
I am trying REALLY hard to modify already existing contributions to do a very similar chore yet so, so different :D
I've studied Add Multi Products Checkbox v1.0
and
the add_multiples section of product listing in columns
and
Add Multiple Products to Cart, in columns, for SPPC
to use in conjuction with Product Attributes - Option Type Feature
Some people just want to purchase the same thing with different options! I bought the same t-shirt today in 5 different colours :blush: If I had to buy one...put my wallet away, then do it all over again 4 more times, I wouldn't have purchased any. What a pain in the behind.
I have modified the checkbox case of Product Attributes - Option Type Feature to show each attribute in a list with a checkbox.
$tmp_html = '<table width="100%" cellpadding="0" cellspacing="0" border="0">'; $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "' order by pov.products_options_values_sortorder, pov.products_options_values_id"); while ($products_options_array = tep_db_fetch_array($products_options_query)) { $tmp_html .= '<tr><td class="main" align="left" style="padding-bottom:4px;">'; $tmp_html .= tep_draw_checkbox_field('id[' . $products_options_name['products_options_id'] . ']', $products_options_array['products_options_values_id']); $tmp_html .= $products_options_array['products_options_values_name']; $tmp_html .=$products_options_name['products_options_comment']; if ($products_options_array['options_values_price'] != '0') { $tmp_html .= '(' . $products_options_array['price_prefix'] . $currencies->display_price($products_options_array['options_values_price'], tep_get_tax_rate($product_info['products_tax_class_id'])) .') '; } $tmp_html .= '</td></tr>'; } $tmp_html .= '</table>';
From going over the add multiple contribs (all for product listing pages) I know that another case must be added to the shopping cart switch to allow multiple items to be passed in one click and that the product_info form must point to this action.
Somehow, a hidden field must be tucked into the checkbox case above to snag the values.
Beyond this...my brain is sore.
Any assistance graciously accepted :wub:
Sheri
-
Is it just the USA which uses the 2-letter abbreviations or are there any other countries?
Terra
Canada uses 2 letter codes.
Alberta AB
British Columbia BC
Manitoba MB
New Brunswick NB
Newfoundland and Labrador NL
Northwest Territories NT
Nova Scotia NS
Nunavut NU
Ontario ON
Prince Edward Island PE
Quebec QC
Saskatchewan SK
Yukon YT
Sheri
-
Hey everyone I use Paypal IPN 1.1.2.2 by Michael Sasek. I know this can be done but I have no clue how to do it but I would like to have the billing info when you get to the paypal site to be pre-populated. Since they already have an account or just signed up for one they have to enter there shipping info again at the paypal site and that is just silly.
Here is the link to the paypal ipn developer guide. It should help you understand how these modules interact with their system and the variables they use.
Sheri
-
Yup, still a workin' on this contrib! If my test orders were real money I'd be rich! LOL
I accept echecks and my products are downloads...so any completed transaction through paypal was giving the purchaser immediate access. Great for paypal blanace transfers, credit cards etc but NO good for echecks which take a week to clear.
So I modified the code in ipn.php a little to only allow completed and verified ($ in your account kind of verified) to have immediate download access. Everything else stays at "Preparing" with the reason attached.
OLD CODE IN ipn.php:
$comment_status = $_POST['payment_status'] . ' (' . ucfirst($_POST['payer_status']) . '; ' . $currencies->format($_POST['mc_gross'], false, $_POST['mc_currency']) . ')'; if ($_POST['payment_status'] == 'Pending') { $comment_status .= '; ' . $_POST['pending_reason']; } elseif ( ($_POST['payment_status'] == 'Reversed') || ($_POST['payment_status'] == 'Refunded') ) { $comment_status .= '; ' . $_POST['reason_code']; } $order_status_id = DEFAULT_ORDERS_STATUS_ID; if ($_POST['mc_gross'] == number_format($total['value'] * $order['currency_value'], $currencies->get_decimal_places($order['currency']))) { if (MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID > 0) { $order_status_id = MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID; } } tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . $order_status_id . "', last_modified = now() where orders_id = '" . $_POST['invoice'] . "'");
NEW CODE IN ipn.php:
$comment_status = $_POST['payment_status'] . ' (' . ucfirst($_POST['payer_status']) . '; ' . $currencies->format($_POST['mc_gross'], false, $_POST['mc_currency']) . ')'; $order_status_id = DEFAULT_ORDERS_STATUS_ID; if ($_POST['payment_status'] == 'Pending') { $comment_status .= '; ' . $_POST['pending_reason']; } elseif ( ($_POST['payment_status'] == 'Reversed') || ($_POST['payment_status'] == 'Refunded') ) { $comment_status .= '; ' . $_POST['reason_code']; } else { if ($_POST['mc_gross'] == number_format($total['value'] * $order['currency_value'], $currencies->get_decimal_places($order['currency']))) { if (MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID > 0) { $order_status_id = MODULE_PAYMENT_PAYPAL_IPN_ORDER_STATUS_ID; } } } tep_db_query("update " . TABLE_ORDERS . " set orders_status = '" . $order_status_id . "', last_modified = now() where orders_id = '" . $_POST['invoice'] . "'");
Best,
Sheri
-
...now to integrate wishlist :x
To anyone else using or wanting to use Wishlist 3.5d, I successfully integrated it with Paypal IPN.
To make Wishlist work as intended in catalog/includes/modules/payment/paypal_ipn.php
Add the same line that you added to checkout_process.php:
// remove items from wishlist if customer purchased them
$wishList->clear();
here:
/ send emails to other people if (SEND_EXTRA_ORDER_EMAILS_TO != '') { tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } // remove items from wishlist if customer purchased them $wishList->clear(); // load the after_process function from the payment modules $this->after_process(); $cart->reset(true);
And you must also add $wishList here:
/ Terra missing attribute fix start function before_process() { global $customer_id, $order, $sendto, $billto, $payment, $languages_id, $currencies, $cart, $cart_PayPal_IPN_ID, $wishList; global $$payment; // Terra missing attribute fix end
Keep in mind that I have the register globals patch installed.
Best,
Sheri
-
But, when push comes to shove...God, I'm good.
;)
Steve
Self praise is better than none :lol: :lol: Glad you got it working...now to integrate wishlist :x
-
Well I'm still on the thread :lol:
Now that I have IPN working I would like to harvest some of the other data available from paypal: names, addys, fees.
I have added the new fields to the db in the order_status_history table and tried the easiest route first by naming the $_POST variables from the paypal form and inserting them into the db. Whoops! Didn't work :blush:
Do I have to first declare these as parameters in paypal_ipn.php before I can get the values in ipn.php?
Thanks, any knowledge appreciated :thumbsup:
Sheri
[Contribution] Header Tags Controller for Admin MS 2.2
in General Add-Ons Support
Posted
Thanks...I worked it out. Just wondering if there was a different way to test for permissions on the files this contrib uses instead of comparing them to other files that may or may not have the permissions outlined in the install instructions.
Or, I guess...it could be noted there that the error messages are tied to the image directory.
Again thanks for the contrib. The new version works great :thumbsup:
Sheri